Visualizing Data using t-SNE

Der Maaten L V, Hinton G E. Visualizing data using t-SNE[J]. Journal of Machine Learning Research, 2008: 2579-2605.

t-sne是一个非常经典的可视化方法.

主要内容

我们希望, 将高维数据映射到一个低维空间, 同时保留相关性(这里的相关性就不局限于PCA在意的线性相关性了).

Stochastic Neighbor Embedding

利用核密度估计, 估计原空间中各点条件概率:

显然衡量了俩个点的一个相关关系.

而在低维空间中, 我们用类似的方法估计:

一个很自然的问题是, (1)有为什么(2)没有, 这是因为是的一个映射, 你加个也就是rescale一下这个映射而已(应该是在低维取相同的的情况下).
另外一个问题是, 是如何估计的, 对于每个, 都有一组概率, 定义一个perplexity:

其中表示香农熵. 根据(4)利用二分法搜索, 通常选择5-50. (why?)

实际上, 我们还没有找到, 为了保证映射前后相关性一致, 利用KL-散度(非对称)来度量

需要注意的是, 因为考虑的是俩俩的相关性, 所以假设, 说实话感觉好扯啊, 为啥不假设为1(因为概率和为1, 公式不好调整?).

显然(3)是关于的一个函数, 可以用梯度下降方法去最小化使得分布近似, 梯度为

说实话, 我证明的结果有出入因为好像不等于1吧.

最后迭代公式用了momentum

t-SNE

由于crowding problem (好像是指高维数据映射到低维数据发生重叠). 为了解决这种问题, 作者采用了俩个处理, 第一, 在联合分布上求解

其中(为了保证不会太小)

或者像公式(10)中的那样根据对称SNE的估计?


采取这种估计方式(单自由度t分布而非高斯形式), 论文的解释是t分布的拖尾效果比高斯的强, 这会导致高维空间中距离较大的点在低维空间中的映射也会保持一个较大的距离, 从而能够缓解 crowding problem.

此时的梯度为

只需要考虑关于的导数即可,

其中

可以综合为



在结合最开始有一个就可以得到最后的结果了.

你可能感兴趣的:(Visualizing Data using t-SNE)