Mahalanobis-Abstand in Matrixform
Der Mahalanobis-Abstand zwischen zwei Vektoren $x_i$ und $y_j$ ist gegeben durch:
$$d_{ij}(x_i, y_j)^2 = (x_i-y_j)^TQ^{-1}(x_i-y_j)$$
Gibt es eine vektorisierte Möglichkeit, die Einträge darzustellen? $d_{ij}$ in einer Matrixform $D$?
Hier ist mein Versuch:
\ begin {Gleichung} \ begin {split} d_ {ij} (x_i, y_j) ^ 2 & = (x_i-y_j) ^ TQ ^ {- 1} (x_i-y_j) \\ & = \ langle x_i-y_j, Q ^ {- 1} (x_i-y_j) \ rangle \\ & = \ langle x_i, Q ^ {- 1} (x_i-y_j) \ rangle - \ langle y_j, Q ^ {- 1} (x_i-y_j) \ rangle \\ & = x_i ^ TQ ^ {- 1} x_i + y_j ^ TQ ^ {- 1} y_j - 2x_i ^ TQ ^ {- 1} y_j \ end {split} \ end {Gleichung}
aber noch Elemente Einträge haben, keine Matrix.
Antworten
Gegeben zwei Sätze von Vektoren $\{x_i,\,y_j\},\,$ konstruiere zwei Matrizen mit diesen Vektoren als Spalten $$\eqalign{ X &= \big[\matrix{x_1&x_2&\ldots&x_m}\big] &\in{\mathbb R}^{\ell\times m} \\ Y &= \big[\matrix{y_1&y_2&\ldots&y_n}\big] &\in{\mathbb R}^{\ell\times n} \\ }$$ Dann ist die $\,m\times n\,$ Die Matrix der (quadratischen) euklidischen Abstände zwischen den Vektoren kann entweder als Vektoren oder als Matrizen ausgedrückt werden $$\eqalign{ &E_{ik} = \|x_i-y_k\|^2 &= (x_i-y_k)^T(x_i-y_k) \\ &E = \left(X\odot X\right)^TJ_Y &+ J_X^T\left(Y\odot Y\right) - 2X^TY \\ }$$ wo $\odot$ bezeichnet das Hadamard-Produkt und $(J_X,J_Y)$ sind All-One-Matrizen von der gleichen Größe wie $(X,Y)$, beziehungsweise.
Die Cholesky-Faktorisierung $\,Q^{-1}=LL^T\;$ kann verwendet werden, um die Vektoren und Matrizen zu modifizieren $$\eqalign{ x'_i &= L^Tx_i \qquad X'=L^TX \\ y'_k &= L^Ty_k \qquad Y'=L^TY \\ }$$ aus der die Matrix der (quadratischen) Mahalanobis-Abstände berechnet werden kann.
Wenden Sie die elementweise Quadratwurzel an, um die in der Frage angegebene Matrix zu berechnen $$E=D\odot D \quad\implies\quad D=E^{\odot 1/2}$$
Lassen $Z$ sei eine Matrix, deren $i$Die Spalte ist $x_i - y_i$. Dann$Z^\top Q^{-1} Z$ ist eine Matrix, deren $(i,j)$ Eintrag ist $d(x_i, y_j)^2$.
Der von @greg in seiner Antwort angegebene Ausdruck ermöglicht es uns, den folgenden Ausdruck zu schreiben $$E = (LX \odot LX)^TJ_Y + J_X^T(LY \odot LY) - 2X^TL^TLY$$
Hier ist mein Versuch, die Ableitung von E wrt zu X, Y und L zu berechnen.
Lassen $E_1 = (LX \odot LX)^TJ_Y$, $E_2 = J_X^T(LY \odot LY)$, und $E_3= 2X^TL^TLY$
Für die $1^{st}$Begriff haben wir: \ begin {Gleichung} \ begin {split} d (E_1) & = d (LX \ odot LX) ^ TJ_Y + (LX \ odot LX) ^ TdJ_Y \\ & = (2 (LX) ^ T \ odot d ((LX) ^ T)) J_Y \\ vec (d (E_1)) & = 2 (J_Y \ otimes I) (Kvec (LX) \ odot ((I \ otimes L) Kdx + (I \ otimes X ^) T) Kdl)) \\ & = 2 (J_Y \ otimes I) (KDiag (vec (LX))) ((I \ otimes L) Kdx + (X ^ T \ otimes I) Kdl) \ end {split} \ Ende {Gleichung}
Dann: \ begin {Gleichung} \ begin {split} & \ frac {d (vec (E_1))} {d (vec (X))} = 2 (J_Y \ otimes I) (KDiag (vec (LX))) ((I \ otimes L) K) \\ & \ frac {d (vec (E_1))} {d (vec (Y))} = 0, \\ & \ frac {d (vec (E_1))} { d (vec (L))} = 2 (J_Y \ otimes I) (KDiag (vec (LX))) (X ^ T \ otimes I) K). \ end {split} \ end {Gleichung}
Für die $2^{nd}$Begriff haben wir: \ begin {Gleichung} \ begin {split} d (E_2) & = d (J_X ^ T) (LY \ odot LY) + J_X ^ Td (LY \ odot LY) \\ & = J_X ^ T ( 2LY \ odot (dLY + LdY)) \\ & = J_X ^ T (2LY \ odot dLY + 2LY \ odot LdY) \\ vec (d (E_2)) & = 2 (I \ otimes J_X ^ T) (vec () LY) \ odot ((I \ otimes L) d (vec (Y)) + (Y ^ T \ otimes I) d (vec (L))) \\ & = 2 (I \ otimes J_X ^ T) (Diag (vec (LY)) ((I \ otimes L) dy + (Y ^ T \ otimes I) dl)) \ end {split} \ end {Gleichung}
Also \ begin {Gleichung} \ begin {split} & \ frac {d (vec (E_2))} {d (vec (X))} = 0, \\ & \ frac {d (vec (E_2))} { d (vec (Y))} = 2 (I \ otimes J_X) ^ T (Diag (vec (LY)) (I \ otimes L), \\ & \ frac {d (vec (E_2))} {d ( vec (L))} = 2 (I \ otimes J_X) ^ T (Diag (vec (LY)) (Y \ otimes I) ^ T. \ end {split} \ end {Gleichung}
Für die $3^{rd}$Term haben wir: \ begin {Gleichung} \ begin {split} d (E_3) & = 2 (d (X ^ T) L ^ TLY + X ^ Td (L ^ TL) Y + X ^ TL ^ TLdY) \\ vec (d (E_3)) & = 2 ((Y ^ TL ^ TL \ otimes I) d (vec (X ^ T) + \\ & \ quad (Y ^ T \ otimes X ^ T) d (vec (L. ^ TL) + (I \ otimes X ^ TL ^ TL) d (vec (Y))) \\ \ end {split} \ end {Gleichung}
wo, $ d(vec(L^TL)) = ((L^T \otimes I)K + (I \otimes L^T))d(vec(L))$
So:
\ begin {Gleichung} \ begin {split} & \ frac {d (vec (E_3))} {d (vec (X))} = 2 (Y ^ TL ^ TL \ otimes I) K = 2 (LY \ otimes I) ^ T (L \ otimes I) K, \\ & \ frac {d (vec (E_3))} {d (vec (Y))} = 2 (I \ otimes X ^ TL ^ TL) = 2 ( I \ otimes LX) ^ T (I \ otimes L), \\ & \ frac {d (vec (E_3))} {d (vec (L))} = 2 (Y ^ T \ otimes X ^ T) ( (L ^ T \ otimes I) K + (I \ otimes L ^ T)). \ end {split} \ end {Gleichung}
Wenn wir nun die drei Begriffe zusammenfügen, erhalten wir
$dE = dE_1 + dE_2 + dE_3$
Halten von Y und L konstant (dh $dY=0$, $dL=0$) ergibt:
\ begin {Gleichung} \ begin {split} \ frac {d (vec (E))} {d (vec (X))} & = 2 (J_Y \ otimes I) (KDiag (vec (LX)) ((I. \ otimes L) K) \\ & - 2 (LY \ otimes I) ^ T (L \ otimes I) K \ end {split} \ end {Gleichung}
X und L konstant halten (dh $dX=0$, $dL=0$) ergibt:
\ begin {Gleichung} \ begin {split} \ frac {d (vec (E))} {d (vec (Y))} & = 2 (I \ otimes J_X) ^ T (Diag (vec (LY)) ( I \ otimes L) - 2 (I \ otimes LX) ^ T (I \ otimes L) \\ & = 2 ((I \ otimes J_X) ^ T (Diag (vec (LY)) - (I \ otimes LX) ^ T) (I \ otimes L) \ end {split} \ end {Gleichung}
X und Y konstant halten (dh $dX=0$, $dY=0$) ergibt:
\ begin {Gleichung} \ begin {split} \ frac {d (vec (E))} {d (vec (L))} & = 2 (J_Y \ otimes I) (KDiag (vec (LX)) (X ^ T \ otimes I) K) \\ & + 2 (I \ otimes J_X) ^ T (Diag (vec (LY)) (Y \ otimes I) ^ T \\ & - 2 (Y ^ T \ otimes X ^ T) ((L ^ T \ otimes I) K + (I \ otimes L ^ T)). \ End {split} \ end {Gleichung}