2 votos

Prueba de la derivada de $x^TBx$ utilizando la regla del producto

Estoy tratando de demostrar que cuando $f(x) =x^TBx$ entonces $f'(x) = (B + B^T)x$ . No he encontrado esta fórmula en Internet, pero al repasar los cálculos utilizando la notación de índices, esto es lo que se me ocurrió. Esto se simplificaría a $2Bx$ cuando $B$ es simétrica. La respuesta aceptada a esta discusión dice que la solución es en realidad $f'(x) = x^T(B + B^T)$ , repasando la prueba allí, veo cómo llegó a eso pero no veo dónde está el error en el mío entonces.

El montaje

  • $x \in \mathbb{R^n}$ siempre es un vector columna
  • $B \in \mathbb{R^{n \times n}}$ , $B$ puede no ser simétrico

Mi enfoque

Dejemos que $g(x)=x^TB$ y $h(x)=x$ entonces puedo escribir $f(x)=g(x)h(x)$ . Entonces

  • $f(x) \in \mathbb{R}$
  • $g(x) \in \mathbb{R^{1 \times n}}$
  • $h(x) \in \mathbb{R^n}$
  • $f'(x) \in \mathbb{R^n}$
  • $g'(x) \in \mathbb{R^{n \times n}}$
  • $h'(x) \in \mathbb{R^{n \times n}}$

He pasado por mí mismo por qué $g'(x) = B$ y $h'(x) = I_n$ Así que no voy a hablar de ellos aquí.

Entonces, utilizando la regla del producto obtengo:

$$f'(x) = g'(x)h(x) + g(x)h'(x)$$

El problema es que las dimensiones no cuadran. Obtengo $g'(x)h(x) = Bx \in \mathbb{R^{n}}$ lo cual es bueno. Sin embargo, también tengo $g(x)h'(x) = x^TBI_n = x^TB \in \mathbb{R^{1 \times n}}$ y que yo sepa no puedo sumar dos vectores de distinto tamaño.

Sé que la solución va a ser la transposición del segundo término, pero no consigo encontrar de dónde saldría esa transposición.

¿Por qué tengo que tomar la transposición del segundo término?

[Editar]: Por favor, no respondas con una prueba diferente. Lo que busco es entender dónde me equivoqué en el cálculo porque evidentemente hice un paso que era incorrecto y sin entender dónde está es probable que vuelva a cometer ese error.

2voto

Traws Puntos 61

Puede ser útil introducir el producto interno de Frobenius como

$$ A:B = \operatorname{tr}(A^TB)$$

con las siguientes propiedades derivadas de la función de traza subyacente

$$\eqalign{A:BC &= B^TA:C\cr &= AC^T:B\cr &= A^T:(BC)^T\cr &= BC:A \cr } $$

Luego trabajamos con diferenciales para encontrar el gradiente. La regla del producto funciona como se espera. A cada lado de los dos puntos, puedes notar que las dimensiones son consistentes.

$$\eqalign{ f&= x^TBx\\ &= x : Bx\\ df &= dx : Bx + x : Bdx\\ &=dx : Bx + B^Tx:dx\\ &=(B + B^T)x : dx }$$

Así, el gradiente es: $$\frac{\partial f}{\partial x} =(B + B^T)x$$

editar:

La cuestión es que para los términos vectoriales: $$\frac{\partial(u^Tv)}{\partial x} \ne \Bigg(\frac{\partial u^T}{\partial x}\Bigg)v + u^T\Bigg(\frac{\partial v}{\partial x}\Bigg)$$

En cambio, cuando se trabaja con diferenciales, se mantiene:

$$ d(A\star B) = dA\star B + A\star dB $$

donde $\star$ puede ser Frobenius, Kronecker, Hadamard, producto de matrices, etc.

Si se trabaja la diferencial con la forma de producto matricial se verá que un término $dx^T$ aparece. Tratar con este término de agrupación dx es lo que hace que aparezca la transposición que te falta.

Si quiere aplicar directamente una regla de producto, debería decir:

$$\frac{\partial(u \cdot v)}{\partial x} = \Bigg(\frac{\partial u}{\partial x}\Bigg)^T v + \Bigg(\frac{\partial v}{\partial x}\Bigg)^T u$$

donde $u \cdot v = u^Tv$ con $u=x$ y $v = Bx$ .

0voto

user657324 Puntos 214

La forma más sencilla es realmente enderezar la función como un escalar :

$$f(x)=x^TBx=\sum_{i=1}^n\sum_{j=1}^n x_ib_{ij}x_j.$$ Entonces $$\partial _kf(x)=\sum_{i=1}^n x_ib_{ik}+\sum_{i=1}^n b_{ki}x_i=\sum_{i=1}^n(b_{ik}+b_{ki})x_i.$$ Por lo tanto, $$f'(x)=x^T(B+B^T)=(B^T+B)x.$$

0voto

Tim Almond Puntos 1887

La forma en que se intenta definir las derivadas con respecto a $x$ tiene una sutil incoherencia. Por un lado insiste en la derivada de $x^TB$ es $B$ lo que implica que el efecto de la diferenciación es cancelar un $X^T$ desde la izquierda. Por otro lado, se insiste en la derivada de $X$ (es decir $IX$ no $X^TI=X^T$ ) es $I$ es decir, la diferenciación anula un $X$ de la derecha. Es mejor trabajar a través de índices explícitos.

Si la derivada del escalar $x^TBx$ es el vector de columnas $(B+B^T)x$ o su transposición, el vector fila $x^T(B+B^T)$ es una cuestión de convención. (Sin embargo, la convención columna-vector tiene una ventaja obvia: la regla de la cadena se convierte en $df=(dx)^T\nabla f$ .) Lo que no es una cuestión de convención es su $i$ El componente de la serie es $$\partial_i (x_jB_{jk}x_k)=\delta_{ij}B_{jk}x_k+x_jB_{jk}\delta_{ik}=B_{ik}x_k+B_{ji}x_j=[(B+B^T)x]_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