对人工智能数学课高等数学线性微积分数学教程的学习笔记。主要用于快速回忆已学的数学知识点,不适合基础学习。博客园中同步更新。
f ( x 1 , x 2 , ⋯ , x n ) = a 11 x 1 2 + a 22 x 2 2 + ⋯ + a n n x n 2 + 2 a 12 x 1 x 2 + 2 a 13 x 1 x 3 + ⋯ + 2 a n − 1 , n x n − 1 x n f\left ( x_1,x_2,\cdots,x_n \right )=a_{11}x_1^2+a_{22}x_2^2+\cdots+a_{nn}x_n^2+2a_{12}x_1x_2+2a_{13}x_1x_3+\cdots+2a_{n-1,n}x_{n-1}x_{n} f(x1,x2,⋯,xn)=a11x12+a22x22+⋯+annxn2+2a12x1x2+2a13x1x3+⋯+2an−1,nxn−1xn
( x 1 , ⋯ , x n ) [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋯ ⋯ ⋯ ⋯ a n 1 a n 2 ⋯ a n n ] ( x 1 ⋯ ⋯ x n ) \left ( x_1,\cdots,x_n \right )\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}\begin{pmatrix} x_1\\ \cdots\\ \cdots\\ x_n \end{pmatrix} (x1,⋯,xn)⎣ ⎡a11a21⋯an1a12a22⋯an2⋯⋯⋯⋯a1na2n⋯ann⎦ ⎤⎝ ⎛x1⋯⋯xn⎠ ⎞
矩阵与向量的乘法相当于对向量做了一个线性变换,变换后不一定和原来在一条直线上。
设 A \boldsymbol{A} A 是 n n n 阶方阵,若存在数 λ \lambda λ 和非零 n n n 维向量 x \boldsymbol{x} x,使得 A x = λ x \boldsymbol{A}\boldsymbol{x}=\lambda \boldsymbol{x} Ax=λx 成立,则称 λ \lambda λ 是矩阵 A \boldsymbol{A} A 的一个特征值 (characteristic value) 或本征值 (eigenvalue)。
A x = λ x ⇒ ( A − λ I ) x = 0 \boldsymbol{Ax}=\lambda \boldsymbol{x} \Rightarrow \left ( \boldsymbol{A}-\lambda \boldsymbol{I }\right )\boldsymbol{x}=0 Ax=λx⇒(A−λI)x=0,有非零解的充要条件是系数行列式 ∣ λ I − A ∣ = 0 \left | \lambda \boldsymbol{I}-\boldsymbol{A} \right |=0 ∣λI−A∣=0
∣ λ I − A ∣ = λ n + α 1 λ n − 1 + α 2 λ n − 2 + ⋯ + α n − 1 λ + α n \left | \lambda \boldsymbol{I}-\boldsymbol{A} \right |=\lambda ^n+\alpha _1\lambda ^{n-1}+\alpha _2\lambda ^{n-2}+\cdots+\alpha _{n-1}\lambda+\alpha _n ∣λI−A∣=λn+α1λn−1+α2λn−2+⋯+αn−1λ+αn
5 次和 5 次以上代数方程没有求根公式,工程上计算矩阵特征值使用 QR 算法。
t r ( A ) = ∑ i = 1 n a i i = λ 1 + λ 2 + ⋯ + λ n = ∑ i = 1 n λ i tr(\boldsymbol{A}) = \sum\limits_{i=1}^{n}a_{ii}=\lambda _1+\lambda _2+\cdots+\lambda _n=\sum\limits_{i=1}^{n}\lambda _i tr(A)=i=1∑naii=λ1+λ2+⋯+λn=i=1∑nλi, ∏ i = 1 n λ i = ∣ A ∣ \prod\limits_{i=1}^{n}\lambda _i=\left | \boldsymbol{A} \right | i=1∏nλi=∣A∣
np.linalg.eig(X)
n × n n\times n n×n 矩阵 A \boldsymbol{A} A 的 n n n 个特征值 λ 1 ≤ λ 2 ≤ ⋯ ≤ λ n \lambda_1\le\lambda_2\le\cdots\le\lambda_n λ1≤λ2≤⋯≤λn,以及这 n n n 个特征值所对应的特征向量 ( w 1 w 2 ⋯ w n ) \begin{pmatrix}w_1 & w_2 & \cdots & w_n \end{pmatrix} (w1w2⋯wn),那么矩阵 A \boldsymbol{A} A 可以用特征分解表示:$ \boldsymbol{A}=\boldsymbol{W}\boldsymbol{\Sigma}\boldsymbol{W}^{-1}$。特征向量可被正交单位化从而使 W \boldsymbol{W} W 为正交矩阵。
定理1:设 M \boldsymbol{M} M 为 n × n n\times n n×n 的矩阵,其特征值为 λ 1 , λ 2 , ⋯ , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ1,λ2,⋯,λn,特征向量为 V 1 , V 2 , ⋯ , V n \boldsymbol{V}_1,\boldsymbol{V}_2,\cdots,\boldsymbol{V}_n V1,V2,⋯,Vn,形成线性无关集合,以每个特征向量为列构成矩阵 A = [ V 1 V 2 ⋯ V n ] \boldsymbol{A}= \begin{bmatrix}\boldsymbol{V}_1 & \boldsymbol{V}_2 & \cdots & \boldsymbol{V}_n \end{bmatrix} A=[V1V2⋯Vn]。矩阵 A \boldsymbol{A} A 可以将矩阵 M \boldsymbol{M} M 对角化,乘积矩阵 A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A−1MA 的主对角元素是矩阵 M \boldsymbol{M} M 的特征值:
A − 1 M A = ( λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n ) \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A}=\begin{pmatrix}\lambda_1 & 0 & \cdots & 0\\ 0 & \lambda_2 &\cdots & 0\\ \vdots & \vdots & \ddots &\vdots \\ 0 & 0 & \cdots & \lambda_n \end{pmatrix} A−1MA=⎝ ⎛λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎠ ⎞
反之,若存在可逆矩阵 A \boldsymbol{A} A ,使 A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A−1MA 为对角矩阵,则矩阵 A \boldsymbol{A} A 的列等于矩阵 M \boldsymbol{M} M 的特征向量, A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A−1MA 的主对角元素为矩阵 M \boldsymbol{M} M 的特征值。
正交矩阵 P − 1 = P T \boldsymbol{P}^{-1}=\boldsymbol{P}^T P−1=PT ,行和列相互之间是正交的。
特征分解 (Eigendecomposition),又称谱分解 (Spectral decomposition),只有可对角化矩阵才可以作特征分解。一个矩阵可以拆分成一个正交阵和对角矩阵以及正交阵的逆的乘积。
f ( x ) = f ( x k ) + [ ∇ f ( x k ) ] T ( x − x k ) + 1 2 ( x − x k ) T H ( x k ) ( x − x k ) + o n f(\boldsymbol{x})=f(\boldsymbol{x}_k)+[\nabla f(\boldsymbol{x}_k)]^T(\boldsymbol{x}-\boldsymbol{x}_k)+\frac {1}{2}(\boldsymbol{x}-\boldsymbol{x}_k)^TH(\boldsymbol{x}_k)(\boldsymbol{x}-\boldsymbol{x}_k)+\boldsymbol{o}^n f(x)=f(xk)+[∇f(xk)]T(x−xk)+21(x−xk)TH(xk)(x−xk)+on
注: ∇ f ( x k ) \nabla f(\boldsymbol{x}_k) ∇f(xk) 是梯度, H ( x k ) H(\boldsymbol{x}_k) H(xk) 是 Hessian 矩阵, x T A x ⇒ a x 2 \boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x }\Rightarrow ax^2 xTAx⇒ax2 。
n × n n\times n n×n 方阵 A T A \boldsymbol{A}^T\boldsymbol{A} ATA 求 n n n 个特征向量: ( A T A ) v i = λ i v i (\boldsymbol{A}^T\boldsymbol{A})\boldsymbol{v}_i=\lambda_i\boldsymbol{v}_i (ATA)vi=λivi ,将所有特征向量张成 n × n n\times n n×n 的矩阵 V \boldsymbol{V} V ,其中每个特征向量叫 A \boldsymbol{A} A 的右奇异向量;
m × m m\times m m×m 方阵 A A T \boldsymbol{A}\boldsymbol{A}^T AAT 求 m m m 个特征向量: ( A A T ) u i = λ i u i (\boldsymbol{A}\boldsymbol{A}^T)\boldsymbol{u}_i=\lambda_i\boldsymbol{u}_i (AAT)ui=λiui ,将所有特征向量张成 m × m m\times m m×m 的矩阵 U \boldsymbol{U} U ,其中每个特征向量叫 A \boldsymbol{A} A 的左奇异向量;
A = U Σ V T ⇒ A V = U Σ V T V ⇒ A V = U Σ ⇒ A v i = σ i u i ⇒ σ i = A v i / u i \boldsymbol{A}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\Rightarrow \boldsymbol{A}\boldsymbol{V}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\boldsymbol{V}\Rightarrow \boldsymbol{A}\boldsymbol{V}=\boldsymbol{U}\boldsymbol{\Sigma}\Rightarrow \boldsymbol{A}\boldsymbol{v}_i=\boldsymbol{\sigma}_i\boldsymbol{u}_i\Rightarrow \boldsymbol{\sigma}_i=\boldsymbol{A}\boldsymbol{v}_i/\boldsymbol{u}_i A=UΣVT⇒AV=UΣVTV⇒AV=UΣ⇒Avi=σiui⇒σi=Avi/ui
A T A = V Σ 2 V T , A A T = U Σ 2 U T \boldsymbol{A}^T\boldsymbol{A}=\boldsymbol{V}\boldsymbol{\Sigma}^2\boldsymbol{V}^T,\boldsymbol{A}\boldsymbol{A}^T=\boldsymbol{U}\boldsymbol{\Sigma}^2\boldsymbol{U}^T ATA=VΣ2VT,AAT=UΣ2UT
A T A \boldsymbol{A}^T\boldsymbol{A} ATA 特征值与奇异值: σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi
奇异值矩阵中按照从大到小排列,且减少得特别快,即可以用最大的 k k k 个奇异值和对应的左右奇异向量来近似描述矩阵:
A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V n × k T \boldsymbol{A}_{m\times n}=\boldsymbol{U}_{m\times m}\boldsymbol{\Sigma}_{m\times n}\boldsymbol{V}_{n\times n}^T\approx \boldsymbol{U}_{m\times k}\boldsymbol{\Sigma}_{k\times k}\boldsymbol{V}_{n\times k}^T Am×n=Um×mΣm×nVn×nT≈Um×kΣk×kVn×kT
大的矩阵用三个小矩阵近似描述;
若 Σ \boldsymbol{\Sigma} Σ 中有 k k k 个非0值: σ 1 ≥ σ 2 ≥ ⋯ ≥ σ k > 0 \sigma_1\ge \sigma_2\ge\cdots\ge\sigma_k>0 σ1≥σ2≥⋯≥σk>0,则此时乘回去即是 A \boldsymbol{A} A;
import numpy as np
u, sigma, v = np.linalg.svd(arr)
new_arr = np.mat(u[:,0:2])*np.mat(np.diag(sigma[0:2]))*np.mat(v[0:2,:])
np.rint(new_arr)
PCA (principal components analysis) 主成分分析
总体方差: σ 2 = ∑ ( X − μ ) 2 N \sigma^2=\frac{\sum(X-\mu)^2}N σ2=N∑(X−μ)2,样本方差: s 2 = ∑ ( X − X ˉ ) n − 1 s^2=\frac{\sum (X-\bar{X})}{n-1} s2=n−1∑(X−Xˉ),
D ( X ) = E [ ( X − E ( X ) ) 2 ] = E ( X 2 ) − [ E ( X ) ] 2 D(X)=E[(X-E(X))^2]=E(X^2)-[E(X)]^2 D(X)=E[(X−E(X))2]=E(X2)−[E(X)]2,
D ( X ± Y ) = D ( X ) + D ( Y ) ± 2 C o v ( X , Y ) D(X\pm Y)=D(X)+D(Y)\pm2Cov(X,Y) D(X±Y)=D(X)+D(Y)±2Cov(X,Y), C o v ( X , Y ) = E { [ X − E ( X ) ] [ Y − E ( Y ) ] } Cov(X,Y)=E\{[X-E(X)][Y-E(Y)]\} Cov(X,Y)=E{[X−E(X)][Y−E(Y)]}
左奇异向量压缩行,右奇异向量压缩列,即取奇异值较大的左奇异向量或右奇异向量与原数据相乘。