2 votos

Descenso de gradiente wrt matriz

Supongamos que $\mathbf{X}$ es una matriz p x n, $\mathbf{Y}$ es q x n, $\mathbf{C}$ es una matriz q x p desconocida. ¿Puedes minimizar lo siguiente con el descenso de gradiente para encontrar C? (regresión multivariante)

$|| \mathbf{Y}-\mathbf{C}\mathbf{X}||^2_F$

¿No sería el gradiente wrt $\mathbf{C}$ simplemente ser

$\nabla g = -2 (\mathbf{Y}-\mathbf{C}\mathbf{X}) \mathbf{X}'$

3voto

Leon Katsnelson Puntos 274

O explícitamente, si $g(C) = \langle Y-CX, Y-CX \rangle$ tenemos $g(C+H) -g(C) = -2 \langle Y-CX, HX \rangle+ O(\|H\|^2)$ y como $\langle Y-CX, HX \rangle = \operatorname{tr}((Y-CX)^T HX) = \operatorname{tr}(X(Y-CX)^T H) = \langle (Y-CX)X^T, H \rangle $ .

Por lo tanto, $\nabla g(C) = -2(Y-CX)X^T$ .

1voto

Jukka Dahlbom Puntos 1219

Su función puede escribirse de la forma $$ g(C) = \operatorname{tr}[(Y - CX)(Y - CX)'] = \operatorname{tr}[CXX'C] - 2\operatorname{tr}[CXY'] + [\text{const}] $$ Tras esta tabla el gradiente (ya sea la transposición de la derivada en la columna de la izquierda o, de forma equivalente, la derivada en la columna de la derecha) será $$ \frac{\partial g}{\partial C} = [(Y - CX)(-X') + (-X)(Y - CX)']' - [2XY']' \\ = -X(Y - CX)' - (Y - CX)X' - 2YX'. $$


Para un enfoque más abstracto, observe que

$$ g(C+H) = \operatorname{tr}[(Y - [C+H]X)(Y - [C+H]X)']\\ = g(C) - \operatorname{tr}[HX(Y - CX)'] - \operatorname{tr}[(Y - CX)X'] + o(H)\\ = g(C) - 2\operatorname{tr}[HX(Y - CX)'] + o(H). $$ Por lo tanto, consideramos que $dg = -\operatorname{tr}[2X(Y - CX)' dC]$ para que el gradiente sea igual a $$ -[X(Y - CX)']' = -2(Y - CX)X'. $$ Esto coincide con su resultado.

1voto

greg Puntos 156

No es necesario el descenso de gradiente para resolver una ecuación lineal.
Basta con utilizar la inversa de Moore-Penrose $X^+$ $$\eqalign{ CX &= Y \quad\implies\quad C = YX^+ \\ }$$ También se pueden incluir contribuciones del espacio nulo (multiplicado por una matriz arbitraria $A$ ) $$\eqalign{ C = YX^+ + A(I-XX^+) \\ }$$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X