Pregunta sobre la derivada de vector-matirix en propagación inversa

Aug 16 2020

Digamos que tengo una matriz como la siguiente:

$$ 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 retropropagación, es necesario calcular la $\partial {\vec{y}} \over \partial {W}$ actualizar $W$.

Pero, según Wiki , no hay consenso sobre la definición de una derivada de un vector por una matriz.

Entonces, ¿cómo puedo obtener el valor de $\partial {\vec{y}} \over \partial {W}$?

Respuestas

3 BenGrossmann Aug 16 2020 at 16:35

Cualquiera que sea tu noción de $\frac{\partial y}{\partial W}$, parte de los datos transportados por este objeto es el conjunto de todas las derivadas parciales $\frac{\partial y}{\partial W_{ij}}$, y estos derivados deben formar todas las "entradas" de $\frac{\partial y}{\partial W}$. En esta página wiki , los autores usan solo estas derivadas parciales y no hacen ninguna referencia a una derivada "total".$\frac{\partial y}{\partial W}$.

Dejar $e_1,e_2$ denotar la base canónica de $\Bbb R^2$, es decir, las columnas de la $2 \times 2$matriz de identidad. Podemos ver que estas derivadas parciales están dadas por$$ \frac{\partial y}{\partial W_{ij}} = x_j e_i. $$ Para poner las cosas en términos de entradas escalares, diríamos que $ \frac{\partial y_k}{\partial W_{ij}} = \delta_{ik} x_j, $ dónde $y_k$ denota el $k$a entrada de $y$ y $\delta_{ik}$ denota un "delta de Kronecker".

Ahora, en términos de la derivada total / Frechet , podríamos decir lo siguiente.$y(W)$ define una función de $\Bbb R^{2 \times 2}$ a $\Bbb R^2$, entonces para cualquier $W \in \Bbb R^{2 \times 2}$, $D_Wy(X) = Dy(X)$ define un mapa lineal de $\Bbb R^{2 \times 2}$ a $\Bbb R^2$; específicamente, para cualquier$H \in \Bbb R^{2 \times 2}$, tenemos $$ Dy(X)(H) = y(H) = Hx. $$ Aunque no es una matriz de entradas, esta función $Dy$ es el operador que la matriz / tensor $\frac{\partial y}{\partial W}$representaría. Podemos recuperar las derivadas parciales evaluando las "derivadas direccionales"$d_Wy(X)(E_{ij})$, dónde $E_{ij} = e_ie_j^T$ es la matriz con un $1$ en el $i,j$entrada y ceros en otras partes. De hecho, tenemos$$ Dy(X)(E_{ij}) = E_{ij} x = e_i (e_j^Tx) = x_j e_i. $$ La regla de la cadena nos dice lo siguiente: para cualquier función $g:\mathcal Z \to \Bbb R^{2 \times 2}$, podemos calcular la derivada total de $y \circ g$como sigue. Para cualquier$z \in \mathcal Z$, la derivada (un mapa lineal de $\mathcal Z$ a $\Bbb R^{2}$) es dado por $$ D(y \circ g)(z) = Dy(g(z)) \circ Dg(z), $$ dónde $Dy(g(z))$ es un mapa lineal de $\Bbb R^{2 \times 2} \to \Bbb R^2$ y $Dg(z)$ es un mapa lineal de $\mathcal Z$ a $\Bbb R^{2 \times 2}$. Más concretamente, si$h \in \mathcal Z$, luego la derivada direccional "a lo largo" $h$ debe ser dado por $$ D(y \circ g)(z)(h) = [Dy(g(z)) \circ Dg(z)](h) = [Dg(z)(h)] x. $$ Del mismo modo, para cualquier función $p: \Bbb R^2 \to \mathcal Z$, podemos calcular la derivada total de $p \circ y$como sigue. Para cualquier$X \in \Bbb R^{2 \times 2}$, la derivada (un mapa lineal de $\Bbb R^{2 \times 2}$ a $\mathcal Z$) es dado por $$ D(p \circ y)(X) = Dh(y(X)) \circ Dy(X), $$ dónde $Dh(y(X))$ es un mapa lineal de $\Bbb R^2$ a $\mathcal Z$ y $Dy(X)$ es un mapa lineal de $\Bbb R^{2 \times 2}$ a $\Bbb R^2$. Más concretamente, si$H \in \Bbb R^{2 \times 2}$, luego la derivada direccional "a lo largo" $H$ debe ser dado por $$ D(p \circ y)(X)(H) = [Dp(y(X)) \circ Dy(X)](H) = Dp(y(X))(Hx). $$