文章目录
- 五、基于局部结构保持的降维
- 1、Laplacian Eigenmaps(拉普拉斯特征映射)
- (1)邻接矩阵
- (2)图论基础
- (3)Laplace算子
- 1、散度(Divergence)
- 2、拉普拉斯算子
- 3、二维离散拉普拉斯算子
- 4、拉普拉斯算子 → 拉普拉斯矩阵
- (4)图论基础(续)
- 1、Laplace矩阵 L L L: L = D − W L = D - W L=D−W
- 2、Laplace矩阵的性质1证明
- 3、Laplace矩阵的性质3
- 4、Laplace矩阵的性质4
- (5)图论基础与拉普拉斯矩阵示例
- (6)规范化的拉普拉斯矩阵
- 1、对称 Laplace 矩阵
- 2、随机游走 Laplace 矩阵
- 3、性质
- (7)规范化的拉普拉斯矩阵的应用
- (8)降维
- (9)构建特征映射
- (10)尺度不变性
- (11)优化目标
- (12)广义特征值问题
- (13)目标函数优化
- (14)构建 D ′ > 1 D' > 1 D′>1特征映射
- (15)目标函数
- (16)例:拉普拉斯特征映射
- 2、t-NSE
- (1)t-SNE 概述
- (2)维数灾难
- (3)SNE:随机邻居嵌入
- (4)对称SNE
- (5)参数 σ i \sigma_i σi与困惑度(Perplexity)
- (6)困惑度的应用
- (7)t-SNE
- 1、高维到低维映射
- 2、目标函数
- (8)为什么使用t分布?
- 1、t分布与正态分布的比较
- 2、拥挤问题
- 3、更长尾分布的效果
- 4、概率距离图
- (9)目标函数
- 1、KL散度(Kullback-Leibler Divergence)
- (10)目标函数的优化求解
- 1、目标函数
- 2、梯度下降法
- (11)t-SNE超参数 σ i \sigma_i σi的影响
- 1、混淆度(Perplexity):每个点的局部邻居的数目
- 2、高维空间中的高斯分布用基于KNN的均匀分布代替
- (12)t-SNE的缺点
- (13)t-SNE中簇之间的距离并不表示相似度
- 3、UMAP
- (1)均匀流形逼近和投影(Uniform Manifold Approximation and Projection,UMAP)
- (2)UMAP基本思想
- 1、基本思想
- 2、UMAP两个主要步骤:
- (3)高维空间的流形结构
- 1、寻找K近邻
- (4)边的权重
- 1、权重计算
- (5)局部连接
- 1、局部连接性
- (6)对称的边的权重
- 1、边的权重计算
- (7)低维表示
- 1、参数min_dist
- (8)目标函数
- 1、交叉熵
- 2、安装UMAP
- 3、安装命令
- 五、总结
- 1、降维方法总结
- 2、sklearn中的降维方法
- (1)降维方法列表
- (3)MNIST数据集上的降维结果
- 六、参考文献
- 1、参考文献列表
五、基于局部结构保持的降维
1、Laplacian Eigenmaps(拉普拉斯特征映射)
令 x 1 , x 2 , . . . , x N ∈ R D x_1, x_2, ..., x_N \in \mathbb{R}^D x1,x2,...,xN∈RD,构造相似性图,表示结点之间的邻接关系:
- ε \varepsilon ε邻域
- K K K近邻
通过对图的拉普拉斯矩阵进行特征值分解,得到映射(eigenmap)
(1)邻接矩阵
邻接矩阵(Affinity matrix) W W W的元素 w i j w_{ij} wij表示结点 v i v_i vi和 v j v_j vj的相似度,即为边 e i j e_{ij} eij的权重。
通常两个结点之间的相似度可取:
w i j = exp ( − ∥ x i − x j ∥ 2 σ 2 ) w_{ij} = \exp\left(-\frac{\|x_i-x_j\|^2}{\sigma^2}\right) wij=exp(−σ2∥xi−xj∥2)
其中 σ 2 ∈ R + \sigma^2 \in \mathbb{R}^+ σ2∈R+
σ \sigma σ可设置为数据点到其KNN的平均距离:
σ = 1 N ∑ i = 1 N ∥ x i − x i ( K N N ) ∥ \sigma = \frac{1}{N} \sum_{i=1}^N \left\|x_i - x_i^{(KNN)}\right\| σ=N1i=1∑N xi−xi(KNN)
K K K通常可取6~10
在文档分析中,两个结点之间的相似度可取余弦相似度。
(2)图论基础
邻接矩阵 W W W:所有点之间的权重值 w i j w_{ij} wij,构成图的邻接矩阵 W W W,这是一个 N × N N \times N N×N的对称矩阵。
度矩阵 D D D:每个结点的度构成 N × N N \times N N×N的度矩阵 D D D。
- 结点 v i v_i vi的度 d i d_i di定义为和它相连的所有边的权重之和,即:
d i = ∑ j = 1 N w i j d_i = \sum_{j=1}^N w_{ij} di=j=1∑Nwij
- D D D是对角矩阵,第 i i i行的主对角线元素值,为结点 v i v_i vi的度数:
D = ( d 1 0 ⋯ 0 0 d 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ d N ) D = \begin{pmatrix} d_1 & 0 & \cdots & 0 \\ 0 & d_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & d_N \end{pmatrix} D= d10⋮00d2⋮0⋯⋯⋱⋯00⋮dN
(3)Laplace算子
拉普拉斯算子是n维欧几里得空间中的一个二阶微分算子,定义为梯度的散度。
梯度:梯度“ ∇ \nabla ∇”是一个矢量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该方向处沿着此梯度方向变化最快,变化率最大。
例如:假设一个三元函数 u = f ( x , y , z ) u=f(x,y,z) u=f(x,y,z)在空间区域 G G G内具有一阶连续偏导数,点 P ( x , y , z ) ∈ G P(x,y,z)\in G P(x,y,z)∈G,则称以下向量表示为点 P P P处的梯度:
∇ f ( x , y , z ) = ( ∂ f ∂ x , ∂ f ∂ y , ∂ f ∂ z ) T \nabla f(x,y,z)=\left(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y},\frac{\partial f}{\partial z}\right)^{\text{T}} ∇f(x,y,z)=(∂x∂f,∂y∂f,∂z∂f)T
亦被称为向量的微分算子或者Nabla算子。
1、散度(Divergence)
散度(divergence)“ ∇ ⋅ \nabla \cdot ∇⋅”是一个标量,用于表示空间中各点向量场发散的强弱程度。散度是作用在向量场上的一个算子。
例如:在三维空间中,向量场就是在空间中每一点处都对应一个三维向量的向量函数:
F ( x , y , z ) = ( v 1 ( x , y , z ) v 2 ( x , y , z ) v 3 ( x , y , z ) ) T \mathbf{F}(x, y, z) = \begin{pmatrix} v_1(x, y, z) \\ v_2(x, y, z) \\ v_3(x, y, z) \end{pmatrix}^{\text{T}} F(x,y,z)= v1(x,y,z)v2(x,y,z)v3(x,y,z) T
散度为:
div ( F ) = ∂ v 1 ∂ x + ∂ v 2 ∂ y + ∂ v 3 ∂ z \text{div}(\mathbf{F}) = \frac{\partial v_1}{\partial x} + \frac{\partial v_2}{\partial y} + \frac{\partial v_3}{\partial z} div(F)=∂x∂v1+∂y∂v2+∂z∂v3
物理上,散度的意义是场的有源性。当 div ( F ) > 0 \text{div}(\mathbf{F}) > 0 div(F)>0,表示该点有散发通量的正源(发散源);当 div ( F ) < 0 \text{div}(\mathbf{F}) < 0 div(F)<0,表示该点有吸收能量的负源(洞或汇);当 div ( F ) = 0 \text{div}(\mathbf{F}) = 0 div(F)=0,表示该点无源。
2、拉普拉斯算子
拉普拉斯算子“ Δ \Delta Δ”是n维欧几里得空间中的一个二阶微分算子,定义为梯度( ∇ f ( x , y , z ) \nabla f(x, y, z) ∇f(x,y,z))的散度( ∇ ⋅ \nabla \cdot ∇⋅),即:
Δ f = div ( ∇ f ( x , y , z ) ) = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 + ∂ 2 f ∂ z 2 \Delta f = \text{div}(\nabla f(x, y, z)) = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} + \frac{\partial^2 f}{\partial z^2} Δf=div(∇f(x,y,z))=∂x2∂2f+∂y2∂2f+∂z2∂2f
离散形式:
∂ f ∂ x = f ( x + 1 ) − f ( x ) \frac{\partial f}{\partial x} = f(x+1) - f(x) ∂x∂f=f(x+1)−f(x)
∂ 2 f ∂ x 2 = f ′ ( x ) − f ′ ( x − 1 ) = f ( x + 1 ) − f ( x ) − [ f ( x ) − f ( x − 1 ) ] = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) \frac{\partial^2 f}{\partial x^2} = f'(x) - f'(x-1) = f(x+1) - f(x) - [f(x) - f(x-1)] = f(x+1) + f(x-1) - 2f(x) ∂x2∂2f=f′(x)−f′(x−1)=f(x+1)−f(x)−[f(x)−f(x−1)]=f(x+1)+f(x−1)−2f(x)
3、二维离散拉普拉斯算子
二维离散拉普拉斯算子:
Δ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \Delta f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} Δf=∂x2∂2f+∂y2∂2f
= f ( x + 1 , y ) + f ( x − 1 , y ) − 2 f ( x , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 2 f ( x , y ) = f(x+1, y) + f(x-1, y) - 2f(x, y) + f(x, y+1) + f(x, y-1) - 2f(x, y) =f(x+1,y)+f(x−1,y)−2f(x,y)+f(x,y+1)+f(x,y−1)−2f(x,y)
= f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) = f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) - 4f(x, y) =f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y)
拉普拉斯算子计算周围点与中心点的差。
4、拉普拉斯算子 → 拉普拉斯矩阵
假设具有 N N N个节点的图 G G G,节点 i i i的邻域为 N i N_i Ni,图上定义一个函数 f = ( f 1 , f 2 , . . . , f N ) f = (f_1, f_2, ..., f_N) f=(f1,f2,...,fN),其中 f i f_i fi表示函数 f f f在节点 i i i处的函数值。
设节点 i i i与节点 j j j之间连边 e i j e_{ij} eij的权值为 w i j w_{ij} wij,则图 G G G上的拉普拉斯算子为:
Δ f i = ∑ j ∈ N i w i j ( f i − f j ) \Delta f_i = \sum_{j \in N_i} w_{ij}(f_i - f_j) Δfi=j∈Ni∑wij(fi−fj)
假设节点 i i i与节点 j j j不相邻时 w i j = 0 w_{ij} = 0 wij=0,将上面的式子进行简化:
Δ f i = ∑ j ∈ N i w i j ( f i − f j ) = f i ∑ j ∈ N i w i j − ∑ j ∈ N i w i j f j \Delta f_i = \sum_{j \in N_i} w_{ij}(f_i - f_j) = f_i \sum_{j \in N_i} w_{ij} - \sum_{j \in N_i} w_{ij}f_j Δfi=j∈Ni∑wij(fi−fj)=fij∈Ni∑wij−j∈Ni∑wijfj
其中:
d i = ∑ j ∈ N i w i j = ∑ j = 1 N w i j 表示节点 i 的度 d_i = \sum_{j \in N_i} w_{ij} = \sum_{j=1}^N w_{ij} \quad \text{表示节点} i \text{的度} di=j∈Ni∑wij=j=1∑Nwij表示节点i的度
w i : w_{i:} wi:是N维的行向量,表示邻接矩阵 W W W的第 i i i行。
对于所有的 N N N个节点有:
Δ f = ( Δ f 1 Δ f 2 ⋮ Δ f N ) = ( d 1 f 1 − w 1 : f d 2 f 2 − w 2 : f ⋮ d N f N − w N : f ) = ( d 1 0 ⋯ 0 0 d 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ d N ) f − ( w 1 : w 2 : ⋮ w N : ) f \Delta \mathbf{f} = \begin{pmatrix} \Delta f_1 \\ \Delta f_2 \\ \vdots \\ \Delta f_N \end{pmatrix} = \begin{pmatrix} d_1 f_1 - w_{1:} \mathbf{f} \\ d_2 f_2 - w_{2:} \mathbf{f} \\ \vdots \\ d_N f_N - w_{N:} \mathbf{f} \end{pmatrix} = \begin{pmatrix} d_1 & 0 & \cdots & 0 \\ 0 & d_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & d_N \end{pmatrix} \mathbf{f} - \begin{pmatrix} w_{1:} \\ w_{2:} \\ \vdots \\ w_{N:} \end{pmatrix} \mathbf{f} Δf= Δf1Δf2⋮ΔfN = d1f1−w1:fd2f2−w2:f⋮dNfN−wN:f = d10⋮00d2⋮0⋯⋯⋱⋯00⋮dN f− w1:w2:⋮wN: f
令邻接矩阵 W W W
L = D − W 表示图的拉普拉斯矩阵 L = D - W \quad \text{表示图的拉普拉斯矩阵} L=D−W表示图的拉普拉斯矩阵
= ( D − W ) f = L f = (D - W) \mathbf{f} = L \mathbf{f} =(D−W)f=Lf
(4)图论基础(续)
1、Laplace矩阵 L L L: L = D − W L = D - W L=D−W
对于任意的向量 f \mathbf{f} f:
f T L f = 1 2 ∑ i , j = 1 N w i , j ( f i − f j ) 2 \mathbf{f}^{\text{T}} L \mathbf{f} = \frac{1}{2} \sum_{i,j=1}^N w_{i,j}(f_i - f_j)^2 fTLf=21i,j=1∑Nwi,j(fi−fj)2
拉普拉斯矩阵 L L L 是半正定的,且对应的 N N N 个实数特征值都大于等于 0,即 0 = λ 1 ≤ λ 2 ≤ ⋯ ≤ λ N ( L v = λ v ) 0 = \lambda_1 \leq \lambda_2 \leq \cdots \leq \lambda_N \quad (L \mathbf{v} = \lambda \mathbf{v}) 0=λ1≤λ2≤⋯≤λN(Lv=λv)
- L L L 的最小特征值是 0,且特征值 0 所对应的特征向量为全 1 向量;
- L L L 的特征值中 “0” 出现的次数是图连通区域的个数。
2、Laplace矩阵的性质1证明
证明:
f T L f = f T D f − f T W f \mathbf{f}^{\text{T}} L \mathbf{f} = \mathbf{f}^{\text{T}} D \mathbf{f} - \mathbf{f}^{\text{T}} W \mathbf{f} fTLf=fTDf−fTWf
= ∑ i = 1 N d i f i 2 − ∑ i , j = 0 N w i , j f i f j = \sum_{i=1}^N d_i f_i^2 - \sum_{i,j=0}^N w_{i,j} f_i f_j =i=1∑Ndifi2−i,j=0∑Nwi,jfifj
= 1 2 ( ∑ i = 1 N d i f i 2 − 2 ∑ i , j = 1 N w i , j f i f j + ∑ j = 1 N d j f j 2 ) = \frac{1}{2} \left( \sum_{i=1}^N d_i f_i^2 - 2 \sum_{i,j=1}^N w_{i,j} f_i f_j + \sum_{j=1}^N d_j f_j^2 \right) =21(i=1∑Ndifi2−2i,j=1∑Nwi,jfifj+j=1∑Ndjfj2)
= 1 2 ∑ i , j = 1 N w i , j ( f i − f j ) 2 ≥ 0 = \frac{1}{2} \sum_{i,j=1}^N w_{i,j}(f_i - f_j)^2 \geq 0 =21i,j=1∑Nwi,j(fi−fj)2≥0
L L L 刻画图信号局部平滑度
3、Laplace矩阵的性质3
拉普拉斯矩阵的最小特征值是 0,且对应的特征向量为全 1 向量。
证明:根据定义: d i = ∑ j = 1 N w i j d_i = \sum_{j=1}^N w_{ij} di=∑j=1Nwij
L = D − W L = D - W L=D−W
令 v = 1 \mathbf{v} = \mathbf{1} v=1(元素值全为 1),
L v = D v − W v = ( d 1 d 2 ⋮ d N ) − ( d 1 d 2 ⋮ d N ) = ( 0 0 ⋮ 0 ) = 0 × v L \mathbf{v} = D \mathbf{v} - W \mathbf{v} = \begin{pmatrix} d_1 \\ d_2 \\ \vdots \\ d_N \end{pmatrix} - \begin{pmatrix} d_1 \\ d_2 \\ \vdots \\ d_N \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ \vdots \\ 0 \end{pmatrix} = 0 \times \mathbf{v} Lv=Dv−Wv= d1d2⋮dN − d1d2⋮dN = 00⋮0 =0×v
根据特征值和特征向量的定义( L v = λ v L \mathbf{v} = \lambda \mathbf{v} Lv=λv), L L L 有一个特征值为 0,且其对应的特征向量为 1(元素值全为 1)。
4、Laplace矩阵的性质4
特征值中 0 出现的次数就是图连通区域的个数。
证明:首先考虑 k = 1 k = 1 k=1:即图是全连通的。
假设 f \mathbf{f} f 是特征值 0 的对应特征向量( L f = 0 × f = 0 L \mathbf{f} = 0 \times \mathbf{f} = 0 Lf=0×f=0),那么:
0 = f T L f = 1 2 ∑ i , j = 1 N w i j ( f i − f j ) 2 0 = \mathbf{f}^{\text{T}} L \mathbf{f} = \frac{1}{2} \sum_{i,j=1}^N w_{ij}(f_i - f_j)^2 0=fTLf=21i,j=1∑Nwij(fi−fj)2
{ w i j > 0 ∑ i , j = 1 N w i j ( f i − f j ) 2 = 0 \begin{cases} w_{ij} > 0 \\ \sum_{i,j=1}^N w_{ij}(f_i - f_j)^2 = 0 \end{cases} {wij>0∑i,j=1Nwij(fi−fj)2=0
⇒ ∀ i , j = 1 , 2 , . . . , N , f i = f j \Rightarrow \forall i, j = 1, 2, ..., N, \, f_i = f_j ⇒∀i,j=1,2,...,N,fi=fj
即 f \mathbf{f} f 在连通部件上是常数向量 1,这显然是连通分量的指示向量。
L L L 的特征值中 “0” 出现的次数是图连通区域的个数。
将结点按其所属的连通部件排序,此时 W W W 具有块对角形式, L L L 也是块对角形式:
L = ( L 1 L 2 ⋯ L k ) L = \begin{pmatrix} L_1 & & \\ & L_2 & \\ & & \cdots & L_k \end{pmatrix} L= L1L2⋯Lk
每个块 L i L_i Li 都是第 i i i 个连通子图的拉普拉斯矩阵:每个 L i L_i Li 都有 1 个特征值 0,对应的特征向量是第 i i i 个连通分量上的常数向量:
v i = ( 0 , 0 , . . . , 0 , 1 , 1 , . . . , 1 , 0 , 0 , . . . , 0 ) T \mathbf{v}_i = (0, 0, ..., 0, 1, 1, ..., 1, 0, 0, ..., 0)^{\text{T}} vi=(0,0,...,0,1,1,...,1,0,0,...,0)T其中 1 的对应第 i i i 连通子图 L i L_i Li
v 1 = ( 1 , 1 , . . . , 1 , 0 , 0 , . . . , 0 , 0 , 0 , . . . , 0 ) T \mathbf{v}_1 = (1, 1, ..., 1, 0, 0, ..., 0, 0, 0, ..., 0)^{\text{T}} v1=(1,1,...,1,0,0,...,0,0,0,...,0)T
v 2 = ( 0 , 0 , . . . , 0 , 1 , 1 , . . . , 1 , 0 , 0 , . . . , 0 ) T \mathbf{v}_2 = (0, 0, ..., 0, 1, 1, ..., 1, 0, 0, ..., 0)^{\text{T}} v2=(0,0,...,0,1,1,...,1,0,0,...,0)T
v k = ( 0 , 0 , . . . , 0 , 0 , 0 , . . . , 0 , 1 , 1 , . . . , 1 ) T \mathbf{v}_k = (0, 0, ..., 0, 0, 0, ..., 0, 1, 1, ..., 1)^{\text{T}} vk=(0,0,...,0,0,0,...,0,1,1,...,1)T
L v i = 0 , i = 1 , 2 , . . . , k L \mathbf{v}_i = 0, \, i = 1, 2, ..., k Lvi=0,i=1,2,...,k:所以 v i \mathbf{v}_i vi 是 0 特征值对应的特征向量
L L L 的谱由 L i L_i Li 的谱的联合给出:矩阵 L L L 的特征值 0 的数目与连通分量的数目相同,相应的特征向量为连通分量的指示向量。
(5)图论基础与拉普拉斯矩阵示例
示例图
图: X 1 → X 2 → X 3 → X 4 → X 5 X_1 \rightarrow X_2 \rightarrow X_3 \rightarrow X_4 \rightarrow X_5 X1→X2→X3→X4→X5
邻接矩阵、度矩阵和拉普拉斯矩阵
邻接矩阵 W W W:
W = ( 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 ) W = \begin{pmatrix} 0 & 1 & 0 & 0 & 0 \\ 1 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 1 & 0 \\ \end{pmatrix} W= 0100010100010100010100010
度矩阵 D D D:
D = ( 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 1 ) D = \begin{pmatrix} 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ \end{pmatrix} D= 1000001000001000002000001
拉普拉斯矩阵 L = D − W L = D - W L=D−W:
L = ( 1 − 1 0 0 0 − 1 1 0 0 0 0 0 1 − 1 0 0 0 − 1 2 − 1 0 0 0 − 1 1 ) L = \begin{pmatrix} 1 & -1 & 0 & 0 & 0 \\ -1 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & -1 & 0 \\ 0 & 0 & -1 & 2 & -1 \\ 0 & 0 & 0 & -1 & 1 \\ \end{pmatrix} L= 1−1000−11000001−1000−12−1000−11
示例图
拉普拉斯矩阵 L L L 的特征值和特征向量
L L L 的特征值: λ = 0 , 0 , 1 , 2 , 3 \lambda = 0, 0, 1, 2, 3 λ=0,0,1,2,3
特征向量:
v 1 = ( 1 1 0 0 0 ) , v 2 = ( 0 0 1 1 1 ) , v 3 = ( 0 0 − . 71 0 . 71 ) , v 4 = ( − . 71 . 71 0 0 0 ) , v 5 = ( 0 0 − . 41 . 82 − . 41 ) \mathbf{v}_1 = \begin{pmatrix} 1 \\ 1 \\ 0 \\ 0 \\ 0 \end{pmatrix}, \quad \mathbf{v}_2 = \begin{pmatrix} 0 \\ 0 \\ 1 \\ 1 \\ 1 \end{pmatrix}, \quad \mathbf{v}_3 = \begin{pmatrix} 0 \\ 0 \\ -.71 \\ 0 \\ .71 \end{pmatrix}, \quad \mathbf{v}_4 = \begin{pmatrix} -.71 \\ .71 \\ 0 \\ 0 \\ 0 \end{pmatrix}, \quad \mathbf{v}_5 = \begin{pmatrix} 0 \\ 0 \\ -.41 \\ .82 \\ -.41 \end{pmatrix} v1= 11000 ,v2= 00111 ,v3= 00−.710.71 ,v4= −.71.71000 ,v5= 00−.41.82−.41
图的拉普拉斯矩阵 L L L 的特征向量
图的拉普拉斯矩阵 L L L 的特征向量:
前两个特征向量对应图的两个连通部件
其他特征向量可视为连通部件内部的基
f T L f = ∑ i , j = 1 N w i , j ( f i − f j ) 2 \mathbf{f}^{\text{T}} L \mathbf{f} = \sum_{i,j=1}^N w_{i,j}(f_i - f_j)^2 fTLf=i,j=1∑Nwi,j(fi−fj)2
表示 f f f 相对图的平滑程度。
特征向量可形成一组基:前面的成分变化比较平滑,后面的成分变化剧烈。
(6)规范化的拉普拉斯矩阵
1、对称 Laplace 矩阵
对称 Laplace 矩阵: L sym = D − 1 / 2 L D − 1 / 2 L_{\text{sym}} = D^{-1/2} L D^{-1/2} Lsym=D−1/2LD−1/2
2、随机游走 Laplace 矩阵
随机游走 Laplace 矩阵: L rm = D − 1 L = I − D − 1 W L_{\text{rm}} = D^{-1} L = I - D^{-1} W Lrm=D−1L=I−D−1W
3、性质
1. 对于任意的向量 f \mathbf{f} f, f T L sym f = 1 2 ∑ i , j = 1 N w i , j ( f i d i − f j d j ) 2 \mathbf{f}^{\text{T}} L_{\text{sym}} \mathbf{f} = \frac{1}{2} \sum_{i,j=1}^N w_{i,j} \left( \frac{f_i}{\sqrt{d_i}} - \frac{f_j}{\sqrt{d_j}} \right)^2 fTLsymf=21∑i,j=1Nwi,j(difi−djfj)2。
2. 如果 ( λ , v ) (\lambda, \mathbf{v}) (λ,v) 是 L rm L_{\text{rm}} Lrm 的特征值和特征向量,则 ( λ , D − 1 / 2 v ) (\lambda, D^{-1/2} \mathbf{v}) (λ,D−1/2v) 是 L sym L_{\text{sym}} Lsym 的特征值和特征向量, ( ( 1 − λ ) , v ) ((1 - \lambda), \mathbf{v}) ((1−λ),v) 是 P P P 的特征值和特征向量。
(7)规范化的拉普拉斯矩阵的应用
规范化可消除图中结点度的影响,从而提高模型对不同规模或稀疏度图的适应能力。
对称拉普拉斯矩阵适合于谱分解(如计算特征向量)和对称传播机制(如 GCN),确保信息在双向边上传递时具有一致性。
随机游走拉普拉斯矩阵模拟随机游走的概率转移矩阵,用于表示从一个结点到其邻居结点的概率转移,强调单向信息流,在基于传播机制的模型(如 PageRank 或 GraphSAGE)中有较好的表现。
(8)降维
如果连接图是不连通的,那么下列步骤单独应用于每一个连通分量。我们首先考虑寻找一维嵌入向量的特殊情况,然后泛化到一般的 D ′ D' D′ 维的情况。
令 z = ( z 1 , z 2 , … , z N ) T \mathbf{z} = (z_1, z_2, \ldots, z_N)^{\text{T}} z=(z1,z2,…,zN)T 表示 1 维嵌入向量
需要最小化的目标函数如下:
1 2 ∑ i , j = 1 N ( z i − z j ) 2 w i j \frac{1}{2} \sum_{i,j=1}^N (z_i - z_j)^2 w_{ij} 21i,j=1∑N(zi−zj)2wij
如果两个数据点 i i i 和 j j j 很相似( w i j w_{ij} wij 较大),那么 i i i 和 j j j 在降维后的空间中应该尽量接近( ( z i − z j ) 2 (z_i - z_j)^2 (zi−zj)2 较小)。对较远的点,不太关注。
(9)构建特征映射
可以将目标函数写成如下形式:
1 2 ∑ i , j = 1 N ( z i − z j ) 2 w i j = 1 2 ∑ i , j = 1 N z i 2 w i j + 1 2 ∑ i , j = 1 N z j 2 w i j − ∑ i , j = 1 N z i z j w i j \frac{1}{2} \sum_{i,j=1}^N (z_i - z_j)^2 w_{ij} = \frac{1}{2} \sum_{i,j=1}^N z_i^2 w_{ij} + \frac{1}{2} \sum_{i,j=1}^N z_j^2 w_{ij} - \sum_{i,j=1}^N z_i z_j w_{ij} 21i,j=1∑N(zi−zj)2wij=21i,j=1∑Nzi2wij+21i,j=1∑Nzj2wij−i,j=1∑Nzizjwij
= ∑ i = 1 N z i 2 d i − ∑ i , j = 1 N z i z j w i j = \sum_{i=1}^N z_i^2 d_i - \sum_{i,j=1}^N z_i z_j w_{ij} =i=1∑Nzi2di−i,j=1∑Nzizjwij
= ∑ i , j = 1 N z i ( d i − w i j ) z j = z T ( D − W ) z = z T L z = \sum_{i,j=1}^N z_i (d_i - w_{ij}) z_j = \mathbf{z}^{\text{T}} (D - W) \mathbf{z} = \mathbf{z}^{\text{T}} L \mathbf{z} =i,j=1∑Nzi(di−wij)zj=zT(D−W)z=zTLz
其中 d i i = ∑ j w i j , D = diag ( d 11 … d N N ) , L = D − W d_{ii} = \sum_j w_{ij}, D = \text{diag}(d_{11} \ldots d_{NN}), L = D - W dii=∑jwij,D=diag(d11…dNN),L=D−W 是拉普拉斯矩阵。
(10)尺度不变性
对目标函数 1 2 ∑ i , j = 1 N ( z i − z j ) 2 w i j \frac{1}{2} \sum_{i,j=1}^N (z_i - z_j)^2 w_{ij} 21∑i,j=1N(zi−zj)2wij,如果所有结点都映射到了同一个位置,也就是所有结点的嵌入向量 z i z_i zi 相同,显然目标函数肯定有最小值 0。但此时嵌入向量不能区分不同的结点,所以这种降维毫无意义。
为了得到唯一解,我们需要对结点嵌入向量 z i z_i zi 增加一些限制。
一个最简单的限制:所有结点的嵌入向量能够尽可能地去填充空间,而不是挤在一起。
- z T D 1 = 0 \mathbf{z}^{\text{T}} D \mathbf{1} = 0 zTD1=0:均值为 0,平移不变,去除平凡解
- z T D z = 1 \mathbf{z}^{\text{T}} D \mathbf{z} = 1 zTDz=1:去掉嵌入向量中任意的尺度因子,使得 z i z_i zi 在嵌入空间中分布更加均匀。
(11)优化目标
优化问题可以被写成如下形式:
min z z T L z s.t. z T D z = 1 \min_{\mathbf{z}} \mathbf{z}^{\text{T}} L \mathbf{z} \quad \text{s.t.} \quad \mathbf{z}^{\text{T}} D \mathbf{z} = 1 zminzTLzs.t.zTDz=1
上述带约束的优化问题可用拉格朗日乘子法求解:
L = z T L z − λ ( z T D z − 1 ) L = \mathbf{z}^{\text{T}} L \mathbf{z} - \lambda (\mathbf{z}^{\text{T}} D \mathbf{z} - 1) L=zTLz−λ(zTDz−1)
拉格朗日函数对 z \mathbf{z} z 求偏导并等于 0,得到 ∂ L ∂ z = L z − λ D z = 0 \frac{\partial L}{\partial \mathbf{z}} = L \mathbf{z} - \lambda D \mathbf{z} = 0 ∂z∂L=Lz−λDz=0。
因此 L z = λ D z L \mathbf{z} = \lambda D \mathbf{z} Lz=λDz 是一个广义特征值问题,等价于 D − 1 L z = λ z D^{-1} L \mathbf{z} = \lambda \mathbf{z} D−1Lz=λz,即 L rm z = λ z L_{\text{rm}} \mathbf{z} = \lambda \mathbf{z} Lrmz=λz。
通过求 L rm L_{\text{rm}} Lrm 最小非零特征值所对应的特征向量,即可实现降维。
(12)广义特征值问题
对于形式如下的特征值问题:
求数 λ \lambda λ,使方程
A x = λ B x A \mathbf{x} = \lambda B \mathbf{x} Ax=λBx
有非零解 x \mathbf{x} x,这里 A A A 为 n n n 阶实对称矩阵, B B B 为 n n n 阶实对称正定矩阵, x \mathbf{x} x 为 n n n 维列向量,则称该问题为矩阵 A A A 相对于矩阵 B B B 的广义特征值问题,称满足上式要求的数 λ \lambda λ 为矩阵 A A A 相对于矩阵 B B B 的特征值,而与 λ \lambda λ 相对应的非零解 x \mathbf{x} x 称为属于 λ \lambda λ 的特征向量。
由于 B B B 正定,故用 B − 1 B^{-1} B−1 左乘(1)式两端得: B − 1 A x = λ x B^{-1} A \mathbf{x} = \lambda \mathbf{x} B−1Ax=λx
这样可将广义特征值问题转化为矩阵 B − 1 A B^{-1} A B−1A 的普通特征值问题。
(13)目标函数优化
最小化:将 L z = λ D z Lz = \lambda Dz Lz=λDz代回目标函数 min z z T L z s.t. z T D z = 1 \min_z z^T Lz \quad \text{s.t.} \quad z^T Dz = 1 minzzTLzs.t.zTDz=1,得到
z T L z = z T λ D z = λ z T D z = λ z^T Lz = z^T \lambda Dz = \lambda z^T Dz = \lambda zTLz=zTλDz=λzTDz=λ
所以目标函数 z T L z z^T Lz zTLz要最小,则需取 λ \lambda λ最小。
注意:最小的特征值为0,其对应的特征向量为全1的向量。因此我们取第二小的特征值对应的特征向量作为 z z z。
例:
给定图:
邻接矩阵
W = ( 0 0.8 0.8 0 0 0.8 0 0.8 0 0 0.8 0.8 0 0.1 0 0 0 0.1 0 0.9 0 0 0 0.9 0 ) W = \begin{pmatrix} 0 & 0.8 & 0.8 & 0 & 0 \\ 0.8 & 0 & 0.8 & 0 & 0 \\ 0.8 & 0.8 & 0 & 0.1 & 0 \\ 0 & 0 & 0.1 & 0 & 0.9 \\ 0 & 0 & 0 & 0.9 & 0 \end{pmatrix} W= 00.80.8000.800.8000.80.800.10000.100.90000.90
度矩阵
D = diag ( 1.6 , 1.6 , 1.7 , 1 , 0.9 ) D = \text{diag}(1.6, 1.6, 1.7, 1, 0.9) D=diag(1.6,1.6,1.7,1,0.9)
拉普拉斯矩阵
L = ( 1.6 − 0.8 − 0.8 − 0.8 1.6 − 0.8 − 0.1 − 0.8 − 0.8 1.7 − 0.9 − 0.1 1 − 0.9 − 0.9 0.9 ) L = \begin{pmatrix} 1.6 & -0.8 & -0.8 \\ -0.8 & 1.6 & -0.8 & -0.1 \\ -0.8 & -0.8 & 1.7 & -0.9 \\ -0.1 & 1 & -0.9 \\ -0.9 & 0.9 \end{pmatrix} L= 1.6−0.8−0.8−0.1−0.9−0.81.6−0.810.9−0.8−0.81.7−0.9−0.1−0.9
随机游走拉普拉斯矩阵
L r m = ( 1 − 0.5 − 0.5 − 0.5 1 − 0.5 − 0.4706 − 0.4706 1 − 0.0588 0 − 0.1 1 − 0.9 − 1 1 ) L_{rm} = \begin{pmatrix} 1 & -0.5 & -0.5 \\ -0.5 & 1 & -0.5 \\ -0.4706 & -0.4706 & 1 & -0.0588 & 0 \\ -0.1 & 1 & -0.9 \\ -1 & 1 \end{pmatrix} Lrm= 1−0.5−0.4706−0.1−1−0.51−0.470611−0.5−0.51−0.9−0.05880
特征值为: 0 < 0.0693 < 1.4773 < 1.5 < 1.9534 0 < 0.0693 < 1.4773 < 1.5 < 1.9534 0<0.0693<1.4773<1.5<1.9534
第二小特征值(0.0693)对应的特征向量为
v ≈ ( − 0.3923 − 0.3923 − 0.3379 0.9307 1 ) , eigenvalue λ 3 ≈ 0.0693 v \approx \begin{pmatrix} -0.3923 \\ -0.3923 \\ -0.3379 \\ 0.9307 \\ 1 \end{pmatrix}, \text{eigenvalue } \lambda_3 \approx 0.0693 v≈ −0.3923−0.3923−0.33790.93071 ,eigenvalue λ3≈0.0693
(14)构建 D ′ > 1 D' > 1 D′>1特征映射
我们用 N × D ′ N \times D' N×D′矩阵 Z = ( z 1 , z 2 , . . . , z N ) T Z = (z_1, z_2, ..., z_N)^T Z=(z1,z2,...,zN)T表示 D ′ D' D′维嵌入后的表达
注意 z i z_i zi是 x i x_i xi在嵌入空间的 D ′ D' D′维表示
需要最小化的目标函数如下
1 2 ∑ i , j = 1 N ∣ ∣ z i − z j ∣ ∣ 2 w i j \frac{1}{2} \sum_{i,j=1}^{N} ||z_i - z_j||^2 w_{ij} 21i,j=1∑N∣∣zi−zj∣∣2wij
(15)目标函数
我们定义目标函数如下:
1 2 ∑ i = 1 N ∑ j = 1 N ∣ ∣ z i − z j ∣ ∣ 2 w i j = 1 2 ∑ i ∑ j ( z i T z i − 2 z i T z j + z j T z j ) w i j \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} ||z_i - z_j||^2 w_{ij} = \frac{1}{2} \sum_{i} \sum_{j} (z_i^T z_i - 2z_i^T z_j + z_j^T z_j) w_{ij} 21i=1∑Nj=1∑N∣∣zi−zj∣∣2wij=21i∑j∑(ziTzi−2ziTzj+zjTzj)wij
这可以进一步简化为:
= ∑ i = 1 N ( ∑ j = 1 N w i j ) z i T z i − ∑ i ∑ j z i T z j w i j = \sum_{i=1}^{N} \left( \sum_{j=1}^{N} w_{ij} \right) z_i^T z_i - \sum_{i} \sum_{j} z_i^T z_j w_{ij} =i=1∑N(j=1∑Nwij)ziTzi−i∑j∑ziTzjwij
进一步整理得到:
= ∑ i = 1 N d i z i T z i − ∑ i ∑ j z i T z j w i j = \sum_{i=1}^{N} d_i z_i^T z_i - \sum_{i} \sum_{j} z_i^T z_j w_{ij} =i=1∑NdiziTzi−i∑j∑ziTzjwij
其中 Z = ( z 1 , z 2 , . . . , z N ) T Z = (z_1, z_2, ..., z_N)^T Z=(z1,z2,...,zN)T, Z T = ( z 1 , z 2 , . . . , z N ) Z^T = (z_1, z_2, ..., z_N) ZT=(z1,z2,...,zN),最终可以表示为:
= tr ( Z T D Z ) − tr ( Z T W Z ) = \text{tr}(Z^T DZ) - \text{tr}(Z^T WZ) =tr(ZTDZ)−tr(ZTWZ)
最终可以表示为:
= tr ( Z T L Z ) = \text{tr}(Z^T LZ) =tr(ZTLZ)
最小化的问题可以被写成如下形式:
min Z tr ( Z T L Z ) s.t. Z T D Z = I , Z T D I = 0. \min_Z \text{tr}(Z^T LZ) \quad \text{s.t.} \quad Z^T DZ = I, \quad Z^T DI = 0. Zmintr(ZTLZ)s.t.ZTDZ=I,ZTDI=0.
令矩阵 Λ \Lambda Λ为拉格朗日乘子 λ i \lambda_i λi组成的对角矩阵,构造拉格朗日函数:
L = tr ( Z T L Z ) − tr ( Λ ( Z T D Z − I ) ) L = \text{tr}(Z^T LZ) - \text{tr} \left( \Lambda (Z^T DZ - I) \right) L=tr(ZTLZ)−tr(Λ(ZTDZ−I))
拉格朗日函数对 Z Z Z求偏导并等于0,得到:
∂ L ∂ Z = ( L + L T ) Z − ( D Z Λ + D T Z Λ T ) = 2 L Z − 2 D Z Λ = 0 \frac{\partial L}{\partial Z} = (L + L^T)Z - (DZ\Lambda + D^TZ\Lambda^T) = 2LZ - 2DZ\Lambda = 0 ∂Z∂L=(L+LT)Z−(DZΛ+DTZΛT)=2LZ−2DZΛ=0
从而得到:
L Z = D Z Λ LZ = DZ\Lambda LZ=DZΛ
优化问题被写成: L Z = D Z Λ LZ = DZ\Lambda LZ=DZΛ,即 D − 1 L Z = Z Λ D^{-1}LZ = Z\Lambda D−1LZ=ZΛ
计算随机游走拉普拉斯矩阵 D − 1 L D^{-1}L D−1L的特征值和特征向量
最小非零特征值所对应的特征向量 v k v_k vk,组成 D ′ D' D′维的嵌入矩阵
Z = ( v 2 , v 3 , . . . , v D ′ + 1 ) Z = (v_2, v_3, ..., v_{D'+1}) Z=(v2,v3,...,vD′+1)
Z Z Z的每一行对应一个样本的嵌入向量。
目标函数 tr ( Z T L Z ) = tr ( Z T D Z Λ ) = tr ( Z T D Z Λ ) = tr ( Λ ) = ∑ i = 1 N λ i \text{tr}(Z^T LZ) = \text{tr}(Z^T DZ\Lambda) = \text{tr}(Z^T DZ\Lambda) = \text{tr}(\Lambda) = \sum_{i=1}^{N} \lambda_i tr(ZTLZ)=tr(ZTDZΛ)=tr(ZTDZΛ)=tr(Λ)=∑i=1Nλi
目标函数 tr ( Z T L Z ) \text{tr}(Z^T LZ) tr(ZTLZ)取极小值,对应最小特征值 λ i \lambda_i λi之和。
(16)例:拉普拉斯特征映射
下图展示了在瑞士卷上的2000个随机数据点的拉普拉斯特征映射:
不同参数 t t t和 N N N的组合可以得到不同的嵌入效果。当 N N N的值很小时,不同的 t t t可以相似的表示。当 N N N较大时,较小的 t t t能得到更好的表示。
权重矩阵定义为:
W i j = e − ∣ ∣ x i − x j ∣ ∣ 2 t W_{ij} = e^{-\frac{||x_i - x_j||^2}{t}} Wij=e−t∣∣xi−xj∣∣2
引用:
Belkin, M., Niyogi, P. Laplacian eigenmaps and spectral techniques for embedding and clustering. Advances in neural information processing systems. 2002, 1585–1592.
2、t-NSE
(1)t-SNE 概述
t-SNE(t-distributed Stochastic Neighbor Embedding)是一种非线性降维算法,非常适用于将高维数据降维到2维或者3维,进行可视化。
- 基本思想:在高维空间中相似的数据点,映射到低维空间也相似。
- SNE:将欧氏距离转换为用概率来表示的相似性。
- t-SNE:原始空间中的相似度由高斯联合概率表示,嵌入空间的相似度由“学生t分布”表示。
(2)维数灾难
将数据降到低维后无法保持欧氏距离不变,因此用概率表示相似度。
- 高斯分布中随机采样一些样本点,计算样本点对之间的距离。
- 低维空间中,最短距离很近(接近于0)。
- 高维空间中,最短距离也很远(500维时,接近30)。
(3)SNE:随机邻居嵌入
-
给定高维空间中的 N N N个数据点: x 1 , . . . , x N x_1, ..., x_N x1,...,xN
-
高维空间中的两个数据点 x j x_j xj和 x i x_i xi,之间的相似度用以数据点 x i x_i xi为中心点的高斯分布表示:
p j ∣ i = exp ( − ∥ x j − x i ∥ 2 / 2 σ i 2 ) ∑ k ≠ i exp ( − ∥ x k − x i ∥ 2 / 2 σ i 2 ) p_{j|i} = \frac{\exp(-\|x_j - x_i\|^2 / 2\sigma_i^2)}{\sum_{k \neq i} \exp(-\|x_k - x_i\|^2 / 2\sigma_i^2)} pj∣i=∑k=iexp(−∥xk−xi∥2/2σi2)exp(−∥xj−xi∥2/2σi2)
其中, k ≠ i k \neq i k=i:排除自身。
-
参数 σ i \sigma_i σi为以数据点 x i x_i xi为中心点的高斯分布的标准差。
-
复杂度: O ( N log N ) O(N \log N) O(NlogN)(只计算最邻居之间的相似度)。
(4)对称SNE
-
给定高维空间中的 N N N个数据点: x 1 , . . . , x N x_1, ..., x_N x1,...,xN
-
高维空间中的两个数据点 x j x_j xj和 x i x_i xi,之间的相似度用以数据点 x i x_i xi为中心点的高斯分布表示:
p j ∣ i = exp ( − ∥ x j − x i ∥ 2 / 2 σ i 2 ) ∑ k ≠ i exp ( − ∥ x k − x i ∥ 2 / 2 σ i 2 ) p_{j|i} = \frac{\exp(-\|x_j - x_i\|^2 / 2\sigma_i^2)}{\sum_{k \neq i} \exp(-\|x_k - x_i\|^2 / 2\sigma_i^2)} pj∣i=∑k=iexp(−∥xk−xi∥2/2σi2)exp(−∥xj−xi∥2/2σi2)
-
数据点 x j x_j xj和 x i x_i xi之间的相似度用联合分布表示:
p i , j = p j ∣ i + p i ∣ j 2 N p_{i,j} = \frac{p_{j|i} + p_{i|j}}{2N} pi,j=2Npj∣i+pi∣j
(5)参数 σ i \sigma_i σi与困惑度(Perplexity)
在高维空间中,两个数据点 x j x_j xj和 x i x_i xi之间的相似度用以数据点 x i x_i xi为中心点的高斯分布表示:
p j ∣ i = exp ( − ∥ x j − x i ∥ 2 / 2 σ i 2 ) ∑ k ≠ i exp ( − ∥ x k − x i ∥ 2 / 2 σ i 2 ) p_{j|i} = \frac{\exp(-\|x_j - x_i\|^2 / 2\sigma_i^2)}{\sum_{k \neq i} \exp(-\|x_k - x_i\|^2 / 2\sigma_i^2)} pj∣i=∑k=iexp(−∥xk−xi∥2/2σi2)exp(−∥xj−xi∥2/2σi2)
由于数据分布稠密不均,对每个数据点确定参数 σ i \sigma_i σi很困难,T-SNE实现时采用参数困惑度(perplexity)。
困惑度越大,熵越大,分布的形状相对平坦, σ i \sigma_i σi越大。对同一个点, σ i \sigma_i σi增大,会增加该点的近邻的数目。因此困惑度大致表示每个点有效的邻居数目。
困惑度定义为:
perplexity ( p i ) = 2 H ( p ) = 2 − ∑ j p i j log 2 ( p i j ) \text{perplexity}(p_i) = 2^{H(p)} = 2^{-\sum_j p_{ij} \log_2(p_{ij})} perplexity(pi)=2H(p)=2−∑jpijlog2(pij)
(6)困惑度的应用
困惑度为模型的超参数,大致表示每个点有效的邻居数目。
- 原始论文建议困惑度设为5-50。
- 密集区域 perplexity ( p i ) \text{perplexity}(p_i) perplexity(pi)小, σ i \sigma_i σi小。
- 通常固定困惑度,用二分法或其他方法找到 σ i \sigma_i σi。
(7)t-SNE
1、高维到低维映射
将高维映射到低维空间,得到对应点为: z 1 , . . . , z N z_1, ..., z_N z1,...,zN。
低维空间中的两个对应数据点 z j z_j zj和 z i z_i zi之间的相似度自由度为1的t分布重新定义表示:
q i , j = ( 1 + ∥ z j − z i ∥ 2 ) − 1 ∑ k ≠ l ( 1 + ∥ z k − z l ∥ 2 ) − 1 q_{i,j} = \frac{(1 + \|z_j - z_i\|^2)^{-1}}{\sum_{k \neq l} (1 + \|z_k - z_l\|^2)^{-1}} qi,j=∑k=l(1+∥zk−zl∥2)−1(1+∥zj−zi∥2)−1
其中, k ≠ l k \neq l k=l:排除所有自身项。
2、目标函数
若 z j z_j zj和 z i z_i zi真实反映了高维数据点 x j x_j xj和 x i x_i xi之间的关系,那么概率 p i j p_{ij} pij与 q i j q_{ij} qij应该完全相等。
用KL散度(Kullback-Leibler Divergence)衡量两个分布之间的距离。
T-SNE的目标函数就是对所有数据点,最小化KL散度:
C = K L ( p ∥ q ) = ∑ i ∑ j p i , j log p i , j q i , j C = KL(p \parallel q) = \sum_i \sum_j p_{i,j} \log \frac{p_{i,j}}{q_{i,j}} C=KL(p∥q)=i∑j∑pi,jlogqi,jpi,j
注意:KL散度不是凸函数,具有不同初始值的多次运行将收敛于KL散度函数的局部最小值中,会获得不同的结果。因此,可尝试不同的随机数种子,并选择具有最低KL散度值的结果。
(8)为什么使用t分布?
1、t分布与正态分布的比较
2、拥挤问题
拥挤问题:不同的点挤在一起,无法区分。
- 例:一个以数据点 x i x_i xi为中心,半径为 r r r的 m m m维球,其体积是按 r m r^m rm增长的,假设数据点是在 m m m维球中均匀分布的,计算其他数据点与 x i x_i xi的距离。
随着维度的增大,大部分数据点都聚集在球的表面附近,与点 x i x_i xi的距离分布极不均衡。如果直接将这种距离关系保留到低维,会出现拥挤问题。t分布更适合表示长尾现象,允许两点的距离较远(概率比较大)。
3、更长尾分布的效果
更长尾分布会找到更细节的结构。
4、概率距离图
对高维空间中距离小的点对,当概率 q i , j = p i , j q_{i,j} = p_{i,j} qi,j=pi,j,在低维空间中距离更小,相似样本聚得更紧致。对高维空间中距离大的点对,当概率 q i , j = p i , j q_{i,j} = p_{i,j} qi,j=pi,j,在低维空间中距离更大,不相似样本离得更远。
(9)目标函数
1、KL散度(Kullback-Leibler Divergence)
KL散度用于衡量两个概率分布之间的差异:
J = K L ( p ∥ q ) = ∑ i ∑ j p i , j log p i , j q i , j J = KL(p \parallel q) = \sum_i \sum_j p_{i,j} \log \frac{p_{i,j}}{q_{i,j}} J=KL(p∥q)=i∑j∑pi,jlogqi,jpi,j
KL散度具有不对称性:在低维映射中不同的距离对应的惩罚权重不同。
- 当高维空间中两个点的距离较近, p i , j p_{i,j} pi,j较大;如果在低维空间中对应两个点的距离较远, q i , j q_{i,j} qi,j较小,则此时代价很大:例如: p i , j = 0.8 p_{i,j} = 0.8 pi,j=0.8, q i , j = 0.2 q_{i,j} = 0.2 qi,j=0.2, J = 1.11 J = 1.11 J=1.11;
- 当高维空间中两个点的距离较远, p i , j p_{i,j} pi,j较小;如果在低维空间中对应两个点的距离较近, q i , j q_{i,j} qi,j较大,则此时代价较小:例如: p i , j = 0.2 p_{i,j} = 0.2 pi,j=0.2, q i , j = 0.8 q_{i,j} = 0.8 qi,j=0.8, J = 0.277 J = 0.277 J=0.277。
- 更关注局部结构。
(10)目标函数的优化求解
1、目标函数
目标函数为:
q i , j = ( 1 + ∥ z j − z i ∥ 2 ) − 1 ∑ j ≠ i ( 1 + ∥ z j ′ − z i ∥ 2 ) − 1 = ( 1 + ∥ z j − z i ∥ 2 ) − 1 Z q_{i,j} = \frac{(1 + \|z_j - z_i\|^2)^{-1}}{\sum_{j \neq i} (1 + \|z_{j'} - z_i\|^2)^{-1}} = \frac{(1 + \|z_j - z_i\|^2)^{-1}}{Z} qi,j=∑j=i(1+∥zj′−zi∥2)−1(1+∥zj−zi∥2)−1=Z(1+∥zj−zi∥2)−1
其中, Z Z Z为归一化常数。
目标函数为:
J = K L ( p ∥ q ) = ∑ i ∑ j p i , j log p i , j q i , j J = KL(p \parallel q) = \sum_i \sum_j p_{i,j} \log \frac{p_{i,j}}{q_{i,j}} J=KL(p∥q)=i∑j∑pi,jlogqi,jpi,j
可以重写为:
= − ∑ i ∑ j p i , j log q i , j = -\sum_i \sum_j p_{i,j} \log q_{i,j} =−i∑j∑pi,jlogqi,j
= − ∑ i ∑ j p i , j log ( 1 + ∥ z j − z i ∥ 2 ) − 1 + p i , j ∑ i ∑ j log Z = -\sum_i \sum_j p_{i,j} \log (1 + \|z_j - z_i\|^2)^{-1} + p_{i,j} \sum_i \sum_j \log Z =−i∑j∑pi,jlog(1+∥zj−zi∥2)−1+pi,ji∑j∑logZ
吸引力:邻居结点相互吸引;排斥力:所有结点越远越好。
2、梯度下降法
目标函数优化求解可采用梯度下降法。
梯度:
∂ J ∂ z i = 4 ∑ j ( p i , j − q i , j ) ( 1 + ∥ z i − z j ∥ 2 ) − 1 ( z i − z j ) \frac{\partial J}{\partial z_i} = 4 \sum_j (p_{i,j} - q_{i,j}) \left(1 + \|z_i - z_j\|^2\right)^{-1} (z_i - z_j) ∂zi∂J=4j∑(pi,j−qi,j)(1+∥zi−zj∥2)−1(zi−zj)
其中, ( p i , j − q i , j ) (p_{i,j} - q_{i,j}) (pi,j−qi,j)表示两个点之间的压力或拉力, ( z i − z j ) (z_i - z_j) (zi−zj)表示两个点之间的弹簧。
(11)t-SNE超参数 σ i \sigma_i σi的影响
1、混淆度(Perplexity):每个点的局部邻居的数目
混淆度(Perplexity)是每个点的局部邻居的数目,局部结构和全局结构之间折中。
- 原始输入,每个簇50个点:
- 原始输入,每个簇200个点:
通常很少使用太小的混淆度。混淆度太大也不现实,计算费用更高。
2、高维空间中的高斯分布用基于KNN的均匀分布代替
K = Perplexity / 2 K = \text{Perplexity} / 2 K=Perplexity/2
(12)t-SNE的缺点
1、时间、空间复杂度为 O ( N 2 ) O(N^2) O(N2)
- 百万量级的数据需要几小时,对于PCA可能只需要几分钟。
- Barnes-Hut近似算法只限于二维或三维嵌入(复杂度为 O ( N log N ) O(N \log N) O(NlogN),sklearn中参数method=‘barnes_hut’)。
- 由于目标函数非凸,算法执行的结果是随机的,可多次运行选取最好的结果。
- 全局结构未明确保留,可通过PCA初始化来缓解(sklearn中参数init=‘pca’)。
- 主要用于可视化,很难用于其他目的,如对测试集的降维。
(13)t-SNE中簇之间的距离并不表示相似度
0和1的簇距离比较近,0和7的簇距离较远,但这并不说明0和1的相似度高于0和7的相似度。
t-SNE可视化结果中不同簇之间的距离没有意义,因为对t分布来说,超出一定距离范围以后,其相似度都很小。
t-SNE更关心的是学习维持局部结构,簇间的距离并不能说明什么。
3、UMAP
(1)均匀流形逼近和投影(Uniform Manifold Approximation and Projection,UMAP)
UMAP是一种用于降维和可视化的算法,与t-SNE类似,但不仅可用于可视化,还可以降维。
- https://github.com/lmcinnes/umap
- 更快:随机梯度下降,可处理更多样本。
- 对全局结构保持得更好。
- 可对测试样本生成低维表示。
- 方便与深度学习相结合,从而使得非参数的UMAP → 参数UMAP(可以对新的数据进行降维)。
(2)UMAP基本思想
1、基本思想
假设数据样本均匀(Uniform)分布在拓扑空间(Manifold)中,可以从这些有限数据样本中近似(Approximation)并映射(Projection)到低维空间。
2、UMAP两个主要步骤:
- 构造高维空间中的流形结构。
- 找到该流形的低维表示。
(3)高维空间的流形结构
1、寻找K近邻
忽略很多高能的数学细节:黎曼几何、单纯形、单纯复形、…
- 寻找K近邻(如采用Nearest-Neighbor-Descent算法)。
- 根据K近邻,构建相似图。
假设数据点在流形上均匀分布:单位距离延伸到该点的第K个近邻(K个邻居)。
- K越小:更准确地捕捉到黎曼度量的细节结构和变化;
- K越大:估计将基于更大的区域。
∑ j = 1 K p j ∣ i = log 2 K \sum_{j=1}^{K} p_{j|i} = \log_2 K j=1∑Kpj∣i=log2K
对稀疏区域收缩,对密集区域拉伸。
(4)边的权重
1、权重计算
每个点都到其K个近邻有一条边,其权重可视为边“存在”的概率。
- 假设流形是局部连接的,每个数据点至少和一个最近邻相连,即每个点肯定和其最近邻该位于我们最终可视化的同一个簇中,因此该数据点与其最近邻的权重为1。
- 令 x i x_i xi到其最近邻的距离为 ρ i \rho_i ρi,
- x i x_i xi到对其他近邻点 x j x_j xj的边的概率为:
p j ∣ i = exp ( ( − d ( x i , x j ) − ρ i ) / σ i ) p_{j|i} = \exp((-d(x_i, x_j) - \rho_i) / \sigma_i) pj∣i=exp((−d(xi,xj)−ρi)/σi)
图片来自:https://towardsdatascience.com/umap-dimensionality-reductionan-incredibly-robust-machine-learning-algorithm-b5acb01de568
(5)局部连接
1、局部连接性
分布散得更宽。
(6)对称的边的权重
1、边的权重计算
如果 x i x_i xi到点 x j x_j xj的边的概率为 p j ∣ i p_{j|i} pj∣i, x j x_j xj到对 x i x_i xi的边的概率为 p i ∣ j p_{i|j} pi∣j,则 x i x_i xi与 x j x_j xj至少存在一条边的概率为1减去不存在边的概率:
p i , j = 1 − ( 1 − p j ∣ i ) ( 1 − p i ∣ j ) p_{i,j} = 1 - (1 - p_{j|i})(1 - p_{i|j}) pi,j=1−(1−pj∣i)(1−pi∣j)
可以进一步简化为:
p i , j = 1 − ( p j ∣ i + p i ∣ j ) − p j ∣ i p i ∣ j p_{i,j} = 1 - (p_{j|i} + p_{i|j}) - p_{j|i}p_{i|j} pi,j=1−(pj∣i+pi∣j)−pj∣ipi∣j
(7)低维表示
1、参数min_dist
参数min_dist:在低维空间中两个点的最近距离,确定低维空间中点的聚集程度。
低维空间中的两个对应数据点 z j z_j zj和 z i z_i zi之间的相似度:
q i , j = ( 1 + a ∥ z j − z i ∥ 2 b ) − 1 q_{i,j} = \left(1 + a\|z_j - z_i\|^{2b}\right)^{-1} qi,j=(1+a∥zj−zi∥2b)−1
参数 a a a, b b b根据参数min_dist值确定,最小二乘:
( 1 + a ∥ z j − z i ∥ 2 b ) − 1 = { 1 ∥ z j − z i ∥ ≤ min_dist e − ∥ z j − z i ∥ − min_dist ∥ z j − z i ∥ > min_dist \left(1 + a\|z_j - z_i\|^{2b}\right)^{-1} = \begin{cases} 1 & \|z_j - z_i\| \leq \text{min\_dist} \\ e^{-\|z_j - z_i\| - \text{min\_dist}} & \|z_j - z_i\| > \text{min\_dist} \end{cases} (1+a∥zj−zi∥2b)−1={1e−∥zj−zi∥−min_dist∥zj−zi∥≤min_dist∥zj−zi∥>min_dist
默认值: a = 1.577 a=1.577 a=1.577, b = 0.8951 b=0.8951 b=0.8951。
(8)目标函数
1、交叉熵
目标函数:交叉熵
J = ∑ e i , j ∈ E p i , j log p i , j q i , j + ( 1 − p i , j ) log ( 1 − p i , j ) ( 1 − q i , j ) J = \sum_{e_{i,j} \in \mathcal{E}} p_{i,j} \log \frac{p_{i,j}}{q_{i,j}} + (1 - p_{i,j}) \log \frac{(1 - p_{i,j})}{(1 - q_{i,j})} J=ei,j∈E∑pi,jlogqi,jpi,j+(1−pi,j)log(1−qi,j)(1−pi,j)
可以重写为:
= − ∑ e i , j ∈ E p i , j log q i , j + ( 1 − p i , j ) log ( 1 − q i , j ) = -\sum_{e_{i,j} \in \mathcal{E}} p_{i,j} \log q_{i,j} + (1 - p_{i,j}) \log (1 - q_{i,j}) =−ei,j∈E∑pi,jlogqi,j+(1−pi,j)log(1−qi,j)
优化:随机梯度下降
初始化:拉普拉斯特征映射
2、安装UMAP
3、安装命令
使用pip安装UMAP:
pip install -U fiftyone scikit-learn umap-learn
五、总结
1、降维方法总结
降维:将原始高维数据映射到低维空间: z = f ( x ) z = f(x) z=f(x)
- 基于重构误差最小的降维
- 线性:PCA、NMF,ICA
- 非线性:KPCA、自编码器
- 基于全局结构保持的降维
- 线性:MDS
- 非线性:Isomap
- 基于局部结构保持的降维
- 非线性:LLE、Laplacian eigenmap,T-SNE、UMAP
2、sklearn中的降维方法
(1)降维方法列表
-
2.5. Decomposing signals in components (matrix factorization problems)
- 2.5.1. Principal component analysis (PCA)
- 2.5.2. Kernel Principal Component Analysis (kPCA)
- 2.5.3. Truncated singular value decomposition and latent semantic analysis
- 2.5.4. Dictionary Learning
- 2.5.5. Factor Analysis
- 2.5.6. Independent component analysis (ICA)
- 2.5.7. Non-negative matrix factorization (NMF or NNMF)
- 2.5.8. Latent Dirichlet Allocation (LDA)
-
2.2. Manifold learning
- 2.2.1. Introduction
- 2.2.2. Isomap
- 2.2.3. Locally Linear Embedding
- 2.2.4. Modified Locally Linear Embedding
- 2.2.5. Hessian Eigenmapping
- 2.2.6. Spectral Embedding
- 2.2.7. Local Tangent Space Alignment
- 2.2.8. Multi-dimensional Scaling (MDS)
- 2.2.9. t-distributed Stochastic Neighbor Embedding (t-SNE)
- 2.2.10. Tips on practical use
(3)MNIST数据集上的降维结果
六、参考文献
1、参考文献列表
- 讲义
- 卿来云 黄庆明,机器学习 从原理到应用,第10章
- 周志华,机器学习,第10章
- T-NSE:How to Use t-SNE Effectively
- https://distill.pub/2016/misread-tsne/
- UMAP:
- 强烈推荐:How Exactly UMAP Works: (T-NSE和UMAP从头开始实现代码)
- https://github.com/NikolayOskolkov/HowUMAPWorks
- UMAP官方文档:https://umap-learn.readthedocs.io/en/latest/
- 作者的报告:https://www.youtube.com/watch?v=nq6iPZVUxZU
- 强烈推荐:How Exactly UMAP Works: (T-NSE和UMAP从头开始实现代码)