降维(DimensionalityReduction)基础知识2

文章目录

  • 五、基于局部结构保持的降维
    • 1、Laplacian Eigenmaps(拉普拉斯特征映射)
      • (1)邻接矩阵
      • (2)图论基础
      • (3)Laplace算子
        • 1、散度(Divergence)
        • 2、拉普拉斯算子
        • 3、二维离散拉普拉斯算子
        • 4、拉普拉斯算子 → 拉普拉斯矩阵
      • (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
    • 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,...,xNRD,构造相似性图,表示结点之间的邻接关系:

  - ε \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(σ2xixj2)
其中 σ 2 ∈ R + \sigma^2 \in \mathbb{R}^+ σ2R+

   σ \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=1N xixi(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=1Nwij

  - 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= d1000d2000dN
在这里插入图片描述

(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)=(xf,yf,zf)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)=xv1+yv2+zv3
  物理上,散度的意义是场的有源性。当 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))=x22f+y22f+z22f

  离散形式:
∂ f ∂ x = f ( x + 1 ) − f ( x ) \frac{\partial f}{\partial x} = f(x+1) - f(x) xf=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) x22f=f(x)f(x1)=f(x+1)f(x)[f(x)f(x1)]=f(x+1)+f(x1)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=x22f+y22f
= 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(x1,y)2f(x,y)+f(x,y+1)+f(x,y1)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(x1,y)+f(x,y+1)+f(x,y1)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=jNiwij(fifj)
  假设节点 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=jNiwij(fifj)=fijNiwijjNiwijfj

  其中:
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=jNiwij=j=1Nwij表示节点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 = d1f1w1:fd2f2w2:fdNfNwN:f = d1000d2000dN f w1:w2:wN: f
令邻接矩阵 W W W

L = D − W 表示图的拉普拉斯矩阵 L = D - W \quad \text{表示图的拉普拉斯矩阵} L=DW表示图的拉普拉斯矩阵
= ( D − W ) f = L f = (D - W) \mathbf{f} = L \mathbf{f} =(DW)f=Lf

(4)图论基础(续)

1、Laplace矩阵 L L L L = D − W L = D - W L=DW

  对于任意的向量 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=1Nwi,j(fifj)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=fTDffTWf
= ∑ 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=1Ndifi2i,j=0Nwi,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=1Ndifi22i,j=1Nwi,jfifj+j=1Ndjfj2)
= 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=1Nwi,j(fifj)20
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=DW

  令 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=DvWv= d1d2dN d1d2dN = 000 =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=1Nwij(fifj)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>0i,j=1Nwij(fifj)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= L1L2Lk

每个块 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 X1X2X3X4X5

邻接矩阵、度矩阵和拉普拉斯矩阵

  邻接矩阵 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=DW
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= 1100011000001100012100011
示例图
在这里插入图片描述

拉普拉斯矩阵 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=1Nwi,j(fifj)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=D1/2LD1/2

2、随机游走 Laplace 矩阵

  随机游走 Laplace 矩阵: L rm = D − 1 L = I − D − 1 W L_{\text{rm}} = D^{-1} L = I - D^{-1} W Lrm=D1L=ID1W

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=21i,j=1Nwi,j(di fidj fj)2

  2. 如果 ( λ , v ) (\lambda, \mathbf{v}) (λ,v) L rm L_{\text{rm}} Lrm 的特征值和特征向量,则 ( λ , D − 1 / 2 v ) (\lambda, D^{-1/2} \mathbf{v}) (λ,D1/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=1N(zizj)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 (zizj)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=1N(zizj)2wij=21i,j=1Nzi2wij+21i,j=1Nzj2wiji,j=1Nzizjwij
= ∑ 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=1Nzi2dii,j=1Nzizjwij
= ∑ 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=1Nzi(diwij)zj=zT(DW)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(d11dNN),L=DW 是拉普拉斯矩阵。

(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} 21i,j=1N(zizj)2wij,如果所有结点都映射到了同一个位置,也就是所有结点的嵌入向量 z i z_i zi 相同,显然目标函数肯定有最小值 0。但此时嵌入向量不能区分不同的结点,所以这种降维毫无意义。

  为了得到唯一解,我们需要对结点嵌入向量 z i z_i zi 增加一些限制。

  一个最简单的限制:所有结点的嵌入向量能够尽可能地去填充空间,而不是挤在一起。

  1. z T D 1 = 0 \mathbf{z}^{\text{T}} D \mathbf{1} = 0 zTD1=0:均值为 0,平移不变,去除平凡解
  2. 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λ(zTDz1)

  拉格朗日函数对 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 zL=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} D1Lz=λ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} B1 左乘(1)式两端得: B − 1 A x = λ x B^{-1} A \mathbf{x} = \lambda \mathbf{x} B1Ax=λx

  这样可将广义特征值问题转化为矩阵 B − 1 A B^{-1} A B1A 的普通特征值问题。

(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.60.80.80.10.90.81.60.810.90.80.81.70.90.10.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= 10.50.47060.110.510.4706110.50.510.90.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.39230.39230.33790.93071 ,eigenvalue λ30.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=1N∣∣zizj2wij

(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=1Nj=1N∣∣zizj2wij=21ij(ziTzi2ziTzj+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=1N(j=1Nwij)ziTziijziTzjwij
  进一步整理得到:
= ∑ 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=1NdiziTziijziTzjwij
  其中 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(Λ(ZTDZI))
  拉格朗日函数对 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 ZL=(L+LT)Z(DZΛ+DTZΛT)=2LZ2DZΛ=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 D1LZ=ZΛ
  计算随机游走拉普拉斯矩阵 D − 1 L D^{-1}L D1L的特征值和特征向量
  最小非零特征值所对应的特征向量 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=et∣∣xixj2
  引用:
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)} pji=k=iexp(xkxi2/2σi2)exp(xjxi2/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)} pji=k=iexp(xkxi2/2σi2)exp(xjxi2/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=2Npji+pij

(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)} pji=k=iexp(xkxi2/2σi2)exp(xjxi2/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)=2jpijlog2(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+zkzl2)1(1+zjzi2)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(pq)=ijpi,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(pq)=ijpi,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+zjzi2)1(1+zjzi2)1=Z(1+zjzi2)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(pq)=ijpi,jlogqi,jpi,j

  可以重写为:

= − ∑ i ∑ j p i , j log ⁡ q i , j = -\sum_i \sum_j p_{i,j} \log q_{i,j} =ijpi,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 =ijpi,jlog(1+zjzi2)1+pi,jijlogZ

  吸引力:邻居结点相互吸引;排斥力:所有结点越远越好。

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) ziJ=4j(pi,jqi,j)(1+zizj2)1(zizj)

  其中, ( p i , j − q i , j ) (p_{i,j} - q_{i,j}) (pi,jqi,j)表示两个点之间的压力或拉力, ( z i − z j ) (z_i - z_j) (zizj)表示两个点之间的弹簧。

(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两个主要步骤:
  1. 构造高维空间中的流形结构。
  2. 找到该流形的低维表示。

在这里插入图片描述

(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=1Kpji=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) pji=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} pji x j x_j xj到对 x i x_i xi的边的概率为 p i ∣ j p_{i|j} pij,则 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(1pji)(1pij)

  可以进一步简化为:

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(pji+pij)pjipij

在这里插入图片描述

(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+azjzi2b)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+azjzi2b)1={1ezjzimin_distzjzimin_distzjzi>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,jEpi,jlogqi,jpi,j+(1pi,j)log(1qi,j)(1pi,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,jEpi,jlogqi,j+(1pi,j)log(1qi,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网中的物模型是什么意思,在嵌入式软件开发中如何体现?

1. 物模型的概念 物模型&#xff08;Thing Model&#xff09;是物联网中对物理设备或虚拟设备的抽象描述&#xff0c;定义了设备的属性、事件和服务。它是设备与云平台或其他设备之间交互的基础&#xff0c;用于统一描述设备的能力和行为。 1.1 物模型的组成 属性&#xff0…

【蓝桥杯】单片机设计与开发,PWM

一、PWM概述 用来输出特定的模拟电压。 二、PWM的输出 三、例程一&#xff1a;单片机P34引脚输出1kHZ的频率 void Timer0Init(void);unsigned char PWMtt 0;void main(void) {P20XA0;P00X00;P20X80;P00XFF;Timer0Init();EA1;ET01;ET11;while(1);}void Timer0Init(void) //1…

C#中,什么是委托,什么是事件及它们之间的关系

1. 委托&#xff08;Delegate&#xff09; 定义与作用 ‌委托‌是类型安全的函数指针&#xff0c;用于封装方法&#xff0c;支持多播&#xff08;链式调用&#xff09;。‌核心能力‌&#xff1a;将方法作为参数传递或异步回调。 使用场景 回调机制&#xff08;如异步操作完…

从替代到超越,禅道国产化替代解决方案2.0发布!

3月22日&#xff0c;由禅道携手上海惠艾信息科技、麦哲思科技共同举办的禅道・中国行北京站活动圆满落下帷幕。 除深入探究AI赋能研发项目管理外&#xff0c;禅道在活动现场正式发布了《禅道国产化替代解决方案2.0》&#xff0c;助力企业全方位构建自主可控的研发项目管理新体…

【VirtualBox 安装 Ubuntu 22.04】

网上教程良莠不齐&#xff0c;有一个CSDN的教程虽然很全面&#xff0c;但是截图冗余&#xff0c;看蒙了给我&#xff0c;这里记录一个整洁的教程链接。以备后患。 下载安装全流程 UP还在记录生活&#xff0c;看的我好羡慕&#xff0c;呜呜。 [VirtualBox网络配置超全详解]&am…

2025美国网络专线国内服务商推荐

在海外业务竞争加剧的背景下&#xff0c;稳定高效的美国网络专线已成为外贸企业、跨国电商及跨国企业的刚需。面对复杂的国际网络环境和严苛的业务要求&#xff0c;国内服务商Ogcloud凭借其创新的SD-WAN技术架构与全球化网络布局&#xff0c;正成为企业拓展北美市场的优选合作伙…

2.2.2 引入配置文件和定义配置类

本实战通过三种方式实现Spring Boot中的配置加载与管理。首先&#xff0c;通过PropertySource加载自定义配置文件&#xff0c;结合ConfigurationProperties注解将配置文件中的属性绑定到Java类中&#xff0c;实现配置的灵活管理。其次&#xff0c;利用ImportResource加载XML配置…

Django:构建高性能Web应用

引言&#xff1a;为何选择Django&#xff1f; 在当今快速发展的互联网时代&#xff0c;Web应用的开发效率与可维护性成为开发者关注的核心。Django作为一款基于Python的高级Web框架&#xff0c;以其"开箱即用"的特性、强大的ORM系统、优雅的URL路由设计&#xff0c;…

【银河麒麟高级服务器操作系统 】虚拟机运行数据库存储异常现象分析及处理全流程

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…

《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》

简介&#xff1a; “本文为AI开发者揭秘如何在阿里云2核2G轻量级ECS服务器上&#xff0c;通过Ubuntu系统与Ollama框架实现Deepseek模型的高效部署。无需昂贵硬件&#xff0c;手把手教程涵盖环境配置、资源优化及避坑指南&#xff0c;助力初学者用极低成本在云端跑通行业领先的大…

【bug解决】NameError: name ‘fused_act_ext‘ is not defined

问题 使用basicsr库做超分的时候发现NameError: name fused_act_ext is not defined这个问题&#xff0c;一直不断重复的使用pip uninstall basicsr 和 BASICSR_EXTTrue pip install basicsr 发现一直没有执行编译过程&#xff0c;导致一直推理失败 原因 之前已经安装过basi…

Anaconda开始菜单里添加JupyterLab快捷方式

Anaconda开始菜单里添加JupyterLab快捷方式 在 Windows 系统安装 Anaconda 后&#xff0c;发现开始菜单只有 Jupyter Notebook&#xff0c;却找不到Jupyter Lab入口。其实这是因为最新版 Anaconda 默认未预装 Lab 组件&#xff0c;本篇介绍一种添加 Jupyter Lab入口到开始菜单…

【Qt】modbus客户端笔记

Qt 中基于 Modbus 协议的通用客户端学习笔记 一、概述 本客户端利用 Qt 的 QModbusTcpClient 实现与 Modbus 服务器的通信&#xff0c;具备连接、读写寄存器、心跳检测、自动重连等功能&#xff0c;旨在提供一个可靠且易用的 Modbus 客户端框架&#xff0c;方便在不同项目中集…

解决Vmware 运行虚拟机Ubuntu22.04卡顿、终端打字延迟问题

亲测可用 打开虚拟机设置&#xff0c;关闭加速3D图形 &#xff08;应该是显卡驱动的问题&#xff0c;不知道那个版本的驱动不会出现这个问题&#xff0c;所以干脆把加速关了&#xff09;

【网络】Socket套接字

目录 一、端口号 二、初识TCP/UDP协议 三、网络字节序 3.1 概念 3.2 常用API 四、Socket套接字 4.1 概念 4.2 常用API &#xff08;1&#xff09;socket &#xff08;2&#xff09;bind sockaddr结构 &#xff08;3&#xff09;listen &#xff08;4&#xff09;a…

内联函数/函数重载/函数参数缺省

一、内联函数 为了减少函数调用的开销 在函数定义前加“inline”关键字&#xff0c;即可定义内联函数 二、函数重载 1.名字相同 2.参数个数或者参数类型不同 编译器根据调用语句实参的个数和类型判断应该调用哪个函数 三、函数的缺省参数 定义函数的时候可以让最右边的连…

基于神经网络的文本分类的设计与实现

标题:基于神经网络的文本分类的设计与实现 内容:1.摘要 在信息爆炸的时代&#xff0c;大量文本数据的分类处理变得至关重要。本文旨在设计并实现一种基于神经网络的文本分类系统。通过构建合适的神经网络模型&#xff0c;采用公开的文本数据集进行训练和测试。在实验中&#x…

Baklib内容中台的核心定位是什么?

构建企业级知识中枢 在数字化转型趋势下&#xff0c;Baklib内容中台通过构建企业级知识中枢&#xff0c;实现了从碎片化信息到体系化资产的跃迁。其核心能力体现为对多源内容的智能聚合与结构化存储&#xff0c;支持从文档、图片到视频的全格式整合&#xff0c;并通过语义标签…

蓝耘平台API深度剖析:如何高效实现AI应用联动

目录 一、蓝耘平台简介 1.1 蓝耘通义大模型 1.2 蓝耘云计算资源 1.3 蓝耘API与微服务 二、 蓝耘平台应用联动场景 2.1 数据采集与预处理联动 2.2 模型推理与后端服务联动 2.3 跨平台联动 三、蓝耘平台注册体验功能 3.1 注册 3.2 体验蓝耘MaaS平台如何使用海螺AI生成视频…

《大语言模型赋能证券业开发安全:海云安技术方案在上交所专刊发表》

近日&#xff0c;海云安《大语言模型在证券业开发安全领域的探索与实践》技术方案经过上海证券交易所&#xff08;以下简称”上交所“&#xff09;行业专家评审后正式收录于《交易技术前沿——网络安全专刊&#xff08;2025年第1期 总第61期&#xff09;》。 证券信息技术研究…