线性代数

元素运算

加/减(Addition/subtraction)

a±b=cai±bi=cia \pm b = c \to a_i \pm b_i = c_i

乘(Hadamard product)

ab=caibi=cia \odot b = c \to a_ib_i = c_i or aba \circ b or a.ba.*b

除(Division)

将乘法反着用

矩阵运算

转置(Transpose)

X=[x1...xN]X = \left[ \begin{matrix} x_1\\ . \\ . \\ .\\ x_N \end{matrix} \right] XT=[x1 ... xN]X^T = \left[ \begin{matrix} x_1\ ... \ x_N \end{matrix} \right] X=[x1  x3x2  x4]X = \left[ \begin{matrix} x_1 \ \ x_3\\ x_2 \ \ x_4 \end{matrix} \right] XT=[x1  x2x3  x4]X^T = \left[ \begin{matrix} x_1 \ \ x_2\\ x_3 \ \ x_4 \end{matrix} \right]

重塑(Reshaping)

vec:回滚回列级(相当于降维度,可帮助避开矩阵或张量)

vec(X)=vec[x1  x3x2  x4]=[x1x2x3x4]vec(X) = vec\left[ \begin{matrix} \color{green}x_1\ \ \color{red}x_3\\ \color{green}x_2 \ \ \color{red}x_4 \end{matrix} \right] =\left[ \begin{matrix} \color{green}x_1\\ \color{green}x_2\\ \color{red}x_3\\ \color{red}x_4 \end{matrix} \right]

vec-transpose:(p)(p) 重塑一个 m×nm \times n 的矩阵

X(2)=[x11  x12x21  x22x31  x32x41  x42x51  x52x61  x62](2)=[x11  x31  x51x21  x41  x61x12  x32  x52x22  x42  x62]X^{(2)} = \left[ \begin{matrix} \color{green}x_{11}\ \ \color{red}x_{12}\\ \color{green}x_{21}\ \ \color{red}x_{22}\\ \color{green}x_{31}\ \ \color{red}x_{32}\\ \color{green}x_{41}\ \ \color{red}x_{42}\\ \color{green}x_{51}\ \ \color{red}x_{52}\\ \color{green}x_{61}\ \ \color{red}x_{62}\\ \end{matrix} \right]^{(2)} =\left[ \begin{matrix} \color{green}x_{11}\ \ \color{green}x_{31}\ \ \color{green}x_{51}\\ \color{green}x_{21}\ \ \color{green}x_{41}\ \ \color{green}x_{61}\\ \color{red}x_{12}\ \ \color{red}x_{32}\ \ \color{red}x_{52}\\ \color{red}x_{22}\ \ \color{red}x_{42}\ \ \color{red}x_{62}\\ \end{matrix} \right]

迹(Trace)

矩阵主对角线元素之和 tr(X)=tr[x11 ...  x1N...  ...   ...xN1 ... xNN]=ixiitr(X)=tr\left[ \begin{matrix} {\color{red}x_{11}}\ ...\ \ x_{1N}\\ ...\ \ {\color{red}...} \ \ \ ... \\ x_{N1} \ ...\ {\color{red} x_{NN}} \end{matrix} \right] =\sum \limits_i x_{ii}

对角矩阵(Diag)

diag(X)=diag[x1x2]=[x1 00  x2]diag(X) = diag\left[ \begin{matrix} x_1\\ x_2 \end{matrix} \right] = \left[ \begin{matrix} x_1\ 0\\ 0\ \ x_2 \end{matrix} \right] diag1[x1 ab  x2]=[x1x2]diag^{-1}\left[ \begin{matrix} x_1\ a\\ b\ \ x_2 \end{matrix} \right] =\left[ \begin{matrix} x_1\\ x_2 \end{matrix} \right]

点乘(Dot product)

xTy=ixi yi=xycos θx^T \cdot y = \sum \limits_i x_i \cdot \ y_i = |x| \cdot |y| cos\ \theta

矩阵-向量乘法(Matrix-vector prodcut)

从点乘运算衍生来,矩阵 XX 的列数必须与向量 yy 的元素数一致

Xy=[x1Tx2Tx3T]y=[x1Tyx2Tyx3Ty]=[x1,iyix2,iyix3,iyi]X \cdot y =\left[ \begin{matrix} x_1^T\\ x_2^T\\ x_3^T \end{matrix} \right] \cdot y = \left[ \begin{matrix} x_1^T \cdot y\\ x_2^T \cdot y\\ x_3^T \cdot y \end{matrix} \right] = \left[ \begin{matrix} \sum x_{1,i} \cdot y_i\\ \sum x_{2,i} \cdot y_i\\ \sum x_{3,i} \cdot y_i \end{matrix} \right]

矩阵-矩阵乘法(Matrix-matrix product)

矩阵 XX 的列数必须与矩阵 YY 的行数一致,即 (M×N)=(M×K)(K×N)(M \times N) = (M \times K) \cdot (K \times N)

XY=[x11  x12  x13x21  x22  x23][y11  y12y21  y22y31  y32]=[x11y11+x12y21+x13y31      x11y12+x12y22+x13y32x21y11+x22y21+x23y31      x21y12+x22y22+x23y32]X \cdot Y =\left[ \begin{matrix} x_{11}\ \ x_{12}\ \ x_{13}\\ x_{21}\ \ x_{22}\ \ x_{23} \end{matrix} \right] \cdot \left[ \begin{matrix} y_{11}\ \ y_{12}\\ y_{21}\ \ y_{22}\\ y_{31}\ \ y_{32}\\ \end{matrix} \right] = \left[ \begin{matrix} x_{11}\cdot y_{11}+x_{12}\cdot y_{21}+x_{13}\cdot y_{31}\ \ \ \ \ \ x_{11}\cdot y_{12}+x_{12}\cdot y_{22}+x_{13}\cdot y_{32} \\ x_{21}\cdot y_{11}+x_{22}\cdot y_{21}+x_{23}\cdot y_{31}\ \ \ \ \ \ x_{21}\cdot y_{12}+x_{22}\cdot y_{22}+x_{23}\cdot y_{32} \end{matrix} \right]

对称矩阵(Symmetric)

X=XTxij=xjiX = X^T \to x_{ij} = x_{ji}

XTX=XXT=IX^T \cdot X = X \cdot X^T = I

逆矩阵[非奇异矩阵](inverse)

在线性代数中,给定一个 nn 阶方阵 AA ,若存在一 nn 阶方阵 BB ,使得 AB=BA=InAB=BA=I_n ,其中 InI_nnn 阶单位矩阵,则称 AA 是可逆的,且 BBAA 的逆矩阵,记作 A1A^{-1}

X1X=IX^{-1} \cdot X = I

X1XY=YX^{-1} \cdot X \cdot Y= Y YX1X=YY \cdot X^{-1} \cdot X = Y X1YXYX^{-1} \cdot Y \cdot X \neq Y

只有正方形 n×nn \times n 的矩阵,亦即方阵,才可能、但非必然有逆矩阵。若方阵 AA 的逆矩阵存在,则称 AA 为非奇异方阵或可逆方阵。

伪逆矩阵[一般化的逆矩阵](pseudoinverse)

众所周知只有方阵才有逆矩阵,非方阵没有逆矩阵。这个不和谐的问题已在20世纪初被数学家E. H. Moore等人解决掉了,因为他们发明了一般化的逆矩阵(generalized inverse),也称为伪逆矩阵(Moore–Penrose pseudoinverse)。

对于任意一个 m×nm \times n 的矩阵 XXn×mn \times m 的伪逆矩阵 X+X^{+} 必然存在,且 X+X^{+} 必然满足以下四个条件:

XX+X=XX \cdot X^+ \cdot X= X X+XX=X+X^+ \cdot X \cdot X = X^+

(XX+)T=XX+(X \cdot X^+)^T = X \cdot X^+ (X+X)T=X+X(X^+ \cdot X)^T = X^+ \cdot X

在应用中,我们利用其性质进行 Ax=yx=A+yA \cdot x = y \to x = A^+ \cdot y

1) 在一般情况下,特征向量矩阵 AA 的特征向量 v\mathop{v} \limits^\to 满足下列式子:

Av=λvA \mathop{v} \limits^\to = \lambda \mathop{v} \limits^\to

其中 λ\lambda 是所谓的“特征值”的一个标量值。这意味着,向量 v\mathop{v} \limits^\to 上的线性变换 AA 完全由 λ\lambda 定义。

我们可以重写式子为:

Avλv=0            v(AλI)=0A \mathop{v} \limits^\to - \lambda \mathop{v} \limits^\to = 0 \ \ \ \ \ \ \Rightarrow \ \ \ \ \ \ \mathop{v} \limits^\to (A - \lambda I) = 0

然而,假定 v\mathop{v} \limits^\to 不是空向量,等式只能在 AλIA - \lambda I 不可逆的时候才能被定义。如果一个方阵是不可逆的,这意味着它的行列式必须等于零。因此,要找到 AA 的特征向量,我们只需要解决以下公式:

Det(AλI)=0Det(A - \lambda I) = 0

从几何层面上去理解二维的SVD:对于任意的 2×22\times 2 矩阵,通过SVD可以将一个相互垂直的网格(orthogonal grid)变换到另外一个相互垂直的网格。 我们可以通过向量的方式来描述这个事实: 首先,选择两个相互正交的单位向量 v1v_1v2v_2 , 向量 Mv1Mv_1Mv2Mv_2 正交。

u1u_1u2u_2 分别表示 Mv1Mv_1Mv2Mv_2 的单位向量, σ1u1=Mv1\sigma_1 \ast u_1 = Mv_1σ2u2=Mv2\sigma_2 \ast u_2 = Mv_2σ1\sigma_1σ2\sigma_2 分别表示这不同方向向量上的模,也称作为矩阵 MM 的奇异值。

这样我们就有了如下关系式:

Mv1=σ1u1Mv_1 = \sigma_1u_1

Mv2=σ2u2Mv_2 = \sigma_2u_2

我们现在可以简单描述下经过 MM 线性变换后的向量 xx 的表达形式。由于向量 v1v_1v2v_2 是正交的单位向量,我们可以得到如下式子(单位向量乘以向量即此向量在单位向量方向上的映射)

x=(v1x)v1+(v2x)v2x=(v_1x)v_1+(v_2x)v_2

这就意味着:

Mx=(v1x)Mv1+(v2x)Mv2Mx=(v_1x)Mv_1+(v_2x)Mv_2

Mx=(v1x)σ1u1+(v2x)σ2u2Mx=(v_1x)σ_1u_1+(v_2x)σ_2u_2

向量内积可以用向量的转置来表示,如下所示:

V.x=VTxV.x=V^Tx

最终的式子为:

Mx=u1σ1v1Tx+u2σ2v2TxMx=u_1σ_1v^T_1x+u_2σ_2v^T_2x

M=u1σ1v1T+u2σ2v2TM=u_1σ_1v_1^T+u_2σ_2v_2^T

上述的式子经常表示成:

M=UVTM=U∑V^T

UU 矩阵的列向量分别是 u1,u2u_1,u_2\sum 是一个对角矩阵,对角元素分别是对应的 σ1\sigma_1σ2\sigma_2VV 矩阵的列向量分别是 v1,v2v_1,v_2 。上角标 TT 表示矩阵 VV 的转置。

Norms

2-norms: x=xi2||x|| = \sqrt{\sum x_i^2}

p-norms: xp=(ixip)(1/p)||x||_p = (\sum \limits_i |x_i|^p)^{(1/p)}

Frobenius norm: xF=tr(XTX)=tr([x1Tx2T][x1  x2])=tr([x1Tx1   x1Tx2x2Tx1   x2Tx2])||x||_F = \sqrt{tr(X^T\cdot X)} = \sqrt{tr(\left[ \begin{matrix} x_1^T\\ x_2^T \end{matrix} \right]\cdot \left[ \begin{matrix} x_1\ \ x_2 \end{matrix} \right])} = \sqrt{tr(\left[ \begin{matrix} {\color{red}x_1^T\cdot x_1}\ \ \ x_1^T\cdot x_2 \\ x_2^T\cdot x_1\ \ \ {\color{red}x_2^T\cdot x_2} \end{matrix} \right])}

Kronecker product

矩阵 XX 中每个元素作为标量去乘矩阵 YY ,其结果对应元素在矩阵 XX 中位置

[x11 x12x21  x22]Y=[x11Y   x12Yx21Y   x22Y]\left[ \begin{matrix} x_{11}\ x_{12}\\ x_{21}\ \ x_{22} \end{matrix} \right] \otimes Y = \left[ \begin{matrix} x_{11} \cdot Y\ \ \ x_{12} \cdot Y\\x_{21} \cdot Y\ \ \ x_{22} \cdot Y \end{matrix} \right] vec(XYZ)=(ZTX)vec(Y)vec(X\cdot Y\cdot Z) = (Z^T \otimes X)vec(Y)

张量运算

通过Kronecker products以及vec运算我们可以完成多线性转换

Source

Last updated