Вопрос о производной вектор-матрикс при обратном распространении
Скажем, у меня есть матрица, как показано ниже:
$$ 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}$?
Ответы
Каким бы ни было ваше представление о $\frac{\partial y}{\partial W}$, часть данных, переносимых этим объектом, является набором всех частных производных $\frac{\partial y}{\partial W_{ij}}$, и эти производные должны формировать все «записи» $\frac{\partial y}{\partial W}$. На этой странице вики автор (ы) использует только эти частные производные и не делает никаких ссылок на «полную» производную.$\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). $$