51 votos

Derivada del vector con respecto a su transposición $\frac{d(Ax)}{d(x^T)}$

Dada una matriz $A$ y el vector columna $x$ ¿Cuál es la derivada de $Ax$ con respecto a $x^T$ es decir $\frac{d(Ax)}{d(x^T)}$ , donde $x^T$ es la transposición de $x$ ?

Nota al margen - mi objetivo es obtener la fórmula de la derivada conocida $\frac{d(x^TAx)}{dx} = x^T(A^T + A)$ de la regla anterior y de la regla de la cadena.

Gracias,
Asaf

0 votos

59voto

Dejemos que $f(x) = x^TAx$ y quiere evaluar $\frac{df(x)}{dx}$ . Esto no es más que el gradiente de $f(x)$ .

Hay dos maneras de representar el gradiente, una como vector de fila o como vector de columna. Por lo que has escrito, tu representación del gradiente es como un vector fila.

Primero asegúrate de tener las dimensiones de todos los vectores y matrices en su sitio.

Aquí $x \in \mathbb{R}^{n \times 1}$ , $A \in \mathbb{R}^{n \times n}$ y $f(x) \in \mathbb{R}$

Esto le ayudará a asegurarse de que sus operaciones aritméticas se realizan sobre vectores de dimensiones adecuadas.

Ahora pasemos a la diferenciación.

Todo lo que necesitas saber son las siguientes reglas para la diferenciación de vectores.

$$\frac{d(x^Ta)}{dx} = \frac{d(a^Tx)}{dx} = a^T$$ donde $x,a \in \mathbb{R}^{n \times 1}$ .

Tenga en cuenta que $x^Ta = a^Tx$ ya que es un escalar y la ecuación anterior se puede derivar fácilmente.

(Algunas personas siguen una convención diferente, es decir, tratan la derivada como un vector columna en lugar de un vector fila. Asegúrate de seguir tu convención y al final llegarás a la misma conclusión)

Aproveche los resultados anteriores para obtener,

$$\frac{d(x^TAx)}{dx} = x^T A^T + x^T A$$ Utilice la regla del producto para obtener el resultado anterior, es decir, tome primero $Ax$ como constante y luego tomar $x^T A$ como constante.

Así que, $$\frac{df(x)}{dx} = x^T(A^T + A)$$

2 votos

Creo que tienes una x de más al final de tu última línea (y un par de paréntesis superfluos). Aparte de eso, estoy de acuerdo con todo, pero no es una respuesta a la pregunta tal y como yo la entiendo.

0 votos

@joriki: Gracias por señalarlo.

1 votos

Creo que mi problema fue no darme cuenta de que Ax es un vector. Cómo los pequeños errores llevan a una gran pérdida de tiempo... Gracias por la respuesta detallada.

10voto

Spencer Puntos 48

Los matemáticos se matan por las derivadas y los gradientes. No se sorprenda si los estudiantes no entienden ni una palabra sobre este tema. Los estragos anteriores son causados en parte por el Matrix Cookbook, un libro que debería estar en la lista negra. Cada uno tiene su propia definición. $\dfrac{d(f(x))}{dx}$ significa una derivada o un gradiente (escandaloso). Podríamos escribir $D_xf$ como la derivada y $\nabla _xf$ como el gradiente. La derivada es una aplicación lineal y el gradiente es un vector si aceptamos la siguiente definición: sea $f:E\rightarrow \mathbb{R}$ donde $E$ es un espacio euclidiano. Entonces, para cada $h\in E$ , $D_xf(h)=<\nabla_x(f),h>$ . En particular $x\rightarrow x^TAx$ tiene un gradiente pero $x\rightarrow Ax$ ¡no tiene ! Utilizando las definiciones anteriores, se tiene (hasta errores involuntarios):

Dejemos que $f:x\rightarrow Ax$ donde $A\in M_n$ Entonces $D_xf=A$ (no hay problema). Por otro lado $x\rightarrow x^T$ es una biyección (¡un simple cambio de variable!) ; entonces podemos dar sentido a la derivada de $Ax$ con respecto a $x^T$ : considere la función $g:x^T\rightarrow A(x^T)^T$ la función requerida es $D_{x^T}g:h^T\rightarrow Ah$ donde $h$ es un vector ; nótese que $D_{x^T}g$ es una constante. EDIT: si elegimos las bases $e_1^T,\cdots,e_n^T$ y $e_1,\cdots,e_n$ (la segunda es la base canónica), entonces la matriz asociada a $D_{x^T}g$ es $A$ de nuevo.

Dejemos que $\phi:x\rightarrow x^TAx$ ; $D_x\phi:h\rightarrow h^TAx+x^TAh=x^T(A+A^T)h$ . Además $<\nabla_x(f),h>=x^T(A+A^T)h$ Es decir ${\nabla_x(f)}^Th=x^T(A+A^T)h$ . Por identificación, $\nabla_x(f)=(A+A^T)x$ un vector (fórmula (89) en la matriz detestable Libro de cocina !) ; en particular, la solución anterior $x^T(A+A^T)$ ¡no es un vector !

1 votos

¿Puede recomendar un buen libro de texto que explique la diferencia entre $D$ y $\nabla$ ?

9voto

JiminyCricket Puntos 143

Creo que no existe tal cosa. $\mbox{d}(x^\mbox{T}Ax)/\mbox{d}x$ es algo que, cuando se multiplica por el cambio $\mbox{d}x$ en $x$ , se obtiene el cambio $\mbox{d}(x^\mbox{T}Ax)$ en $x^\mbox{T}Ax$ . Tal cosa existe y viene dada por la fórmula que citas. $\mbox{d}(Ax)/\mbox{d}(x^\mbox{T})$ tendría que ser algo que, al multiplicarse por el cambio $\mbox{d}x^\mbox{T}$ en $x^\mbox{T}$ , se obtiene el cambio $\mbox{d}Ax$ en $Ax$ . No existe tal cosa, ya que $x^\mbox{T}$ es un $1 \times n$ vector fila y $Ax$ es un $n \times 1$ vector de columnas.

Si tu objetivo principal es derivar la fórmula de la derivada, aquí tienes una derivación:

$(x^\mbox{T} + \mbox{d}x^\mbox{T})A(x + \mbox{d}x) = x^\mbox{T}Ax + \mbox{d}x^\mbox{T}Ax + x^\mbox{T}A\mbox{d}x + \mbox{d}x^\mbox{T}A\mbox{d}x =$

$=x^\mbox{T}Ax + x^\mbox{T}A^\mbox{T}\mbox{d}x + x^\mbox{T}A\mbox{d}x + O (\lVert \mbox{d}x \rVert^2) = x^\mbox{T}Ax + x^\mbox{T}(A^\mbox{T} + A)\mbox{d}x + O (\lVert \mbox{d}x \rVert^2)$

0 votos

@joriki : Es fuerte decir que no existe tal cosa. Normalmente se interpreta como el gradiente de una función.

0 votos

Creo que uno de nosotros entendió mal la pregunta. En tu respuesta, has contestado a la pregunta de qué es df/dx = d(x^T A x)/dx. Sí, esto existe y es el gradiente de f. Pero si entiendo bien la pregunta, se preguntaba qué es d(Ax)/d(x^T), donde A es una matriz. Sigo pensando que no existe tal cosa.

0 votos

@joriki: La interpretación de $\frac{d(Ax)}{dx^T}$ ¿es el hessiano correcto? que en este caso no es más que $A$ .

3voto

palehorse Puntos 8268

Como señala Sivaram, debes definir tu convención sobre los derivados de las filas/columnas y simplemente ser coherente.

Por ejemplo, se podría definir la derivada de un vector columna con respecto a un vector fila como (suponiendo que las letras representan vectores columna) como matriz:

$\displaystyle \frac{d(y)}{dx^T} = D$ con $d_{i,j} = \frac{d(y_i)}{dx^j}$

Y eso funcionará (será coherente). Por ejemplo, se obtiene $\displaystyle \frac{d(Ax)}{dx^T} = A$

Pero no es tan sencillo aplicar esto -y la regla del producto de la derivación- para deducir tu identidad, porque llegas a derivadas diferentes: una fila con respecto a una fila y una columna con respecto a la fila, y no puedes (al menos sin más justificación) mezclarlas.

Por supuesto, si la matriz es simétrica todo es más sencillo.

0 votos

Bien, para precisar mi punto de vista, debería decir: Ambos tenéis razón en que si queréis definir la notación de esta manera podéis hacerlo; pero en la notación que el propio Asaf utilizó para $\mbox{d}(x^\mbox{T}Ax)/\mbox{d}x$ y que se utiliza en Wikipedia, no tiene sentido escribir $\mbox{d}(Ax)/\mbox{d}x^\mbox{T}$ . ¿Podemos estar de acuerdo?

0voto

HalfTea Puntos 128

Calcularemos $\frac{\delta(x^TAx)}{\delta x}$ por la regla del producto. Primero dejamos que $Ax$ sea una constante seguida de $x^TA$ .

La función se divide en $x^TA$ y $x$ pero tenga en cuenta que $A$ es una constante, por lo que al diferenciar la primera podemos tratar $Ax$ como constante.

Así que tenemos, $(Ax)^T+x^TA=x^TA^T+x^TA=x^T(A^T+A)$

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