1. 程式人生 > >矩陣求導與投影梯度相關問題

矩陣求導與投影梯度相關問題

參考\url{https://www.zhihu.com/question/39523290} 豬豬專業戶 77IX7-UPIUE-7PR75-UTBLT


如果題主學過泛函分析,可能會更容易理解矩陣對矩陣的求導。

定義:假設$X$和$Y$為賦範向量空間, $F: X\rightarrow Y$是一個對映,那麼$F$在$x_0 \in X$可導的意思是說存在一個有界線性運算元$L \in \mathcal{L}(X, Y)$,使得對於任意的$\epsilon > 0$都存在$\delta > 0$,對於滿足$x \in X \backslash \{x_0\}, \|x - x_0\| < \delta$的$x$都有$\frac{\|F(x) - F(x_0) - L(x - x_0)\|}{\|x - x_0\|} < \epsilon$.我們稱$L$為$F$在$x_0$點的導數.

取一些特殊情況,比如當$X = \mathbb R^n$, $Y = \mathbb R$的時候$L$就被稱作梯度;當$X = \mathbb{R}^n, Y = \mathbb{R}^m$的時候L被稱作雅可比,等等.從這個一般化的定義出發的好處是,我們可以更好的理解矩陣到矩陣對映的"導數",甚至是從一個函式空間到另一個函式空間的“導數".

以上定義有一個等價的表述,往往計算起來更方便:對於距離$x_0$足夠近的點$x$,即\[\lim_{x \rightarrow x_0}\frac{o(\|x-x_0\|)}{\|x-x_0\|} = 0,\]有
\[F(x) = F(x_0) + L(x - x_0) + o(\|x - x_0\|).\]
(注:此處$L(x-x_0)$應該理解為線性運算元$L$在$x - x_0$這個點的值,而不是L乘以$x-x_0$.不過在有限維空間所有線性運算元都可以用矩陣表述, $L$在$x - x_0$這個點的值便正好可以表述為矩陣與向量的乘積!這個notation正好巧妙的一致.)

例子:假設$F(X) = X^TX$是一個$\mathbb{R}^{m\times n} \rightarrow \mathbb{ S}^n$的對映,其中$\mathbb{S }^n$為$n$維對稱陣的空間.那麼$F$的導數$L$就應該是$\mathbb{R}^{m\times n} \rightarrow \mathbb{ S}^n$的一個有界線性運算元. $L$究竟是什麼樣可以從定義出發計算:

\begin{align} &F(X+\Delta X) - F(X) \\ =& (X+\Delta X)^T(X+\Delta X) - X^TX\\ =& X^T\Delta X + \Delta X^TX + o(\|\Delta X\|) \end{align}

所以我們有$L(\Delta X) = X^T\Delta X + \Delta X^TX$,這個就是$F$在$X$點的導數. $L$這個函式(有界線性運算元)可以用張量來表述,這裡就不詳細說了.

例子:最小二乘問題$f(x) = \frac{1}{2}\|Ax-b\|_2^2$, $f$是一個$\mathbb R^n \rightarrow \mathbb R$的對映.

\begin{align} &f(x+\Delta x) - f(x) \\ =& \frac{1}{2}\|A(x+\Delta x) - b\|^2 - \frac{1}{2}\|Ax - b\|^2\\ =& \frac{1}{2}\|Ax - b + A\Delta x\|^2 - \frac{1}{2}\|Ax - b\|^2\\ =& (Ax - b)^TA\Delta x + o(\|\Delta x\|) \end{align}

所以我們有$L(\Delta x) = (Ax - b)^TA\Delta x$,這個就是$f$在$x$點的導數.在這種情況下, $L$這個有界線性運算元可以用梯度來表述(recall Riesz表示定理):
\[L(\Delta x) = \langle \nabla f(x), \Delta x \rangle = \langle A^T(Ax - b), \Delta x \rangle = (Ax-b)^TA\Delta x\]
所以梯度$\nabla f(x) = A^T(Ax - b)$.


例子:單層神經網路$f(W) = \frac{1}{2}\|\sigma(Wx) - y\|^2_2$, $f$是一個$\mathbb{R}^{m \times n } \rightarrow \mathbb{ R }$的對映,這裡$\sigma: \mathbb{ R}^m \rightarrow \mathbb{ R}^m$是一個elementwise的logistic function.算起來
\begin{align} & f(W+\Delta W) - f(W) \\ =& \frac{1}{2}\|\sigma(Wx + \Delta Wx) - y\|_2^2 - \frac{1}{2}\|\sigma(Wx) - y\|_2^2\\ =& \frac{1}{2}\|\sigma(Wx) + \sigma(Wx)\odot (\mathbf 1_m - \sigma(Wx)) \odot \Delta W x + o(\|\Delta W\|) - y\|_2^2 - \frac{1}{2}\|\sigma(Wx) - y\|_2^2\\ =& (\sigma(Wx) - y)^T(\sigma(Wx)\odot (\mathbf 1_m - \sigma(Wx)) \odot \Delta W x) + o(\|\Delta W\|) \end{align}
其中$\odot$為Hadamard乘積(elementwise乘積), $\mathbf 1_m$為長度為$m$的元素均為$1$的向量.這裡我使用了一維logistic函式的導數公式.所以
\[L(\Delta W) = (\sigma(Wx) - y)^T(\sigma(Wx)\odot (\mathbf 1_m - \sigma(Wx)) \odot \Delta W x).\]
注:這個例子的倒數第二步到最後一步的計算影射了微積分中的一個重要的思想——鏈式法則(chain rule).鏈式法則能夠成立的本質是$ao(\|x\|)+bo(\|x\|) = o(\|x\|)$和$o(\|x\|)o(\|x\|) = o(\|x\|^2)$.

最後,由於$\mathbb{R}^{m \times n}$和$\mathbb{R}^{mn}$是同構的,所以可以通過vectorization把矩陣對映到$\mathbb{R}^{mn}$中再進行計算.

(逆逆)對於閉凸集$D$, 考慮$D$上的凸集投影
\begin{equation*}
P(x)=P_D(x)=\arg \min\limits_{v\in D}||x-v||.
\end{equation*}
\begin{tcolorbox}
{\bfseries 引理1:}任意$v\in D$, 均有$<x-P(x),v-P(x)>\le 0$.
\end{tcolorbox}

\begin{proof}
對於$0\le t\le 1$, 我們有$(1-t)P(x)+tv\in D$, 於是
\begin{equation*}
||x-((1-t)P(x)+tv)||^2\ge ||x-P(x)||^2,
\end{equation*}
等價於
\begin{equation*}
2t<x-P(x),P(x)-v>+t^2||P(x)-v||^2\ge 0,
\end{equation*}
命題顯然成立.
\end{proof}

\begin{tcolorbox}
{\bfseries 引理2:}任意$x,y$, 均有$||P(x)-P(y)||\le ||x-y||$.
\end{tcolorbox}

\begin{proof}
根據不等式$<x-P(x),P(y)-P(x)>\le 0$, $<y-P(y),P(x)-P(y)>\le 0$, 可得
\begin{align*}
& <y-x-(P(y)-P(x)),P(y)-P(x)>\ge 0 \\
& \Longrightarrow ||P(y)-P(x)||^2\le <y-x,P(y)-P(x)>\le ||y-x||\cdot||P(y)-P(x)|| \\
& \Longrightarrow ||P(y)-P(x)||\le ||y-x||.
\end{align*}
故所求不等式成立.
\end{proof}

\begin{tcolorbox}
{\bfseries 引理3:}任意$z\perp x-P(x)$, $t\in\mathbb{R}$, 均有$||x+tz-P(x+tz)||^2=||x-P(x)||^2+O(t^2)$.
\end{tcolorbox}

\begin{proof}
上界估計
\begin{equation*}
||x+tz-P(x+tz)||^2\le ||x+tz-P(x)||^2=||x-P(x)||^2+t^2||z||^2.
\end{equation*}
下界估計
\begin{align*}
||x+tz-P(x+tz)||^2 & =||(x-P(x))+(tz+P(x)-P(x+tz))||^2 \\
& =||x-P(x)||^2+||tz+P(x)-P(x+tz)||^2 \\
& \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +<x-P(x),tz+P(x)-P(x+tz)> \\
& =||x-P(x)||^2+||tz+P(x)-P(x+tz)||^2 \\
& \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +<x-P(x),P(x)-P(x+tz)> \\
& \ge ||x-P(x)||^2.
\end{align*}
於是結論成立.
\end{proof}

\begin{tcolorbox}
{\bfseries 引理4:}任意$t\ge 0$, 均有$P(tx+(1-t)(x-P(x)))=P(x)$.
\end{tcolorbox}

\begin{proof}
任意$v\in D$, 均有
\begin{align*}
||tx+(1-t)P(x)-v||^2 & =||t(x-P(x))+(P(x)-v)||^2 \\
& =||t(x-P(x))||^2+2t<x-P(x),P(x)-v>+||P(x)-v||^2 \\
& \ge ||t(x-P(x))||^2=||tx+(1-t)P(x)-P(x)||^2,
\end{align*}
於是$P(tx+(1-t)(x-P(x)))=P(x)$.
\end{proof}

\begin{tcolorbox}
{\bfseries 定理:} 函式$\frac{1}{2}||x-P(x)||^2$的梯度為$x-P(x)$.
\end{tcolorbox}

\begin{proof}
任意的$y$可分解為$y=c(x-P(x))+z$, 其中$z\perp x-P(x)$. 根據
\begin{equation*}
x+tc(x-P(x))-P(x+tc(x-P(x)))=x+tc(x-P(x))-P(x)=(1+tc)(x-P(x))\perp z,
\end{equation*}
可得
\begin{align*}
||x+ty-P(x+ty)||^2 & =||x+tc(x-P(x))-P(x+tc(x-P(x)))||^2+O(t^2) \\
& =||(1+tc)(x-P(x))||^2+O(t^2) \\
& =||x-P(x)||^2+2t<x-P(x),c(x-P(x))>+O(t^2) \\
& =||x-P(x)||^2+2t<x-P(x),y>+O(t^2),
\end{align*}
也即
\begin{equation*}
\frac{1}{2}||x+ty-P(x+ty)||^2-\frac{1}{2}||x-P(x)||^2=t<x-P(x),y>+O(t^2),
\end{equation*}
因此結論成立.
\end{proof}