对人工智能数学课高等数学线性微积分数学教程的学习笔记。主要用于快速回忆已学的数学知识点,不适合基础学习。博客园中同步更新。
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 )[a11a12⋯a1na21a22⋯a2n⋯⋯⋯⋯an1an2⋯ann]
矩阵与向量的乘法相当于对向量做了一个线性变换,变换后不一定和原来在一条直线上。
设 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
)
(w1w2⋯wn)
定理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}= [V1V2⋯Vn]
A
−
1
M
A
=
(
λ
1
0
⋯
0
0
λ
2
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
λ
n
)
\boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A}=(λ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)]}
左奇异向量压缩行,右奇异向量压缩列,即取奇异值较大的左奇异向量或右奇异向量与原数据相乘。