1.概念:
非监督学习分为两大类:Clustering & Dimension Reduction 和Generation,上节讲的是线性的降维PCA,这节主要是讲非线性降维:TSNE,先从NE讲起。
2.一个统称:流形学习(Manifold Learning)
我们所能观察到的数据实际上是由一个低维流行映射到高维空间的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上这些数据只要比较低的维度就能唯一的表示。所以直观上来讲,一个流形好比是一个d维的空间,在一个m维的空间中m>d,被扭曲之后的结果。需要注意的是流形并不是一个形状,而是一个空间。常见例子就是地图:
但是:如果在高维空间上,如果距离较小的时候,欧氏距离还是适用的(上图中的小三角形),如果距离较大就不行了(上图中的大三角形)。同样的还有下面的例子(左边),所以就要给他拍扁。
如果将左边的数据进行降维变成右边的数据,就可以应用欧式距离进行聚类计算(或者监督学习),这样降维的方法有很多,这节课会简单介绍几个,重点介绍TSNE(t-distributed Stochastic Neighbor Embedding)
3.降维方法1:Locally Linear Embedding (LLE)
假设在空间中点的分布如下图所示,其中有一个点叫做xi,然后找到xi的邻居xj,用wij去表示xi,xj之间的关系,也可以看做,xi是xj 的linear combination产生的,然后降维,从xi,xj中得到zi.zj,wi,wj不变
LLE的好处是:即使不知道xi,xj只要知道他们之间的关系就够了
BUT:邻居点不能太多,因为本节开始地球仪的例子里面就提到了,如果点很近的情况下,欧氏距离还是可以用的,点太多,离得太远就不适用了。邻居太多,过拟合.
4.降维方法2:Laplacian Eigenmaps(拉普拉斯特征向量)
之前的semi supervised 有讲过,在空间中的两个点的距离关系不能单单只看距离,还要看它们之间有没有high density(高密度)的关系,所以下面的左图中两个点距离不是按红色虚线,而是按蓝色线进行。
之前的半监督学习是:如果x1,x2在高密度区,那y1,y2就类似相同
把相似映射到无监督学习上:
只不过:上式中平方应该换成L2 NORM,这里与前面的semi-supervised learning不一样,semi-supervised learning中有一个是有label的,所以不会出现下面的情况:
解决办法:直接把两个都弄成0,S就最小化了。因此要给z一些条件限制:
M是维度。解出来的z实际上就是Laplacian Eigenvector(拉普拉斯特征向量),又有一个潮名:Spectral clustering:(谱聚类) clustering on z
5.降维方法3:Laplacian Eigenmaps(拉普拉斯特征向量)
讲了这么久终于到正题了,之前的方法有一些问题,例如:相近的数据会比较接近,但是不同的点并没有规定要分开
(题外之话:COIL-100 数据集是彩色图片集合,包含对 100 个物体从不同角度的拍摄,每隔 5 度拍摄一副图像,每个物体 72 张图像。每张图像大小进行了统一处理为 128x128。
上面右图中的圈圈代表同一个物体从不同角度拍摄的结果。
)
t-SNE怎么做?
首先:肯定还是要降维:
Compute similarity between all pairs of x:
同理,对于z来说:
Compute similarity between all
pairs of z
对比来记
接下来需要做的是:开始使不知道zi,zj是多少,我们希望他们约接近越好。让根据similarity在原来的space上算出的和demition reduction算出的越接近越好,怎么衡量两个distribution的相似度:就是KL,也就是下面这个公式的L越小越好
要注意的两点;
- 先降维:如果有很多数据点,t-SNE需要逐个点对其他点的进行运算,similarity运算量较大,因此,一般开始会进行降维,先pca降维然后t-sne.
- 如果有新的数据点加入,不能直接利用t-SNE进行预测,而是需要重新跑一边所有的数据。因此,t-SNE通常用于visualization(可视化),显示高维空间的数据在二维空间上的关系。
similarity的选择:
之前降维讲similarity计算使用的式子是:这里为什么用exp有说过,exp掉得快,距离远的关系就弱
SNE中降维后用的计算公式和原来的一样。
t-SNE的Similarity Measure计算公式和原来的不一样。原来很近的点,降维后还是很近,如果原来很远的点,做降维transform后变比较远。这样在可视化的效果会比较好。
红色线是exp,近的更近,远的更远
这样用的好处是,假设横轴代表了将为之后的欧氏距离,如果原来的两个点距离比较远,那变到t-distribution之后距离会被拉的更远,因为t-distribution的尾巴很长,那跑完t-SNE之后的结果如下,会聚集成一团一团的,不同之间有一定的距离:
MNIST先做PCA后再t-SNE
类似杯子的:
小汽车: