Question sur le dérivé vectoriel-matirix dans la rétro-propagation
Disons que j'ai une matrice comme ci-dessous:
$$ 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} $$
En rétropropagation, il est nécessaire de calculer le $\partial {\vec{y}} \over \partial {W}$ mettre à jour $W$.
Mais, selon Wiki , il n'y a pas de consensus sur la définition d'un dérivé d'un vecteur par une matrice.
Alors, comment puis-je obtenir la valeur de $\partial {\vec{y}} \over \partial {W}$?
Réponses
Quelle que soit votre notion de $\frac{\partial y}{\partial W}$, une partie des données portées par cet objet est l'ensemble de toutes les dérivées partielles $\frac{\partial y}{\partial W_{ij}}$, et ces dérivés doivent former toutes les "entrées" de $\frac{\partial y}{\partial W}$. Dans cette page wiki , les auteurs n'utilisent que ces dérivés partiels et ne font aucune référence à un dérivé "total"$\frac{\partial y}{\partial W}$.
Laisser $e_1,e_2$ dénotent la base canonique de $\Bbb R^2$, c'est-à-dire les colonnes du $2 \times 2$matrice d'identité. On voit que ces dérivées partielles sont données par $$ \frac{\partial y}{\partial W_{ij}} = x_j e_i. $$ Pour mettre les choses en termes d'entrées scalaires, on dirait que $ \frac{\partial y_k}{\partial W_{ij}} = \delta_{ik} x_j, $ où $y_k$ désigne le $k$ème entrée de $y$ et $\delta_{ik}$ désigne un "delta de Kronecker".
Maintenant, en termes de dérivée totale / Frechet , nous pourrions dire ce qui suit.$y(W)$ définit une fonction de $\Bbb R^{2 \times 2}$ à $\Bbb R^2$, donc pour tout $W \in \Bbb R^{2 \times 2}$, $D_Wy(X) = Dy(X)$ définit une carte linéaire à partir de $\Bbb R^{2 \times 2}$ à $\Bbb R^2$; spécifiquement, pour tout$H \in \Bbb R^{2 \times 2}$, nous avons $$ Dy(X)(H) = y(H) = Hx. $$ Bien qu'il ne s'agisse pas d'un tableau d'entrées, cette fonction $Dy$ est l'opérateur que le tableau / tenseur $\frac{\partial y}{\partial W}$représenterait. On peut récupérer les dérivées partielles en évaluant les "dérivées directionnelles"$d_Wy(X)(E_{ij})$, où $E_{ij} = e_ie_j^T$ est la matrice avec un $1$ dans le $i,j$entrée et zéros ailleurs. En effet, nous avons $$ Dy(X)(E_{ij}) = E_{ij} x = e_i (e_j^Tx) = x_j e_i. $$ La règle de la chaîne nous dit ce qui suit: pour toute fonction $g:\mathcal Z \to \Bbb R^{2 \times 2}$, nous pouvons calculer la dérivée totale de $y \circ g$comme suit. Pour toute$z \in \mathcal Z$, la dérivée (une application linéaire de $\mathcal Z$ à $\Bbb R^{2}$) est donné par $$ D(y \circ g)(z) = Dy(g(z)) \circ Dg(z), $$ où $Dy(g(z))$ est une carte linéaire de $\Bbb R^{2 \times 2} \to \Bbb R^2$ et $Dg(z)$ est une carte linéaire de $\mathcal Z$ à $\Bbb R^{2 \times 2}$. Plus concrètement, si$h \in \mathcal Z$, puis la dérivée directionnelle "le long" $h$ devrait être donné par $$ D(y \circ g)(z)(h) = [Dy(g(z)) \circ Dg(z)](h) = [Dg(z)(h)] x. $$ De même, pour toute fonction $p: \Bbb R^2 \to \mathcal Z$, nous pouvons calculer la dérivée totale de $p \circ y$ comme suit. Pour toute$X \in \Bbb R^{2 \times 2}$, la dérivée (une application linéaire de $\Bbb R^{2 \times 2}$ à $\mathcal Z$) est donné par $$ D(p \circ y)(X) = Dh(y(X)) \circ Dy(X), $$ où $Dh(y(X))$ est une carte linéaire de $\Bbb R^2$ à $\mathcal Z$ et $Dy(X)$ est une carte linéaire de $\Bbb R^{2 \times 2}$ à $\Bbb R^2$. Plus concrètement, si$H \in \Bbb R^{2 \times 2}$, puis la dérivée directionnelle "le long" $H$ devrait être donné par $$ D(p \circ y)(X)(H) = [Dp(y(X)) \circ Dy(X)](H) = Dp(y(X))(Hx). $$