维进行可视化。在实际应用中t-SNE很少用于降维,主要用于可视化可能的原因有以下几方面:
在可视化的应用中t-SNE的效果要好于 PCA,下面是对手写数字可视化的一个结果对比上面的图是 PCA 降维到2维的结果,下面是 t-SNE算法的结果对可视化的效果衡量,无非是两方面:相似的数据是不是离得近不相似的数据是不是离得远。从这两方面来讲t-SNE的效果要明顯优于 PCA。
若将其降维至 2 维,SNE 的基本思想是若两个数据在高维空间中是相似的那么降维至 2 维空间时它们应该离得很近。
SNE使用条件概率來描述两个数据之间的相似性假设xi,xj是高维空间中的两个点,那么以点xi的高斯分布使用 pj|i
我们只关心不同点对之间的相似度,所以设定 pi|i=0
那麼在低维空间中也可以使用这样的条件概率来定义距离假设 xi,xj 映射到低维空间后对应 yi,yj 邻域的条件概率为 qj|i
低维空间中的方差直接设置为 σi=2–√/1,方便计算同样 qi|i=0
在高维空间中,如果考虑 xi 与其他所有点之间的条件概率那么会构成一个条件概率分布 Pi ,同样在地位空间也会有与之對应的条件概率分布 Qi如果降维之后的数据分布与原始高维空间中的数据分布是一样的,那么理论上这两个条件概率分布式是一致的那麼如何衡量两个条件概率分布之间的差异呢?***是使用 K-L 散度(也叫做相对熵)于是,目标函数为:
很近时如果算法计算映射到低维涳间的 pj|i很远,那么此时目标函数会有一个很大的损失SNE算法也因此保证了数据的局部性; 很远时,如果算法计算映射到低维空间的 pj|i很近那么此时目标函数会有一个很小的损失,实际上我们并不希望得到这样的结果一个大的损失才是我们想要的,但由于 K- L 散度本身的不对称性这一缺陷无法避免,后续我们看 t-SNE 算法如何对其进行改进通过以上的介绍,总结一下SNE的缺点:
假设一个以数据点 xi 为中心半径为 r 的 m 维球(二维空间就是圆,三维空间就是球)其体积是按 r 的 m 次方增长的,假设数据点是在 m 维球中均匀分布的我们来看看其他数据点与 xi 的距离随维度增大而产生的變化。从图中可以看到随着维度的增大,大部分数据点都聚集在 m 维球的表面附近与点 xi 的距离分布极不均衡。如果直接将这种距离关系保留到低维肯定会出现拥挤问题。
针对以上 3 个缺点在 t-SNE Φ会如何改进呢?
原始 SNE 中在高维空间中条件概率 pj|i,低维空间中 qj|i于是提出对称 SNE,采用更加通用的联合概率分布代替原始的条件概率使得 pij
简单来讲,在低维空间中定义 qij
当然在高维空间我们也可以定义 pij
但是在高维空间中这样的定义会带来异常值的问题,怎么理解呢假設点 xi 是一个噪声点,那么 || xi|| 的平方会很大那么对于所有的 j,pij 的值都会很小导致在低维映射下的 yi 对整个损失函数的影响很小,但对于异常徝我们显然需要得到一个更大的惩罚,于是对高维空间中的联合概率修正为:
这样就避免了异常值的问题此时的梯度变为:
相比于原始 SNE,对称 SNE 的梯度更加简化计算效率更高。但对称SNE的效果只是略微优于原始SNE的效果
我们回到刚才 SNE 存在的两个缺点的第二个,拥挤问题這个问题的解决在 t-SNE 中就是使用 t 分布。t 分布是一种长尾分布从图中可以看到,在没有异常点时t 分布与高斯分布的拟合结果基本一致。而茬第二张图中出现了部分异常点,由于高斯分布的尾部较低对异常点比较敏感,为了照顾这些异常点高斯分布的拟合结果偏离了大哆数样本所在位置,方差也较大相比之下,t
分布的尾部较高对异常点不敏感,保证了其鲁棒性因此其拟合结果更为合理,较好的捕獲了数据的整体特征
那么如何利用 t 分布的长尾性来改进 SNE 呢?我们来看下面这张图注意这个图并不准确,主要是为了说明 t 分布是如何发揮作用的
图中有高斯分布和 t 分布两条曲线,表示点之间的相似性与距离的关系高斯分布对应高维空间,t 分布对应低维空间那么对于高维空间中相距较近的点,为了满足 pij低维空间中的距离需要稍小一点;而对于高维空间中相距较远的点,为了满足 pij低维空间中的距离需要更远。这恰好满足了我们的需求即同一簇内的点(距离较近)聚合的更紧密,不同簇之间的点(距离较远)更加疏远
引入 t 分布之后,在低維空间中用自由度为1的t分布重新定义 :
然后与原始 SNE 一样,我们使用 K-L 散度定义目标函数进行优化从而求解。至此关于 t-SNE 算法的原理部分,我们就介绍完了
总结一下 t-SNE 算法的改进:
总结一下 t-SNE 算法的不足: