前言
对人工智能数学课高等数学线性微积分数学教程的学习笔记。主要用于快速回忆已学的数学知识点,不适合基础学习。博客园中同步更新。
文章目录
- 人工智能数学课高等数学线性微积分数学教程笔记(目录)
- 人工智能数学课高等数学线性微积分数学教程笔记(1. 数学内容概述)
- 人工智能数学课高等数学线性微积分数学教程笔记(2. 一元函数微分学)
- 人工智能数学课高等数学线性微积分数学教程笔记(3. 线性代数基础)
- 人工智能数学课高等数学线性微积分数学教程笔记(4. 多元函数的微分学)
- 人工智能数学课高等数学线性微积分数学教程笔记(5. 线性代数高级)
- 人工智能数学课高等数学线性微积分数学教程笔记(6. 概率论)
- 人工智能数学课高等数学线性微积分数学教程笔记(7. 最优化)
笔记目录
5. 线性代数高级
- 二次型
- 纯二次项构成的函数,把含有 n n n 个变量的二次齐次函数称为二次型:
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 T A x = ∑ i = 1 n ∑ j = 1 n a i j x i x j \boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x}=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}a_{ij}x_ix_j xTAx=i=1∑nj=1∑naijxixj, A \boldsymbol{A} A 即二次型矩阵。
( 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⎠ ⎞
- 机器学习中常见形式,比如是一次型: f ( x ; w ) = w T x + b f(\boldsymbol{x};\boldsymbol{w})=\boldsymbol{w}^T\boldsymbol{x}+b f(x;w)=wTx+b,或者二次型: f ( x ; w ) = x T w x + b f(\boldsymbol{x};\boldsymbol{w})=\boldsymbol{x}^T\boldsymbol{w}\boldsymbol{x}+b f(x;w)=xTwx+b。
- 回看 Hessian 矩阵:对于二次型函数,
f
(
x
)
=
x
T
A
x
f(\boldsymbol{x})=\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x}
f(x)=xTAx:
- f ( x ) > 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})>0,x\ne0,x\in \mathbb{R} f(x)>0,x=0,x∈R,则 f f f 为正定二次型, A A A 为正定矩阵;
- f ( x ) ≥ 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})\ge0,x\ne0,x\in \mathbb{R} f(x)≥0,x=0,x∈R,则 f f f 为半正定二次型, A A A 为半正定矩阵;
- f ( x ) < 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})<0,x\ne0,x\in \mathbb{R} f(x)<0,x=0,x∈R,则 f f f 为负定二次型, A A A 为负定矩阵;
- f ( x ) ≤ 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})\le0,x\ne0,x\in \mathbb{R} f(x)≤0,x=0,x∈R,则 f f f 为半负定二次型, A A A 为半负定矩阵;
- 以上皆不是,不定。
- 特征值和特征向量
-
矩阵与向量的乘法相当于对向量做了一个线性变换,变换后不一定和原来在一条直线上。
-
设 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 。
- 矩阵和向量的求导公式
- ∇ ( w T x ) = w \nabla (\boldsymbol{w}^T\boldsymbol{x})=\boldsymbol{w} ∇(wTx)=w
- ∇ ( x T A x ) = ( A + A T ) x \nabla (\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x})= (\boldsymbol{A}+\boldsymbol{A}^T)\boldsymbol{x} ∇(xTAx)=(A+AT)x
- ∇ 2 ( x T A x ) = A + A T \nabla ^2 (\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x})= \boldsymbol{A}+\boldsymbol{A}^T ∇2(xTAx)=A+AT 二阶导即再对 x \boldsymbol{x} x 求导。
- 奇异值分解 (SVD)
- 可以应用于任意形状的矩阵,区别于谱分解;
- A = U Σ V T \boldsymbol{A}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T A=UΣVT,其中 A \boldsymbol{A} A 是 m × n m\times n m×n 的矩阵, U \boldsymbol{U} U, V \boldsymbol{V} V 都是正交矩阵, Σ \boldsymbol{\Sigma} Σ 是对角阵 m × n m\times n m×n ;
- U \boldsymbol{U} U 是 A A T \boldsymbol{A}\boldsymbol{A}^T AAT 正交化特征向量构成的 m × m m\times m m×m 矩阵, V \boldsymbol{V} V 是 A T A \boldsymbol{A}^T\boldsymbol{A} ATA 正交化特征向量构成的 n × n n\times n n×n 矩阵;
- Σ \boldsymbol{\Sigma} Σ 是 m × n m\times n m×n 的矩阵,除了主对角线上的元素 (奇异值) 以外全部为0, U \boldsymbol{U} U, V \boldsymbol{V} V 都是酉矩阵,即 U T U = I \boldsymbol{U}^T\boldsymbol{U}=\boldsymbol{I} UTU=I, V T V = I \boldsymbol{V}^T\boldsymbol{V}=\boldsymbol{I} VTV=I
- 求解奇异值分解
-
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;
- SVD 的应用
- 数据压缩
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 降维
-
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)]}
-
左奇异向量压缩行,右奇异向量压缩列,即取奇异值较大的左奇异向量或右奇异向量与原数据相乘。
- 协调过滤
- 用户推荐
- 用 SVD 分解把样本映射到低维空间
- 矩阵求逆
- 奇异值求倒数: A = U Σ V T ⇒ A − 1 = V Σ − 1 U T \boldsymbol{A}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\Rightarrow \boldsymbol{A}^{-1}=\boldsymbol{V}\boldsymbol{\Sigma}^{-1}\boldsymbol{U}^T A=UΣVT⇒A−1=VΣ−1UT