当前位置: 代码迷 >> 综合 >> 笔记:ML-LHY-15: Unsupervised Learning - Neighbor Embedding
  详细解决方案

笔记:ML-LHY-15: Unsupervised Learning - Neighbor Embedding

热度:15   发布时间:2024-02-28 16:10:09.0

介绍了3中非线性降维方法
LLE基于相邻点的关系,然后在低维空间保持这种关系
Laplacian Eigenmaps基于图结构的关系,然后在低维空间保持这种关系
t-SNE基于分布的关系,然后在低维空间保持这种关系,巧妙利用不同相似度函数实现拉开不同类
视频 pdf

Manifold Learning非线性降维

在之前的Unsupervised Learning - Linear Methods说到PCA是没法做非线性变换的,比如下面:
在这里插入图片描述
通过降维,可以使用欧氏距离计算距离。比如左边在高维空间蓝色点和红色点更近,但是在右边的2维屏幕上是蓝色点和黄色点更近。而在做数据可视化时,我们往往需要的是右边的低维度便于观察彼此距离和进行聚类。

Locally Linear Embedding (LLE)

在这里插入图片描述
xjx^{j}xjxix^{i}xi相邻的点,它们之间的关系用wijw_{i j}wij?表示,则我们希望下式尽可能小:
∑i∥xi?∑jwijxj∥2\sum_{i}\left\|x^{i}-\sum_{j} w_{i j} x^{j}\right\|_{2} i??xi?j?wij?xj?2?
所以得到的wijw_{i j}wij?就表示一组权重,xjx^{j}xj是周围的点和这个权重wijw_{i j}wij?来表示xix^{i}xi

保持wijw_{i j}wij?不变

在这里插入图片描述
在低维度的空间找一组zjz^{j}zj和这个权重wijw_{i j}wij?来表示ziz^{i}zi

∑i∥zi?∑jwijzj∥2\sum_{i}\left\|z^{i}-\sum_{j} w_{i j} z^{j}\right\|_{2} i??zi?j?wij?zj?2?

所以就实现从高维转低维。不是很懂~~,了解一下。

对k的选择比较敏感:
在这里插入图片描述
太近太远都不是很好的关系。

Laplacian Eigenmaps

在Semi-supervised提到Smoothness Assumption:
如果2点之间通过高密度路径(hightdensity path连通,则认为y1和y2是接近的在这里插入图片描述
当然,可以在基于图的结构上计算近似距离。

相似度s(xi,xj)s\left(x^{i}, x^{j}\right)s(xi,xj)计算:
s(xi,xj)=exp?(?γ∥xi?xj∥2)s\left(x^{i}, x^{j}\right)=\exp \left(-\gamma\left\|x^{i}-x^{j}\right\|^{2}\right)s(xi,xj)=exp(?γ?xi?xj?2)
然后wi,j=s(xi,xj)w_{i, j} =s\left(x^{i}, x^{j}\right)wi,j?=s(xi,xj),和LLE思想类似,求得两点之间关系wi,jw_{i, j}wi,j?后,在低维空间找一个点zjz^{j}zj,我们希望S尽可能小的情况下找到对应的ziz^{i}zi,从而实现降维。
但是和在半监督学习不同的是,zj,ziz^{j}, z^{i}zj,zi都没有标签(在半监督学习中可能通过神经网络求得一部分),所以如果zi=zj=0z^{i}=z^{j}=\mathbf{0}zi=zj=0那么S就一定是0,是会存在问题的。所以需要对z添加约束。

我们希望低维空间是M维的,而这些点组成的矩阵求秩也应该要为M。
Span?{z1,z2,…zN}=RM\operatorname{Span}\left\{z^{1}, z^{2}, \ldots z^{N}\right\}=R^{M} Span{ z1,z2,zN}=RM

T-distributed Stochastic Neighbor Embedding (t-SNE)

单纯使用LLE的方法能够使得同类聚集,但是缺没法使不同类分开,比如下面:
在这里插入图片描述

t-SNE目的就是为了解决这个。
t-SNE做法:
求点xix_ixi?xjx_jxj?的归一化距离(做归一化的目的是在不同维空间进行比较):
P(xj∣xi)=S(xi,xj)∑k≠iS(xi,xk)P\left(x^{j} \mid x^{i}\right)=\frac{S\left(x^{i}, x^{j}\right)}{\sum_{k \neq i} S\left(x^{i}, x^{k}\right)} P(xjxi)=k??=i?S(xi,xk)S(xi,xj)?
同样的,在低维空间也可求ziz_izi?zjz_jzj?的归一化距离:
Q(zj∣zi)=S′(zi,zj)∑k≠iS′(zi,zk)Q\left(z^{j} \mid z^{i}\right)=\frac{S^{\prime}\left(z^{i}, z^{j}\right)}{\sum_{k \neq i} S^{\prime}\left(z^{i}, z^{k}\right)} Q(zjzi)=k??=i?S(zi,zk)S(zi,zj)?
我们希望一个点的周围分布在降维后保存不变,所以可以用周围点的归一化距离描述分布,我们希望总的分布误差越小越好。而描述分布差异用的就是KL散度(相对熵),所以对下式进行GD,求z。

L=∑iKL(P(?∣xi)∥Q(?∣zi))=∑i∑jP(xj∣xi)log?P(xj∣xi)Q(zj∣zi)\begin{array}{r} L=\sum_{i} K L\left(P\left(* \mid x^{i}\right) \| Q\left(* \mid z^{i}\right)\right) \\ \quad=\sum_{i} \sum_{j} P\left(x^{j} \mid x^{i}\right) \log \frac{P\left(x^{j} \mid x^{i}\right)}{Q\left(z^{j} \mid z^{i}\right)} \end{array} L=i?KL(P(?xi)Q(?zi))=i?j?P(xjxi)logQ(zjzi)P(xjxi)??

ok,回到上面问题,t-SNE为什么可以把不同类拉开
关键在于SSSS′S^{\prime}S不一样:
S和Smoothness Assumption一样,欧式距离经过RBF
S(xi,xj)=exp?(?∥xi?xj∥2)\begin{array}{l} S\left(x^{i}, x^{j}\right) \\ =\exp \left(-\left\|x^{i}-x^{j}\right\|_{2}\right) \end{array} S(xi,xj)=exp(??xi?xj?2?)?
S′S^{\prime}S则发生改变:
S′(zi,zj)=1/1+∥zi?zj∥2S^{\prime}\left(z^{i}, z^{j}\right)=1 / 1+\left\|z^{i}-z^{j}\right\|_{2} S(zi,zj)=1/1+?zi?zj?2?

由于S′S^{\prime}S拖尾更长,在距离远的情况下(横轴大),在保持同分布也就是相似度要一样的话S′S^{\prime}S的横轴值会拉的更远。而在距离近的情况下(横轴小),则不会差太多:

在这里插入图片描述

S′S^{\prime}S不发生改变则叫SNE方法。

以上参考李宏毅老师视频和ppt,仅作为学习笔记交流使用

  相关解决方案