バックプロパゲーションにおけるベクトルマチリックス導関数に関する質問

Aug 16 2020

以下のような行列があるとしましょう:

$$ W = \begin{bmatrix} w_{1,1} & w_{1,2} \\ w_{2,1} & w_{2,2} \end{bmatrix} $$ $$ \vec{x} = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} $$ $$ \vec{y} = W\vec{x} = \begin{bmatrix} w_{1,1}x_1 + w_{1,2}x_2 \\ w_{2,1}x_1 + w_{2,2}x_2 \end{bmatrix} $$

バックプロパゲーションでは、計算する必要があります $\partial {\vec{y}} \over \partial {W}$ 更新する $W$

しかし、Wikiによると、行列によるベクトルの導関数の定義についてはコンセンサスがありません。

次に、どうすればの値を取得できますか $\partial {\vec{y}} \over \partial {W}$

回答

3 BenGrossmann Aug 16 2020 at 16:35

あなたの考えが何であれ $\frac{\partial y}{\partial W}$、このオブジェクトによって運ばれるデータの一部は、すべての偏導関数のセットです $\frac{\partial y}{\partial W_{ij}}$、およびこれらの派生物は、のすべての「エントリ」を形成する必要があります $\frac{\partial y}{\partial W}$。このwikiページでは、作成者はこれらの偏導関数のみを使用し、「全」導関数については言及していません。$\frac{\partial y}{\partial W}$

しましょう $e_1,e_2$ の標準基底を示します $\Bbb R^2$、すなわちの列 $2 \times 2$単位行列。これらの偏導関数は次の式で与えられることがわかります。$$ \frac{\partial y}{\partial W_{ij}} = x_j e_i. $$ スカラーエントリの観点から言えば、次のようになります。 $ \frac{\partial y_k}{\partial W_{ij}} = \delta_{ik} x_j, $ どこ $y_k$ を示します $k$の番目のエントリ $y$ そして $\delta_{ik}$ 「クロネッカーのデルタ」を示します。

さて、トータル/フレシェ微分に関しては、次のように言えます。$y(W)$ からの関数を定義します $\Bbb R^{2 \times 2}$$\Bbb R^2$、だから $W \in \Bbb R^{2 \times 2}$$D_Wy(X) = Dy(X)$ から線形マップを定義します $\Bbb R^{2 \times 2}$$\Bbb R^2$; 具体的には、$H \in \Bbb R^{2 \times 2}$、 我々は持っています $$ Dy(X)(H) = y(H) = Hx. $$ エントリの配列ではありませんが、この関数は $Dy$ 配列/テンソルの演算子です $\frac{\partial y}{\partial W}$を表します。「方向微分」を評価することで偏導関数を復元できます$d_Wy(X)(E_{ij})$、 どこ $E_{ij} = e_ie_j^T$$1$ の中に $i,j$エントリと他の場所のゼロ。確かに、私たちは持っています$$ Dy(X)(E_{ij}) = E_{ij} x = e_i (e_j^Tx) = x_j e_i. $$ 連鎖律は私たちに次のことを教えてくれます:どんな関数に対しても $g:\mathcal Z \to \Bbb R^{2 \times 2}$、の全導関数を計算できます $y \circ g$次のように。どんな場合でも$z \in \mathcal Z$、導関数(からの線形写像 $\mathcal Z$$\Bbb R^{2}$) によって与えられます $$ D(y \circ g)(z) = Dy(g(z)) \circ Dg(z), $$ どこ $Dy(g(z))$ からの線形マップです $\Bbb R^{2 \times 2} \to \Bbb R^2$ そして $Dg(z)$ からの線形マップです $\mathcal Z$$\Bbb R^{2 \times 2}$。より具体的には、$h \in \mathcal Z$、次に「に沿った」方向微分 $h$ によって与えられるべきです $$ D(y \circ g)(z)(h) = [Dy(g(z)) \circ Dg(z)](h) = [Dg(z)(h)] x. $$ 同様に、どの関数でも $p: \Bbb R^2 \to \mathcal Z$、の全導関数を計算できます $p \circ y$次のように。どんな場合でも$X \in \Bbb R^{2 \times 2}$、導関数(からの線形写像 $\Bbb R^{2 \times 2}$$\mathcal Z$) によって与えられます $$ D(p \circ y)(X) = Dh(y(X)) \circ Dy(X), $$ どこ $Dh(y(X))$ からの線形マップです $\Bbb R^2$$\mathcal Z$ そして $Dy(X)$ からの線形マップです $\Bbb R^{2 \times 2}$$\Bbb R^2$。より具体的には、$H \in \Bbb R^{2 \times 2}$、次に「に沿った」方向微分 $H$ によって与えられるべきです $$ D(p \circ y)(X)(H) = [Dp(y(X)) \circ Dy(X)](H) = Dp(y(X))(Hx). $$