人工智能数学课高等数学线性微积分数学教程笔记(5. 线性代数高级)

前言

对人工智能数学课高等数学线性微积分数学教程的学习笔记。主要用于快速回忆已学的数学知识点,不适合基础学习。博客园中同步更新。

文章目录

  1. 人工智能数学课高等数学线性微积分数学教程笔记(目录)
  2. 人工智能数学课高等数学线性微积分数学教程笔记(1. 数学内容概述)
  3. 人工智能数学课高等数学线性微积分数学教程笔记(2. 一元函数微分学)
  4. 人工智能数学课高等数学线性微积分数学教程笔记(3. 线性代数基础)
  5. 人工智能数学课高等数学线性微积分数学教程笔记(4. 多元函数的微分学)
  6. 人工智能数学课高等数学线性微积分数学教程笔记(5. 线性代数高级)
  7. 人工智能数学课高等数学线性微积分数学教程笔记(6. 概率论)
  8. 人工智能数学课高等数学线性微积分数学教程笔记(7. 最优化)

笔记目录

  • 前言
  • 文章目录
  • 5. 线性代数高级
    • - 二次型
    • - 特征值和特征向量
    • - 特征值分解
    • - 多元函数的泰勒展开
    • - 矩阵和向量的求导公式
    • - 奇异值分解 (SVD)
    • - 求解奇异值分解
    • - 奇异值分解的性质
    • - SVD 的应用
      • - 数据压缩
      • - PCA 降维
      • - 协调过滤
      • - 矩阵求逆


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++2an1,nxn1xn

  • 它其实是向量和矩阵相乘的结果: 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=1nj=1naijxixj 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) a11a21an1a12a22an2a1na2nann x1xn

  • 机器学习中常见形式,比如是一次型: 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,xR,则 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,xR,则 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,xR,则 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,xR,则 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 λIA=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 λIA=λn+α1λn1+α2λn2++αn1λ+α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=1naii=λ1+λ2++λn=i=1nλi ∏ i = 1 n λ i = ∣ A ∣ \prod\limits_{i=1}^{n}\lambda _i=\left | \boldsymbol{A} \right | i=1nλ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} (w1w2wn),那么矩阵 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=[V1V2Vn]。矩阵 A \boldsymbol{A} A 可以将矩阵 M \boldsymbol{M} M 对角化,乘积矩阵 A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A1MA 的主对角元素是矩阵 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} A1MA= λ1000λ2000λn
    反之,若存在可逆矩阵 A \boldsymbol{A} A ,使 A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A1MA 为对角矩阵,则矩阵 A \boldsymbol{A} A 的列等于矩阵 M \boldsymbol{M} M 的特征向量, A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A1MA 的主对角元素为矩阵 M \boldsymbol{M} M 的特征值。

  • 正交矩阵 P − 1 = P T \boldsymbol{P}^{-1}=\boldsymbol{P}^T P1=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(xxk)+21(xxk)TH(xk)(xxk)+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 xTAxax2

- 矩阵和向量的求导公式

  • ∇ ( 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ΣVTAV=UΣVTVAV=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×nTUm×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=n1(XXˉ)

    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[(XE(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{[XE(X)][YE(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ΣVTA1=VΣ1UT

你可能感兴趣的:(数学,线性代数,人工智能)