28 KiB
数学基础
求解一阶非齐线性微分方程
考虑方程
y' + y = x
第一步:求齐次方程的通解
先求对应的齐次方程
y' + y = 0
其解为
y_h = Ce^{-x}
其中 C
为任意常数。
第二步:设特解形式
利用常数变易法,令特解取形式
y_p = u(x) e^{-x}
其中 u(x)
为待定函数。
第三步:求导并代入原方程
计算 y_p
的导数:
y_p' = u'(x)e^{-x} - u(x)e^{-x}
将 y_p
和 y_p'
代入原方程 $y' + y = x$:
\bigl[u'(x)e^{-x} - u(x)e^{-x}\bigr] + u(x)e^{-x} = u'(x)e^{-x} = x
因此有:
u'(x) = x e^{x}
第四步:求 $u(x)$
对 u'(x)
积分:
u(x) = \int x e^{x} dx
计算积分,可以用分部积分法:令
\begin{cases}
u = x, \quad dv = e^x dx,\\[1mm]
du = dx, \quad v = e^x,
\end{cases}
得:
\int x e^x dx = x e^x - \int e^x dx = x e^x - e^x + C_1 = e^x (x-1) + C_1
注意这里求得的常数 $C_1$可以忽略,因为它会与齐次解合并。故我们取
u(x) = e^x (x-1)
第五步:构造特解并给出通解
将 u(x)
带回特解形式:
y_p = u(x)e^{-x} = e^x (x-1) e^{-x} = x-1
因此,原方程的通解为齐次解与特解的和:
y = y_h + y_p = Ce^{-x} + (x-1)
梯度下降
我们可以用一个简单的线性层作为例子,展示如何利用向量和矩阵计算梯度并更新参数。假设有一个全连接层,其计算公式为
y = W x + b
其中
x \in \mathbb{R}^2
是输入向量W \in \mathbb{R}^{2\times2}
是权重矩阵b \in \mathbb{R}^2
是偏置向量y \in \mathbb{R}^2
是输出向量
我们使用均方误差(MSE)作为损失函数,定义为
L = \frac{1}{2} \|y - y_{\text{true}}\|^2 = \frac{1}{2} \sum_{i=1}^{2}(y_i - y_{\text{true}, i})^2
设定具体数值
- 输入向量:
x = \begin{pmatrix} 1 \\ 2 \end{pmatrix}
- 权重矩阵:
W = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}
- 偏置向量:
b = \begin{pmatrix} 1 \\ 1 \end{pmatrix}
- 真实输出:
y_{\text{true}} = \begin{pmatrix} 7 \\ 13 \end{pmatrix}
步骤 1:前向传播
计算输出 $y$:
y = W x + b = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix} 1 \\ 2 \end{pmatrix} + \begin{pmatrix} 1 \\ 1 \end{pmatrix}
首先计算矩阵乘法:
W x = \begin{pmatrix} 1\cdot1 + 2\cdot2 \\ 3\cdot1 + 4\cdot2 \end{pmatrix} = \begin{pmatrix} 1+4 \\ 3+8 \end{pmatrix} = \begin{pmatrix} 5 \\ 11 \end{pmatrix}
再加上偏置 b
得到
y = \begin{pmatrix} 5+1 \\ 11+1 \end{pmatrix} = \begin{pmatrix} 6 \\ 12 \end{pmatrix}
计算损失 $L$:
L = \frac{1}{2} \left[(6-7)^2 + (12-13)^2\right] = \frac{1}{2} \left[(-1)^2 + (-1)^2\right] = \frac{1}{2} (1+1) = 1
步骤 2:反向传播,计算梯度
首先,我们定义误差向量为
e = y - y_{\text{true}} = \begin{pmatrix} 6-7 \\ 12-13 \end{pmatrix} = \begin{pmatrix} -1 \\ -1 \end{pmatrix}
由于损失函数
L = \frac{1}{2}\|y - y_{\text{true}}\|^2
对 y
的偏导数为
\frac{\partial L}{\partial y} = y - y_{\text{true}} = e = \begin{pmatrix} -1 \\ -1 \end{pmatrix}
接下来,我们利用链式法则将梯度传递到 W
和 $b$。
1. 梯度对 W
的求导
对于输出层有
y = W x + b
每个元素 y_i
对 W_{ij}
的偏导数为
\frac{\partial y_i}{\partial W_{ij}} = x_j
利用链式法则,损失对 W_{ij}
的梯度为
\frac{\partial L}{\partial W_{ij}} = \frac{\partial L}{\partial y_i} \cdot \frac{\partial y_i}{\partial W_{ij}} = e_i \, x_j
用矩阵形式写就是:
\frac{\partial L}{\partial W} = e \cdot x^\top
将数值代入:
e = \begin{pmatrix} -1 \\ -1 \end{pmatrix}, \quad x^\top = \begin{pmatrix} 1 & 2 \end{pmatrix}
所以,
\frac{\partial L}{\partial W} = \begin{pmatrix} -1 \\ -1 \end{pmatrix} \begin{pmatrix} 1 & 2 \end{pmatrix} = \begin{pmatrix} -1\cdot1 & -1\cdot2 \\ -1\cdot1 & -1\cdot2 \end{pmatrix} = \begin{pmatrix} -1 & -2 \\ -1 & -2 \end{pmatrix}
2.梯度对 b
的求导
由于 $y = W x + b$,且对 b
的偏导数为 1,
\frac{\partial L}{\partial b} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial b} = e \cdot 1 = e = \begin{pmatrix} -1 \\ -1 \end{pmatrix}
步骤 3:使用梯度下降更新参数
设定学习率 $\eta = 0.1$,更新公式为
W_{\text{new}} = W - \eta \frac{\partial L}{\partial W}, \quad b_{\text{new}} = b - \eta \frac{\partial L}{\partial b}
更新 $W$
W_{\text{new}} = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} - 0.1 \cdot \begin{pmatrix} -1 & -2 \\ -1 & -2 \end{pmatrix} = \begin{pmatrix} 1 + 0.1 & 2 + 0.2 \\ 3 + 0.1 & 4 + 0.2 \end{pmatrix} = \begin{pmatrix} 1.1 & 2.2 \\ 3.1 & 4.2 \end{pmatrix}
更新 $b$
b_{\text{new}} = \begin{pmatrix} 1 \\ 1 \end{pmatrix} - 0.1 \cdot \begin{pmatrix} -1 \\ -1 \end{pmatrix} = \begin{pmatrix} 1 + 0.1 \\ 1 + 0.1 \end{pmatrix} = \begin{pmatrix} 1.1 \\ 1.1 \end{pmatrix}
总结
在这个例子中,我们展示了如何用向量和矩阵的形式计算一个简单全连接层的前向传播、损失以及对参数 W
和 b
的梯度。关键步骤如下:
- 前向传播:计算
y = W x + b
得到输出,再计算损失L = \frac{1}{2}\|y - y_{\text{true}}\|^2
- 反向传播:
- 计算误差向量
e = y - y_{\text{true}}
- 利用链式法则得出梯度:
\frac{\partial L}{\partial W} = e \cdot x^\top
\frac{\partial L}{\partial b} = e
- 计算误差向量
- 参数更新:通过梯度下降将参数沿负梯度方向调整
这样,我们就得到了更新后的参数 W_{\text{new}}
和 $b_{\text{new}}$。这种向量或矩阵形式的梯度计算方法在真实神经网络中是普遍应用的,能够有效处理高维数据和大规模参数。
范数
L2范数定义:
对于一个向量 $\mathbf{w} = [w_1, w_2, \dots, w_n]$,L2 范数定义为
\|\mathbf{w}\|_2 = \sqrt{w_1^2 + w_2^2 + \dots + w_n^2}
假设一个权重向量为 $\mathbf{w} = [3, -4]$,则
\|\mathbf{w}\|_2 = \sqrt{3^2 + (-4)^2} = \sqrt{9+16} = \sqrt{25} = 5.
用途:
- 正则化(L2正则化/权重衰减):在训练过程中,加入 L2 正则项有助于防止模型过拟合。正则化项通常是权重的 L2 范数的平方,例如
\lambda \|\mathbf{w}\|_2^2
其中 \lambda
是正则化系数。
- 梯度裁剪:在 RNN 等深度网络中,通过计算梯度的 L2 范数来判断是否需要对梯度进行裁剪,从而防止梯度爆炸。
具体例子:
假设我们有一个简单的线性回归模型,损失函数为均方误差(MSE):
L(\mathbf{w}) = \frac{1}{2N} \sum_{i=1}^N (y_i - \mathbf{w}^T \mathbf{x}_i)^2
其中,N
是样本数量,y_i
是第 i
个样本的真实值,\mathbf{x}_i
是第 i
个样本的特征向量,\mathbf{w}
是权重向量。
加入 L2 正则项后,新的损失函数为:
L_{\text{reg}}(\mathbf{w}) = \frac{1}{2N} \sum_{i=1}^N (y_i - \mathbf{w}^T \mathbf{x}_i)^2 + \lambda \|\mathbf{w}\|_2^2
在训练过程中,优化算法会同时最小化原始损失函数和正则项,从而在拟合训练数据的同时,避免权重值过大。
梯度更新
在梯度下降算法中,权重 \mathbf{w}
的更新公式为:
\mathbf{w} \leftarrow \mathbf{w} - \eta \nabla L_{\text{reg}}(\mathbf{w})
其中,\eta
是学习率,\nabla L_{\text{reg}}(\mathbf{w})
是损失函数关于 \mathbf{w}
的梯度。
对于加入 L2 正则项的损失函数,梯度为:
\nabla L_{\text{reg}}(\mathbf{w}) = \nabla L(\mathbf{w}) + 2\lambda \mathbf{w}
因此,权重更新公式变为:
\mathbf{w} \leftarrow \mathbf{w} - \eta (\nabla L(\mathbf{w}) + 2\lambda \mathbf{w})
通过加入 L2 正则项,模型在训练过程中不仅会最小化原始损失函数,还会尽量减小权重的大小,从而避免过拟合。正则化系数 \lambda
控制着正则化项的强度,较大的 \lambda
会导致权重更小,模型更简单,但可能会欠拟合;较小的 \lambda
则可能无法有效防止过拟合。因此,选择合适的 \lambda
是使用 L2 正则化的关键。
Frobenius 范数
对于一个矩阵 $A \in \mathbb{R}^{m \times n}$,其 Frobenius 范数定义为
\|A\|_F = \sqrt{\sum_{i=1}^{m}\sum_{j=1}^{n} a_{ij}^2}
这个定义与向量 L2 范数类似,只不过是对矩阵中所有元素取平方和后再开平方。
如果矩阵 A
的奇异值为 $\sigma_1, \sigma_2, \ldots, \sigma_n$,则:
\|A\|_F = \sqrt{\sum_{i=1}^n \sigma_i^2}
这使得 Frobenius 范数在低秩近似和矩阵分解(如 SVD)中非常有用。
迹和 Frobenius 范数的关系:
\|A\|_F^2 = \text{tr}(A^* A)
这表明 Frobenius 范数的平方就是 A^* A
所有特征值之和。而 A^* A
的特征值开方就是A的奇异值。
权重为向量的情况
当模型的输出是标量时(如单变量线性回归或二分类逻辑回归):
-
输入特征:$\mathbf{x}_i \in \mathbb{R}^d$(向量)
-
权重形状:$\mathbf{w} \in \mathbb{R}^d$(向量)
-
预测公式:
\hat{y}_i = \mathbf{w}^\top \mathbf{x}_i
其中 \hat{y}_i
是标量输出。
权重为矩阵的情况
当模型的输出是向量时(如多变量回归、神经网络全连接层):
-
输入特征:$\mathbf{x}_i \in \mathbb{R}^d$(向量)
-
输出维度:$\hat{\mathbf{y}}_i \in \mathbb{R}^m$(向量)
-
权重形状:$W \in \mathbb{R}^{m \times d}$(矩阵)
-
预测公式:
\hat{\mathbf{y}}_i = W \mathbf{x}_i + \mathbf{b}
其中 \mathbf{b} \in \mathbb{R}^m
是偏置向量。
方差等
标准差
\sigma =\sqrt{\frac{\textstyle\sum_{i=1}^{n}{({x}_{i}-\overline{x})}^{2}}{n}}
方差
Var(X)=\mathrm{E}[{(X-\mu) }^{2}]= {\sigma}^{2}
性质
Var(X)=\mathrm{E}({X}^{2})-{[\mathrm{E}(X)]}^{2} \\
Var(kX)={k}^{2}Var(X)
若X和Y是独立的随机变量
Var(X+Y)=Var(X)+Var(Y)
协方差
\sum {p}_{i}({x}_{i}-{\mu }_{\mathrm{X}})({\mathcal{y}}_{i}-{\mu }_{Y})
\\ Cov\begin{pmatrix}X,Y
\end{pmatrix}=\mathrm{E}\begin{bmatrix}\begin{pmatrix}\mathrm{X}-{\mu }_{\mathrm{X}}
\end{pmatrix}
\begin{pmatrix}Y-{\mu }_{Y}
\end{pmatrix}
\end{bmatrix}\\
Cov(X,Y)=E(XY)-E(X)E(Y)
性质:
X Y表示随机变量
协方差矩阵
协方差矩阵计算了不同维度之间的协方差,它是一个对称矩阵
性质:
A为n阶矩阵,X为n维随机向量
\text{cov}(AX, AX) = A\text{cov}(X, X)A^T
推导:
高斯分布
高斯分布的概率密度函数:
\mathcal{f}(\mathcal{x})=\frac{1}{\sqrt{2\pi }\sigma }\exp \begin{pmatrix}-\frac{{(x-u)}^{2}}{2{\sigma }^{2}}
\end{pmatrix}
- x 在 μ-σ 和 μ+σ 之间的样本数量占到整个样本数量的 68.2%;
- x 在 μ-2σ 和 μ+2σ 之间的样本数量占到整个样本数量的 95.4%;
- x 在 μ-3σ 和 μ+3σ 之间的样本数量占到整个样本数量的99.6%;
数据融合
当前最优值=当前的先验估计值和观测值进行融合
我们通常会尝试最小化方差,以尽可能减小状态估计的不确定性,从而获得更可靠和准确的估计结果
拉普拉斯变换
拉普拉斯变换的定义
对于一个给定的时间域函数 ( f(t) ),其拉普拉斯变换 F(s)
定义为:
F(s) = \int_{0}^{\infty} e^{-st}f(t) \, dt
这里的 s
是一个复数,通常写作 $ s = \sigma + j\omega $,其中 \sigma
和 \omega
分别是实部和虚部。
拉普拉斯变换的作用
- 简化微分方程:拉普拉斯变换可以将微分方程转换为代数方程,从而简化求解过程。
- 系统分析:在控制理论中,拉普拉斯变换用来分析系统的稳定性和频率响应。
- 信号处理:在信号处理中,拉普拉斯变换帮助分析信号的频谱和系统的滤波特性。
例子:单一指数函数的拉普拉斯变换
假设有一个函数 $f(t) = e^{-at} $(其中 a
是一个正常数),我们想计算它的拉普拉斯变换。根据拉普拉斯变换的定义:
F(s) = \int_{0}^{\infty} e^{-st}e^{-at} \, dt = \int_{0}^{\infty} e^{-(s+a)t} \, dt
这个积分可以解为:
F(s) =
\begin{bmatrix}
\frac{e^{-(s+a)t}}{-(s+a)}
\end{bmatrix}_{0}^{\infty} = \frac{1}{s+a}
因为当 t \to \infty
时,e^{-(s+a)t}
趋向于 0,前提是 $ Re(s+a) > 0 $(即 s
的实部加 a
必须是正的)。
幂迭代
原理:每一次迭代都相当于将当前向量乘以 A
后再归一化。由于矩阵 A
作用下,初始向量中 v_1
分量对应的系数会按 \lambda_1
的 k
次幂增长,而其他特征向量分量增长较慢(因为它们对应的特征值模较小),故随着迭代次数的增加,向量逐渐趋向于 v_1
的方向。
拉普拉斯矩阵
拉普拉斯矩阵及其性质
对于一个无向图 (G = (V, E)),其拉普拉斯矩阵 L
通常定义为
L = D - A,
其中:
D
是度矩阵,一个对角矩阵,其对角元$d_i$
为顶点i
的度数;A
是邻接矩阵,反映了图中各顶点之间的连接关系。
示例: 考虑一个简单的无向图,该图包含三个顶点:1, 2, 3,以及两条边: - 边 (1, 2) - 边 (2, 3)
邻接矩阵 (A)
A = \begin{pmatrix}
0 & 1 & 0 \\
1 & 0 & 1 \\
0 & 1 & 0
\end{pmatrix}.
度矩阵 (D)
D = \begin{pmatrix}
1 & 0 & 0 \\
0 & 2 & 0 \\
0 & 0 & 1
\end{pmatrix}.
拉普拉斯矩阵 (L)
将上面两个矩阵相减得到
L = \begin{pmatrix}
1 & 0 & 0 \\
0 & 2 & 0 \\
0 & 0 & 1
\end{pmatrix}
-
\begin{pmatrix}
0 & 1 & 0 \\
1 & 0 & 1 \\
0 & 1 & 0
\end{pmatrix}
=
\begin{pmatrix}
1 & -1 & 0 \\
-1 & 2 & -1 \\
0 & -1 & 1
\end{pmatrix}.
令常数向量
\mathbf{1} = \begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix},
则有
L\mathbf{1} = \begin{pmatrix}
1 \cdot 1 + (-1) \cdot 1 + 0 \cdot 1 \\
-1 \cdot 1 + 2 \cdot 1 + (-1) \cdot 1 \\
0 \cdot 1 + (-1) \cdot 1 + 1 \cdot 1
\end{pmatrix}
=
\begin{pmatrix}
1 - 1 + 0 \\
-1 + 2 - 1 \\
0 - 1 + 1
\end{pmatrix}
=
\begin{pmatrix}
0 \\
0 \\
0
\end{pmatrix}.
这说明常数向量 $\mathbf{1}$
是 L
的零空间中的一个向量,即零特征值对应的特征向量。
主要性质
- 对称性
由于对于无向图,邻接矩阵 A
是对称的,而度矩阵 D
本身也是对称的(因为它是对角矩阵),所以拉普拉斯矩阵 L
也是对称矩阵。
- 正半定性
对于任意实向量 (x),都有:
x^T L x = \sum_{(i,j) \in E} (x_i - x_j)^2 \ge 0.
这说明 L
是正半定矩阵,即其所有特征值均非负。
- 零特征值与连通分量
- 对于任意图,都有
L \mathbf{1} = \mathbf{0},
其中 $\mathbf{1} = (1, 1, \ldots, 1)^T$,因此 0
一定是 L
的一个特征值。
因为拉普拉斯矩阵的定义为 $L = D - A$,其中每一行的元素之和为零,所以当向量所有分量都相等时,每一行的加权求和自然等于零。
- 更进一步,零特征值的重数等于图的连通分量(独立的子图)个数。也就是说,如果图
G
有k
个连通分量,则L
的零特征值重数为 (k)。
简单证明思路
考虑图中每个连通分量,对于某个连通分量内的所有顶点,可以构造一个特征向量,使得在该连通分量中所有分量取相同常数,而在其他部分取零。由于该连通分量内部的任意两个顶点都是连通的,该特征向量满足 $Lx = 0$。这样,对于每个连通分量都可以构造出一个线性无关的零特征值特征向量,从而零特征值的重数至少为连通分量的数量;进一步证明可以证明重数不会超过这个数量。
- 谱分解及应用
由于 L
是对称正半定矩阵,其可以进行谱分解:
L = U \Lambda U^T,
其中U
是正交矩阵,\Lambda
是包含 L
所有非负特征值的对角矩阵。
这一性质使得拉普拉斯矩阵在谱聚类、图分割等应用中非常有用。
总结
拉普拉斯矩阵 $L = D - A$是描述图结构的重要工具,具有如下主要性质:
- 对称性:$L$是对称矩阵;
- 正半定性:任意向量
x
有 $x^T L x \ge 0$; - 零特征值:
L
总有零特征值,且其重数与图的连通分量个数相等; - 谱分解:
L
可进行正交谱分解,广泛应用于图的聚类与分割等领域。
这些性质不仅在理论上非常重要,而且在图论和数据分析等实际问题中有广泛的应用。
平均拉普拉斯矩阵:
归一化拉普拉斯矩阵
为了在某些应用中(例如谱聚类、图卷积网络等)获得更好的数值性质和归一化效果,我们可以构造 对称归一化拉普拉斯矩阵,记为 $L_{sym}$,定义为
L_{sym} = D^{-1/2} L D^{-1/2} = I - D^{-1/2} A D^{-1/2},
其中
D^{-1/2}
表示度矩阵的逆平方根,I
为单位矩阵。
D = \begin{pmatrix}
4 & 0 & 0 \\
0 & 9 & 0 \\
0 & 0 & 16
\end{pmatrix}.
D^{-1/2} = \begin{pmatrix}
\frac{1}{2} & 0 & 0 \\
0 & \frac{1}{3} & 0 \\
0 & 0 & \frac{1}{4}
\end{pmatrix}.
主要特点
-
归一化:
通过D^{-1/2}
的两侧预处理,将不同顶点的度数影响消除,使得矩阵在谱分解时能更好地反映图的结构。 -
对称性:
L_{sym}
是对称矩阵,这意味着它可以进行正交谱分解,其特征值均为实数。 -
谱性质:
L_{sym}
的特征值都位于区间[0, 2]
内。这一性质对于很多图论算法的稳定性和收敛性分析都非常重要。
Fiedler向量
根据谱分解理论,L
的特征值满足
x 0 = \lambda_1 \le \lambda_2 \le \cdots \le \lambda_n.
其中,\lambda_1 = 0
对应的特征向量通常为所有分量相同的常数向量。而 Fiedler 向量 就是对应于 \lambda_2
(第二小的特征值)的特征向量。
图的谱划分
-
构建图的拉普拉斯矩阵
- 根据给定的图结构,构建图的拉普拉斯矩阵 $L$。
-
计算 Fiedler 向量
- 求解拉普拉斯矩阵
L
的第二小特征值对应的特征向量,即 Fiedler 向量。
- 求解拉普拉斯矩阵
-
根据 Fiedler 向量进行图划分
- 将 Fiedler 向量的元素按大小排序。
- 找到 Fiedler 向量元素值为 0 附近的分界点,将图划分为两个子图。
Fiedler 向量在连接紧密的顶点上的取值往往比较接近
Fiedler 向量 :xv = \begin{pmatrix}0.8 \\0.7 \\0.6 \\-0.5 \\-0.6 \\-0.7\end{pmatrix}.
- 正值部分:对应顶点 1, 2, 3;
- 负值部分:对应顶点 4, 5, 6。
经过这种划分后,通常会发现:
- 子图内部:顶点之间的连接较为紧密(边较多),
- 子图之间:连接较弱(边较少或只有一两条边)。
-
递归划分子图(可选)
- 对划分得到的两个子图,分别递归应用上述步骤(1-3步),进一步将其划分为更小的子图。
- 这样可以将原图层层划分为多个子图。
-
确定最终聚类结果
- 根据上述划分过程得到的多个子图,就对应了图的最终聚类结果。
- 每个子图内的节点被认为属于同一个聚类。
谱聚类
谱聚类的基本思想是通过图的特征向量将数据点映射到低维空间中,然后在这个低维空间中使用传统的聚类技术。
1.构造相似性图
-
数据表示:
给定数据点 ${x_1, x_2, \ldots, x_n}$。 -
相似性矩阵 $W$:
根据数据点之间的距离或相似性构造矩阵 $W$。常见方法包括:- Gaussian 核函数:
W_{ij} = \exp\Bigl(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\Bigr),
只有当 x_i
与 x_j
彼此接近时, W_{ij}
才较大;衡量数据点之间的距离并将其映射为一个 [0, 1] 之间的相似性值。
其中 \sigma
为尺度参数,当 \sigma
较小时,只有非常接近的数据点才会被认为是相似的
K近邻图:仅连接每个点与其 k
个最近邻之间的边,其余 $W_{ij} = 0$。
2.构造图拉普拉斯矩阵
- 对称归一化拉普拉斯矩阵
- 未归一化的拉普拉斯矩阵
3.计算特征向量
对选定的拉普拉斯矩阵(例如 $L_{sym}$)进行特征分解,求出前 k
个最小特征值对应的特征向 量。
注意:对于未归一化的拉普拉斯矩阵,零特征值对应的特征向量通常是常数向量,所以在分 解时忽略这个解,选择第二小开始的 k
个特征向量。
4.构造嵌入空间
- 形成矩阵 $U$:
将求得的k
个特征向量作为列组成矩阵
U = \begin{pmatrix}
u_1(1) & u_2(1) & \cdots & u_k(1) \\
u_1(2) & u_2(2) & \cdots & u_k(2) \\
\vdots & \vdots & \ddots & \vdots \\
u_1(n) & u_2(n) & \cdots & u_k(n)
\end{pmatrix}.
其中,每一行对应原数据点在低维空间中的表示。 例:
- 归一化(可选):
对于对称归一化的情况,可以对U
的每一行做归一化处理,使得每一行变为单位向量,这一步有助于后续聚类的稳定性。
5.聚类
使用 k-means 等传统聚类算法:
在低维嵌入空间中,每一行表示一个数据点的低维表示,然后对这些点进行聚类。
得到每个数据点对应的簇标签。
谱聚类示例(6个数据点分成3类)
假设数据点为
x_1=1,\quad x_2=2,\quad x_3=5,\quad x_4=6,\quad x_5=10,\quad x_6=11.
直观上我们希望将它们分为3类:
- 类1:靠近 1、2
- 类2:靠近 5、6
- 类3:靠近 10、11
1. 构造相似性矩阵 $W$
采用 Gaussian 核函数
W_{ij}=\exp\Bigl(-\frac{(x_i-x_j)^2}{2\sigma^2}\Bigr).
取 $\sigma=2$(参数可调),则分母为 $2\sigma^2=8$。
计算部分相似性(近似值):
-
x_1,x_2: \; |1-2|^2=1,\quad W_{12}=\exp(-1/8)\approx0.8825.
-
x_1,x_3: \; |1-5|^2=16,\quad W_{13}=\exp(-16/8)=\exp(-2)\approx0.1353.
-
x_1,x_4: \; |1-6|^2=25,\quad W_{14}=\exp(-25/8)\approx0.0439.
-
x_1,x_5: \; |1-10|^2=81,\quad W_{15}=\exp(-81/8)\approx0.00004.
-
x_1,x_6: \; |1-11|^2=100,\quad W_{16}=\exp(-100/8)\approx0.00001.
-
x_2,x_3: \; |2-5|^2=9,\quad W_{23}=\exp(-9/8)\approx0.3247.
-
x_2,x_4: \; |2-6|^2=16,\quad W_{24}=\exp(-16/8)=\exp(-2)\approx0.1353.
-
x_2,x_5: \; |2-10|^2=64,\quad W_{25}=\exp(-64/8)=\exp(-8)\approx0.000335.
-
x_2,x_6: \; |2-11|^2=81,\quad W_{26}=\exp(-81/8)\approx0.00004.
-
x_3,x_4: \; |5-6|^2=1,\quad W_{34}=\exp(-1/8)\approx0.8825.
-
x_3,x_5: \; |5-10|^2=25,\quad W_{35}=\exp(-25/8)\approx0.0439.
-
x_3,x_6: \; |5-11|^2=36,\quad W_{36}=\exp(-36/8)=\exp(-4.5)\approx0.0111.
-
x_4,x_5: \; |6-10|^2=16,\quad W_{45}=\exp(-16/8)=\exp(-2)\approx0.1353.
-
x_4,x_6: \; |6-11|^2=25,\quad W_{46}=\exp(-25/8)\approx0.0439.
-
x_5,x_6: \; |10-11|^2=1,\quad W_{56}=\exp(-1/8)\approx0.8825.
由于 W
是对称矩阵,对角元一般取 0(或1,根据需求),我们构造相似性矩阵 W
为
W=\begin{pmatrix}
0 & 0.8825 & 0.1353 & 0.0439 & 0.00004 & 0.00001 \\
0.8825 & 0 & 0.3247 & 0.1353 & 0.000335& 0.00004 \\
0.1353 & 0.3247 & 0 & 0.8825 & 0.0439 & 0.0111 \\
0.0439 & 0.1353 & 0.8825 & 0 & 0.1353 & 0.0439 \\
0.00004& 0.000335&0.0439 & 0.1353 & 0 & 0.8825 \\
0.00001& 0.00004 & 0.0111 & 0.0439 & 0.8825 & 0
\end{pmatrix}.
- 构造度矩阵 $D$
D_{ii}=\sum_{j=1}^6 W_{ij}.
近似计算:
- 对于 $x_1$:
D_{11}\approx0.8825+0.1353+0.0439+0.00004+0.00001\approx1.0617.
- 对于 $x_2$:
D_{22}\approx0.8825+0.3247+0.1353+0.000335+0.00004\approx1.3429.
- 对于 $x_3$:
D_{33}\approx0.1353+0.3247+0.8825+0.0439+0.0111\approx1.3975.
- 对于 $x_4$:
D_{44}\approx0.0439+0.1353+0.8825+0.1353+0.0439\approx1.241.
- 对于 $x_5$:
D_{55}\approx0.00004+0.000335+0.0439+0.1353+0.8825\approx1.0617.
- 对于 $x_6$:
D_{66}\approx0.00001+0.00004+0.0111+0.0439+0.8825\approx0.9375.
构造度矩阵:
D=\begin{pmatrix}
1.0617 & 0 & 0 & 0 & 0 & 0\\[0.5em]
0 & 1.3429 & 0 & 0 & 0 & 0\\[0.5em]
0 & 0 & 1.3975 & 0 & 0 & 0\\[0.5em]
0 & 0 & 0 & 1.2410 & 0 & 0\\[0.5em]
0 & 0 & 0 & 0 & 1.0617 & 0\\[0.5em]
0 & 0 & 0 & 0 & 0 & 0.9375
\end{pmatrix}.
3. 构造拉普拉斯矩阵 $L$
未归一化拉普拉斯矩阵定义为
L = D - W.
例如,矩阵的第 1 行为:
L_{1\cdot}=(1.0617,\ -0.8825,\ -0.1353,\ -0.0439,\ -0.00004,\ -0.00001),
其它行类似。
4. 特征分解与构造低维嵌入
为了分成 3 类,通常我们取图拉普拉斯矩阵(或归一化拉普拉斯矩阵)的前 k=3
个最小特征值对应的特征向量。
(注意:对于未归一化拉普拉斯矩阵,第一个特征值为 0,对应常数向量;但在归一化方法中,所有 3 个特征向量通常都有实际意义。)
假设经过特征分解后,我们得到了三个特征向量
u_1,\; u_2,\; u_3,
每个都是 6 维向量。将它们按列排列构成矩阵
U=\begin{pmatrix}
u_1(1) & u_2(1) & u_3(1) \\[0.3em]
u_1(2) & u_2(2) & u_3(2) \\[0.3em]
u_1(3) & u_2(3) & u_3(3) \\[0.3em]
u_1(4) & u_2(4) & u_3(4) \\[0.3em]
u_1(5) & u_2(5) & u_3(5) \\[0.3em]
u_1(6) & u_2(6) & u_3(6)
\end{pmatrix}.
每一行 i
表示数据点 x_i
在 3 维低维嵌入空间中的表示。
假设得到的低维表示(示例数值):
x_1: \; (0.9,\ 0.2,\ 0.1)
x_2: \; (0.8,\ 0.3,\ 0.2)
x_3: \; (-0.1,\ 0.8,\ 0.1)
x_4: \; (-0.2,\ 0.7,\ 0.0)
x_5: \; (0.1,\ -0.2,\ 0.9)
x_6: \; (0.0,\ -0.1,\ 1.0)
5. 在低维空间上使用 k-means 聚类
利用 k-means 算法对 6 个数据点的 3 维向量进行聚类。
在本例中,k-means 会尝试将点分为 3 类。
根据上述低维表示,很容易看到:
- 数据点
x_1
和x_2
聚在一起; - 数据点
x_3
和x_4
聚在一起; - 数据点
x_5
和x_6
聚在一起。
最终得到的聚类结果:
- 类1:
\{x_1, x_2\}
- 类2:
\{x_3, x_4\}
- 类3:
\{x_5, x_6\}
谱分解
一个对称矩阵可以通过其特征值和特征向量进行分解。对于一个 n \times n
的对称矩阵 $A$,其谱分解可以表示为:
A = \sum_{i=1}^{n} \lambda_i x_i x_i^T
其中,\lambda_i
是矩阵 A
的第 i
个特征值,x_i
是对应的特征向量。
推导过程
- 特征值和特征向量的定义
对于一个对称矩阵 $A$,其特征值和特征向量满足:
A x_i = \lambda_i x_i
其中,\lambda_i
是特征值,x_i
是对应的特征向量。
-
谱分解
将这些特征向量组成一个正交矩阵Q
A = Q \Lambda Q^T
Q = \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix},
Q \Lambda = \begin{bmatrix} \lambda_1 x_1 & \lambda_2 x_2 & \cdots & \lambda_n x_n \end{bmatrix}.
Q \Lambda Q^T = \begin{bmatrix} \lambda_1 x_1 & \lambda_2 x_2 & \cdots & \lambda_n x_n \end{bmatrix} \begin{bmatrix} x_1^T \\ x_2^T \\ \vdots \\ x_n^T \end{bmatrix}.
Q \Lambda Q^T = \lambda_1 x_1 x_1^T + \lambda_2 x_2 x_2^T + \cdots + \lambda_n x_n x_n^T.
可以写为
A = \sum_{i=1}^{n} \lambda_i x_i x_i^T.
- 网络重构
在随机网络中,网络的邻接矩阵A
通常是对称的。利用预测算法得到的谱参数\{\lambda_i, x_i\}
后,就可以用以下公式重构网络矩阵:
A(G) = \sum_{i=1}^{n} \lambda_i x_i x_i^T