赞
踩
假设A是n阶实对称矩阵,x是n维非零列向量,那么瑞利商表示如下:
R
(
A
,
x
)
=
x
T
A
x
x
T
x
假设我们有两个向量 x , a 1 x,a_1 x,a1,我们想求向量 a 1 a_1 a1在向量x方向上的投影向量 p 1 p_1 p1
我们的目标是要求实对称矩阵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
)
在深度学习中,我们希望快速的找到极值点,一般就对损失函数求一次偏导后得到所有的极值点,但是有一种鞍点,其偏导数也为0,但是它既不是极大值点,又不是极小值点,但它的一阶偏导为0,所以我们需要排除鞍点的干扰,。如图所示:
鸡头法,先求最小值,再求最大值
为了求得几何上的鞍点,我们需要先求最小值,在求最大值,数学表达式如下:
λ
=
max
y
min
x
,
z
x
T
S
x
凤尾法,先求最大值,再求最小值
λ
=
min
x
max
y
,
z
x
T
S
x
我们可以简单理解,鸡头不如凤尾,那么我们一般是使用鸡头法,这样求得的鞍点值更小。
λ
=
max
y
min
x
,
z
x
T
S
x
我们就把一个鞍点问题转换成对偶问题,通过瑞利商和拉格朗日乘子法结合求得鞍点。
假设我们二维平面上有 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
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"))
我们之前在P18快速奇异值那章节学过,范德蒙矩阵的缺点是其矩阵的逆的秩特别大,不好求,导致计算范德蒙矩阵的逆是巨复杂的。还有就是希尔伯特矩阵。
假设我们有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
)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。