3 votos

diferenciación matricial de la norma lp

Estoy tratando de averiguar cuál es el gradiente [diferenciación matricial] de la norma lp. He visto algunos otros puestos en relación con el caso específico cuando, por ejemplo, cuando p = 2 así que creo que:

$$\frac{\partial d}{\partial x} ||Ax - b||_2 = A$$

¿pero qué pasa con diferentes valores arbitrarios de p? En ese caso, ¿qué es $\frac{\partial d}{\partial x} ||Ax - b||_p $ donde el subíndice _p significa lp-norm?

2voto

greg Puntos 156

Definir dos nuevas variables $$\eqalign{ M &= (AX-B) &\implies &dM=A\,dX \cr C &= {\rm abs}(M) &\implies &C\odot C=M\odot M \cr &\,&\,&C\odot dC=M\odot dM \cr }$$ donde utilizamos $\odot$ denotan el producto elemental/Hadamard.

Definamos también las potencias de Hadamard de una matriz de la forma obvia, es decir $M^{\odot 3} = M\odot M\odot M$ . Por último, utilicemos los dos puntos para denotar el producto traza/Frobenius, es decir $\,\,A:X={\rm tr}(A^TX)$ .

Ahora podemos expresar la norma en una forma que nos permita encontrar su diferencial y su gradiente $$\eqalign{ \phi &= \|M\|_p \cr \phi^p &= \|M\|_p^p = 1:C^{\odot p} \cr d\phi^p &= 1:pC^{\odot(p-1)}\odot dC \cr &= pC^{\odot(p-2)}: C\odot dC \cr p\phi^{p-1}d\phi &= pC^{\odot(p-2)}: M\odot dM \cr \cr d\phi &= \phi^{1-p} C^{\odot(p-2)}\odot M: dM \cr &= \phi^{1-p} C^{\odot(p-2)}\odot M: A\,dX \cr &= \phi^{1-p} A^T\Big(C^{\odot(p-2)}\odot M\Big) : dX \cr \cr \frac{\partial\phi}{\partial X} &= \phi^{1-p} A^T\Big(M\odot C^{\odot(p-2)}\Big) \cr &= \phi^{1-p} A^T\Big((AX-B)\odot ({\rm abs}(AX-B))^{\odot(p-2)}\Big) \cr }$$ Tenga cuidado cuando $p<1$ y los componentes de $M\rightarrow 0$ .

Tenga en cuenta que cuando $p=2$ el gradiente se reduce a $$\eqalign{ \frac{\partial\phi}{\partial X} &= \phi^{-1} A^T(AX-B) \cr }$$ que es un poco diferente de lo que usted había supuesto.

1voto

Sargunan Puntos 14

Para empezar, puedes escribir la definición de una norma p y luego intentar calcular la derivada parcial. $\| \boldsymbol{\mathrm{x}}\|_p = (|x_1|^p + |x_2|^p + \dots + |x_n|^p)^{\frac{1}{p}}$

Para calcular una derivada parcial con respecto a una variable, se supone que el resto de las variables son constantes y entonces se calcula una derivada real con respecto a la única variable en consideración.

$$\frac{\partial \| \boldsymbol{\mathrm{x}}\|_p }{\partial x_i}= (|x_1|^p + |x_2|^p + \dots + |x_n|^p)^ {1/p-1}*|x_i|^{p-1} * sign(x_i)$$ (Hay que comprobar las matemáticas aquí para asegurarse de que no hay errores tipográficos)

Puedes simplificar y combinar tus parciales para obtener una matriz \vector para la matriz del gradiente \vector.

Cuando hay funciones dentro de la norma, se puede utilizar la regla de la cadena matricial para el resto del cálculo. Matrixcookbook podría ser útil aquí.

Nótese que algunas normas no son diferenciables en todos los puntos. Por ejemplo, la norma L1 no es diferenciable en el vector cero.

*Typo en la derivada es fijo

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