82 votos

Gradiente de la norma l2 al cuadrado

¿Podría alguien proporcionar una prueba de la siguiente regla?

$$\nabla\|x\|_2^2 = 2x$$

Es decir, ¿por qué el gradiente de la $L_2$ norma cuadrada de $x$ igual a $2x$ ?

Gracias

1 votos

108voto

Surb Puntos 18399

Utilice el definición . Si $$f(x)=\|x\|^2_2= \left(\left(\sum_{k=1}^n x_k^2 \right)^{1/2}\right)^{2}=\sum_{k=1}^n x_k^2 ,$$ entonces $$\frac{\partial}{\partial x_j}f(x) =\frac{\partial}{\partial x_j}\sum_{k=1}^n x_k^2=\sum_{k=1}^n \underbrace{\frac{\partial}{\partial x_j}x_k^2}_{\substack{=0, \ \text{ if } j \neq k,\\=2x_j, \ \text{ else }}}= 2x_j.$$ De ello se desprende que $$\nabla f(x) = 2x.$$

0 votos

Gracias. Una pregunta de seguimiento, ¿se mantiene esto si x es complejo?

0 votos

¿No se define la norma L2 como: $$f(x)=\|x\|^2_2= \left(\left(\sum_{k=1}^n |x_k|^2 \right)^{1/2}\right)^{2}=\sum_{k=1}^n |x_k|^2$$ hay un signo de valor absoluto que rodea $x_k$ Así que cuando se toma la derivada lo que debería salir es $2|x_j|$ no sólo $2x_j$ Corrígeme si me equivoco

4 votos

@Lookbehindyou bien |t|^2 = t^2 para cualquier $t\in\Bbb R$ . Además, hay que tener en cuenta que $\frac{d}{t}|t|^2 = 2|t|\operatorname{sign}(t)=2t$ , donde $\operatorname{sign}$ es el función del signo

42voto

bea Puntos 16

Otro enfoque que se extiende a entornos más generales es utilizar la conexión entre la norma y el producto interno, $$\|x\|^2 = (x,x).$$

Tenemos la diferencia finita, \begin{align} \|x+sh\|^2 - \|x\|^2 &= (x+sh,x+sh) - (x,x) \\ &= (x,x) + 2s(x,h) + s^2(h,h) - (x,x) \\ &= 2s(x,h) + s^2(h,h). \end{align}

El gradiente que actúa en la dirección $h$ es el límite de esta diferencia finita a medida que el tamaño del paso llega a cero, \begin{align} (\nabla\|x\|^2, h) &:= \lim_{s \rightarrow 0} \frac{1}{s}\left[\|x+sh\|^2 - \|x\|^2\right] \\ &= \lim_{s \rightarrow 0} \frac{1}{s}\left[2s(x,h) + s^2(h,h)\right] \\ &= (2x,h). \end{align} Como esto es válido para cualquier dirección $h$ el gradiente debe ser $\nabla \|x\|^2 = 2x$ .

5voto

rlbond Puntos 24215

No estoy seguro de que esto sea lo suficientemente riguroso como para contar con una prueba, pero una forma elegante de obtener derivadas de expresiones vectoriales es utilizar el cálculo diferencial matricial.

Dejemos que $y = \lVert x \rVert_2^2 = x^{T} x$ con $x \in \mathbb{R}^{n}$ . Utilizando la regla del producto, el diferencial de $y$ es $$ dy = dx^{T} x + x^{T} dx = 2 x^{T} dx $$

A continuación, podemos establecer $$ dy = \frac{dy}{dx} dx = (\nabla_{x} y)^{T} dx = 2x^{T} dx $$ donde $dy/dx \in \mathbb{R}^{1 \times n}$ se llama la derivada (un operador lineal) y $\nabla_{x} y \in \mathbb{R}^{n}$ se llama gradiente (un vector).

Ahora podemos ver $\nabla_{x} y = 2 x$ .


Si $x$ es complejo, el complejo derivado no existe porque $z \mapsto |z|^{2}$ no es una función holomorfa.

Sin embargo, podemos considerar las derivadas reales con respecto a las dos componentes de $x$ . Sea $x = u + i v$ . Con esta definición, $y$ es una función real de $u, v \in \mathbb{R}^{n}$ definido por $$ y = x^* x = (u + i v)^* (u + i v) = u^T u - v^T v $$ Tomando el diferencial $$ dy = 2 u^T du - 2 v^T dv = \frac{\partial y}{\partial u} du + \frac{\partial y}{\partial v} dv $$ y por lo tanto $$ \nabla_{u} y = 2 u \enspace , \qquad \nabla_{v} y = -2 v $$


Para una introducción al cálculo diferencial matricial, véase la conferencia de Geoff Gordon en YouTube o el documento sobre las derivadas matriciales de Mike Giles .

0 votos

Perdóname, ¿por qué $x^T dx + dx^T x = 2x^T dx$ ? Supongo, que dx^T = dx, porque es número, pero lo que podemos hacer con x + x^T ..

0 votos

En realidad $dx$ tiene la misma dimensión que $x$ ambos están en $R^n$

0 votos

Por si no estaba claro, para $a, b \in R^n$ tenemos $a^T b = b^T a = \sum_i a_i b_i$

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