线性代数|机器学习-P20鞍点和极值

发布于:2024-07-01 ⋅ 阅读:(15) ⋅ 点赞:(0)

1 . 瑞利商的思考

1.1 瑞利商的定义

假设A是n阶实对称矩阵,x是n维非零列向量,那么瑞利商表示如下:
R ( A , x ) = x T A x x T x \begin{equation} R(A,x)=\frac{x^TAx}{x^Tx} \end{equation} R(A,x)=xTxxTAx

  • 在看到上面式子时候,感觉很奇怪,为什么瑞利商就能够计算出鞍点和极值点的位置?我发现瑞利商的形式就像投影公式样。。。

1.2 投影向量

假设我们有两个向量 x , a 1 x,a_1 x,a1,我们想求向量 a 1 a_1 a1在向量x方向上的投影向量 p 1 p_1 p1

在这里插入图片描述

  • ∣ p 1 ∣ |p_1| p1
    ∣ p 1 ∣ = ∣ a 1 ∣ cos ⁡ ( θ ) , x T a 1 = ∣ a 1 ∣ cos ⁡ ( θ ) ⋅ ∣ x ∣ → ∣ p 1 ∣ = x T a 1 ∣ x ∣ \begin{equation} |p_1|=|a_1|\cos(\theta),x^Ta_1=|a_1|\cos(\theta)\cdot|x|\rightarrow |p_1|=\frac{x^Ta_1}{|x|} \end{equation} p1=a1cos(θ),xTa1=a1cos(θ)xp1=xxTa1
  • p 1 p_1 p1的单位向量为:
    e 1 = x ∣ x ∣ \begin{equation} e_1=\frac{x}{|x|} \end{equation} e1=xx
  • p p p向量为:
    p 1 = ∣ p 1 ∣ ⋅ e 1 = x T a ∣ x ∣ x ∣ x ∣ = x T a 1 x x T x \begin{equation} p_1=|p_1|\cdot e_1=\frac{x^Ta}{|x|}\frac{x}{|x|}=\frac{x^Ta_1x}{x^Tx} \end{equation} p1=p1e1=xxTaxx=xTxxTa1x
  • 小结:
    当我们对一个向量 a 1 a_1 a1进行瑞利商时,得到了居然是这个向量 a 1 a_1 a1在给定 x 1 x_1 x1向量上的投影向量,我们发现投影向量中只需要知道 x x x向量的方向,跟 x x x的大小无关,这点很重要,
  • 转换:
    -那么我们有一个矩阵实对称A,它可以由如下组成:
    A = [ a 1 a 2 ⋯ a n ] \begin{equation} A=\begin{bmatrix}a_1&a_2&\cdots&a_n\end{bmatrix} \end{equation} A=[a1a2an]
  • 那么瑞利商可以表示为:
    R ( A , x ) = x T [ a 1 a 2 ⋯ a n ] x x T x = [ x T a 1 x x T x x T a 2 x x T x ⋯ x T a n x x T x ] \begin{equation} R(A,x)=\frac{x^T\begin{bmatrix}a_1&a_2&\cdots&a_n\end{bmatrix}x}{x^Tx}=\begin{bmatrix}\frac{x^Ta_1x}{x^Tx}&\frac{x^Ta_2x}{x^Tx}&\cdots&\frac{x^Ta_nx}{x^Tx}\end{bmatrix} \end{equation} R(A,x)=xTxxT[a1a2an]x=[xTxxTa1xxTxxTa2xxTxxTanx]
  • 小结 : 瑞利商表示的是实对称矩阵A在给定x向量的投影向量组合。这里x的大小不影响投影向量的值。所以为了后续计算,我们可以定义 x T x = 1 x^Tx=1 xTx=1,这样瑞利商问题可以变成如下:
    R ( A , x ) = x T A x x T x → R ( A , x ) = x T A x , s t : x T x = 1 \begin{equation} R(A,x)=\frac{x^TAx}{x^Tx}\rightarrow R(A,x)=x^TAx,st:x^Tx=1 \end{equation} R(A,x)=xTxxTAxR(A,x)=xTAx,st:xTx=1
  • 那么瑞利商的极值问题就变成了一个二次型 x T A x x^TAx xTAx在约束条件下的 x T x = 1 x^Tx=1 xTx=1的最优化问题。一般我们解决最优化问题,会引入拉格朗日乘子法:

2. 拉格朗日乘子法

我们的目标是要求实对称矩阵S的二次型 x T S x x^TSx xTSx x T x = 1 x^Tx=1 xTx=1的约束情况下的最优化问题:这里为了方便,一般用S来表示实对称矩阵来代替上面的A,不影响后续理解和计算。纯粹为了方便。
L ( S , λ ) = x T S x − λ ( x T x − 1 ) \begin{equation} L(S,\lambda)=x^TSx-\lambda(x^Tx-1) \end{equation} L(S,λ)=xTSxλ(xTx1)

  • 求偏导可得:
    ∂ L ( S , λ ) ∂ x = 2 S x − λ ⋅ 2 x = 0 → S x = λ x \begin{equation} \frac{\partial L(S,\lambda)}{\partial x}=2Sx-\lambda \cdot 2x=0\rightarrow Sx=\lambda x \end{equation} xL(S,λ)=2Sxλ2x=0Sx=λx
  • 说明了瑞利商的偏导数为0的值一定在矩阵S的特征值 λ \lambda λ上和其对应的特征向量x上。
    ∂ L ( S , λ ) ∂ λ = − x T x + 1 = 0 → x T x = 1 \begin{equation} \frac{\partial L(S,\lambda)}{\partial \lambda}=-x^Tx+1=0\rightarrow x^Tx=1 \end{equation} λL(S,λ)=xTx+1=0xTx=1
    本来都是约束条件。
  • 那问题就简单了,瑞利商的极值问题的点分别为特征值 λ 1 , λ 2 , ⋯   , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ1,λ2,,λn,其对应的特征向量 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,,xn
  • 那么我们代入到瑞利商原来式子中,可得极值特解方程,注意不是一般式:
    R ( S , x ) = x T S x x T x = x T λ x x T x = λ \begin{equation} R(S,x)=\frac{x^TSx}{x^Tx}=\frac{x^T\lambda x}{x^Tx}=\lambda \end{equation} R(S,x)=xTxxTSx=xTxxTλx=λ
  • 由于 λ n ≤ λ n − 1 ≤ ⋯ ≤ λ 2 ≤ λ 1 \lambda_n\le \lambda_{n-1}\le\cdots\le\lambda_2\le\lambda_1 λnλn1λ2λ1
    arg ⁡ m i n R ( S , x n ) = λ n ; arg ⁡ m a x R ( S , x 1 ) = λ 1 ; \begin{equation} \arg\limits_{min}R(S,x_n)=\lambda_n;\arg\limits_{max}R(S,x_1)=\lambda_1; \end{equation} minargR(S,xn)=λn;maxargR(S,x1)=λ1;
  • 那么其他的特征值 λ 2 , λ 3 , ⋯   , λ n − 1 \lambda_2,\lambda_3,\cdots,\lambda_{n-1} λ2,λ3,,λn1对应的就是鞍点!!!这样我们就可以通过瑞利商来快速的找到鞍点。

3. 鞍点

在深度学习中,我们希望快速的找到极值点,一般就对损失函数求一次偏导后得到所有的极值点,但是有一种鞍点,其偏导数也为0,但是它既不是极大值点,又不是极小值点,但它的一阶偏导为0,所以我们需要排除鞍点的干扰,。如图所示:
在这里插入图片描述

  • 鸡头法,先求最小值,再求最大值
    为了求得几何上的鞍点,我们需要先求最小值,在求最大值,数学表达式如下:
    λ = max ⁡ y min ⁡ x , z x T S x \begin{equation} \lambda=\max\limits_{y}\min\limits_{x,z}x^TSx \end{equation} λ=ymaxx,zminxTSx
    在这里插入图片描述

  • 凤尾法,先求最大值,再求最小值
    λ = min ⁡ x max ⁡ y , z x T S x \begin{equation} \lambda=\min\limits_{x}\max\limits_{y,z}x^TSx \end{equation} λ=xminy,zmaxxTSx
    在这里插入图片描述

  • 我们可以简单理解,鸡头不如凤尾,那么我们一般是使用鸡头法,这样求得的鞍点值更小。
    λ = max ⁡ y min ⁡ x , z x T S x \begin{equation} \lambda=\max\limits_{y}\min\limits_{x,z}x^TSx \end{equation} λ=ymaxx,zminxTSx

  • 我们就把一个鞍点问题转换成对偶问题,通过瑞利商和拉格朗日乘子法结合求得鞍点。

4. 线性拟合

4.1 范德蒙矩阵线性拟合

假设我们二维平面上有 6 个点,根据多项式拟合条件来说,6个点可以用一个五次方函数进行拟合。比如说我们平面上如果需要确定一条直线 ( y = k x + b ) (y=kx+b) (y=kx+b),一般需要两个点,确定一个抛物线 ( y = a x 2 + b x + c ) (y=ax^2+bx+c) (y=ax2+bx+c),一般需要三个点,所以6个点可以用
y = c 5 x 5 + c 4 x 4 + c 3 x 3 + c 2 x 2 + c 1 x + c 0 \begin{equation} y=c_5x^5+c_4x^4+c_3x^3+c_2x^2+c_1x+c_0 \end{equation} y=c5x5+c4x4+c3x3+c2x2+c1x+c0

  • 这里我们可以用范德蒙矩阵进行表示:
    A C = b \begin{equation} AC=b \end{equation} AC=b
  • A为范德蒙矩阵,C为相关系数。
    在这里插入图片描述

4.2 python 代码

  • jupyter 下运行
import numpy as np
import matplotlib.pyplot as plt

# 生成6个随机点
np.random.seed(42)  # 固定随机种子以获得可重复的结果
x = np.random.rand(6)
y = np.random.rand(6)

# 构造范德蒙矩阵
V = np.vander(x, increasing=True)

# 求解系数向量
a = np.linalg.solve(V, y)

# 生成用于绘制拟合曲线的x值
x_fit = np.linspace(0, 1, 100)
y_fit = np.polyval(a[::-1], x_fit)

# 绘制原始点和拟合曲线
plt.scatter(x, y, color='red', label='Original Points')
plt.plot(x_fit, y_fit, color='blue', label='Fitted Polynomial')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Vandermonde Matrix Polynomial Fitting')
plt.legend()
plt.grid(True)
plt.show()

# 输出结果
print("随机生成的点:")
for xi, yi in zip(x, y):
    print(f"({xi:.4f}, {yi:.4f})")

print("\n范德蒙矩阵:")
print(V)

print("\n多项式系数:")
print(a)

# 打印多项式表达式
poly_str = "P(x) = " + " + ".join([f"{a[i]:.4f}x^{i}" for i in range(len(a))])
print("\n多项式:")
print(poly_str.replace("x^0", "").replace(" + -", " - ").replace("x^1", "x"))
  • 结果:
    在这里插入图片描述
    在这里插入图片描述

4.3 范德蒙矩阵缺点

我们之前在P18快速奇异值那章节学过,范德蒙矩阵的缺点是其矩阵的逆的秩特别大,不好求,导致计算范德蒙矩阵的逆是巨复杂的。还有就是希尔伯特矩阵。

5. 均值和方差

5.1 样本均值和方差

假设我们有N个样本 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,,xn,那么样本 X ˉ \bar{X} Xˉ均值为
X ˉ = 1 N ( x 1 + x 2 + ⋯ + x n ) \begin{equation} \bar{X}=\frac{1}{N}(x_1+x_2+\cdots+x_n) \end{equation} Xˉ=N1(x1+x2++xn)

  • 那么样本方差 S 2 S^2 S2由公式可得:
    S 2 = 1 n − 1 ∑ i = 1 n ( x i − X ˉ ) \begin{equation} S^2=\frac{1}{n-1}\sum_{i=1}^n(x_i-\bar{X}) \end{equation} S2=n11i=1n(xiXˉ)

5.2 总体期望 μ \mu μ,总体方差 σ 2 \sigma^2 σ2

  • 总体期望
    假设有无穷个样本 x i x_i xi,每个样本对应的概率为 p i p_i pi,那么可得:
    ∑ i = 1 ∞ p i = 1 , μ = E ( x ) = ∑ i = 1 ∞ p i x i \begin{equation} \sum_{i=1}^{\infty}p_i=1,\mu=E(x)=\sum_{i=1}^{\infty}p_ix_i \end{equation} i=1pi=1,μ=E(x)=i=1pixi
  • 总体方差
    D ( X ) = E ( X 2 ) − [ E ( X ) ] 2 \begin{equation} D(X)=E(X^2)-[E(X)]^2 \end{equation} D(X)=E(X2)[E(X)]2
    σ 2 = ∑ i = 1 ∞ p i ( x i − μ ) 2 \begin{equation} \sigma^2=\sum_{i=1}^{\infty}p_i(x_i-\mu)^2 \end{equation} σ2=i=1pi(xiμ)2