2020机器学习t-SNE

修订版


machine_learning.jpg

PCA

今天我们讨论高维数据的可视化,在平时接触到各种图表,例如散点图和柱状图仅能表示一两个变量间的关系。
希望的是存在高维空间的向量映射到低维空间中,而且映射后的低纬向量不失去数据结构的特征。这个过程类似将一个高纬空间向量嵌入到低纬空间的过程。也是就是降维过程,大家可能比较熟悉就是 PCA 模型就是一种降维的算法。

Projection-into-a-3D-space-via-PCA-of-the-MNIST-benchmark-dataset-This-data-set.png

将一张尺寸为 图片,这样图片 784 维空间的图片,每一个像素表示一个维度。可以理解为 维度转换为 维的数据特征,将数据 PCA 投影一个低维子空间,使得方差最大化。其实每张图在 维空间内一个点,其实这些点应该是位于高维空间的流形上,也就是说我们在高维空间中任意一点,我么绘制后应该就是噪音。这说明 PCA 降维后丢失了每一个点和其周围邻近点的距离上相对关系。

SNE(Stochastic Neighbor Embedding)

与 PCA 相比,在 SNE 中,数据在映射到低维空间后还保持高维空间中的其与最近点的距离关系。SNE 将一对点间欧式距离转换为密度。

在高维空间中,我们推测数据点间相似性。
p_{j|i} = \frac{exp( \frac{-|| x_i - x_j ||^2}{ 2 \sigma_i^2} )}{\sum_{k \neq \frac{-|| x_i - x_k||^2}{ 2 \sigma_i^2} )}}

这是高维空间嵌入到低纬空间后的的映射分布
q_{j|i} = \frac{exp( -|| y_i - y_j ||^2)}{ \sum_{k} \neq -|| y_i - y_k||^2) }

屏幕快照 2020-03-25 上午5.04.47.png

今天我们将讨论如何使用 t-SNE 将上图分布在二维空间数据转换为下图一维空间中

屏幕快照 2020-03-25 上午5.06.32.png

这里我们用简单例子来演示 t-SNE 如何实现降维的,以及其背后的算法。如何我们将数据投影到任意一个坐标轴,因为丢失某个维度信息,很难将其在投影后的坐标上将这些原来属于不同簇点分清

屏幕快照 2020-03-25 上午5.13.43.png

t-SNE所做的是找到一种将数据投影到低维空间(在本例中是 1 维数字线)的方法,以便在高维空间(在本例中是 2 维散点图)中保留其聚类的信息。好这就是 t-SNE 要做的事情。有了目标接下来我们就一步一步实现目标

所有先我们将这些点随机顺序地分布到一个线上


屏幕快照 2020-03-25 上午5.18.57.png

接下拉,t-SNE 开始每一次将这些点移动一个很小距离直到他们完成分类,这样说起来不太具体,究竟t-SNE 是怎么移动的呢,不急我们这里来具体演示,我们先看第一个蓝色点

屏幕快照 2020-03-25 上午5.23.38.png

蓝色点移动方向是在原来 2D 图中距离其近点方向靠拢。而其他不属于同一簇的点会被推开。

在每一步中,直线上的一个点被吸引到散点图(2 维空间)中距离他近的点上,并被距离他远的点所排斥,通过不断迭代最终就可以得到

屏幕快照 2020-03-25 上午5.29.30.png

我们现在只是简单介绍 t-SNE 的降维过程,现在让我们深入了解 t-SNE 是如何实现上面的降维过程。

第一步

找到散点图中所有点的相似性,在下图我们看看绿色点与其他点之间的关系。


屏幕快照 2020-03-25 上午5.36.50.png
屏幕快照 2020-03-25 上午5.39.03.png

然后在以绿色点为中心的正态分布曲线(这里画的太好,大家了解就好)上绘制距离,然后如下图,从这个蓝色点引一条到距离的线,这个线就是表示 unscaled similarity (无缩放相似性)


屏幕快照 2020-03-25 上午5.44.03.png
屏幕快照 2020-03-25 上午5.47.02.png

之所以用正态分布,这样做好处是远处的点具有较低的相似性值,而距离近点具有较高的相似值

屏幕快照 2020-03-25 上午5.50.30.png

通过测量点之间距离来得到他们到绿色点 unscaled similarity 得分

屏幕快照 2020-03-25 上午5.54.51.png

现在我们在原有点上添加密度为其他簇一半的簇的,簇内点间距离比较松散。
正态曲线的宽度取决于感关注点附近数据的密度

屏幕快照 2020-03-25 上午5.58.16.png

这里我们不难看出因为绿色点簇的密度是蓝色点簇密度的一半,所以蓝色点的正态分布曲线的宽度也是绿色点曲线宽度的一半。然后缩放相似性得分将使两个集群的相似性得分相同

屏幕快照 2020-03-25 上午6.04.23.png

这个正态分布曲线具有偏差为 1,

屏幕快照 2020-03-25 上午6.09.21.png

图上显示这些点的 unscaled similarity
\frac{非缩放相似度得分}{总的非缩放相似度得分} = 缩放的分数
\frac{0.25}{0.25 + 0.05} = 0.82
\frac{0.05}{0.25 + 0.05} = 0.18

对于下图虽然有不同偏差但是计算出得分缩放分数却是相同的。


屏幕快照 2020-03-25 上午6.12.58.png

\frac{0.12}{0.12 + 0.025} = 0.82
\frac{0.025}{0.12 + 0.025} = 0.18

这表明相对紧密的簇的缩放相似性得分与相对比较松散簇的相似性得分相同。实际情况稍微复杂一点,但基本思想是不变的。t-SNE有一个等于预期密度的“困惑”参数,这个参数起作用了,从而解决不同密度簇具有相同相似性的问题。

通过计算某一点到散点图其他点距离来设置这些点相对于某个的相似性分数。因为基于其周围点的密度不同而得到不同宽度正态分布曲线。所以t-SNE 是通过平均两个点之间相似度来衡量他们之间距离,为什么是两个方向,因为选择不同点作为研究对象就可以得到不同相似度。最后我们会得到矩阵,

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容