Machine Learning ——降维方法:t-SNE

本文介绍了t-SNE算法,作为机器学习中的降维方法,它改进了SNE的优化问题和拥挤问题。t-SNE在高维空间使用高斯分布,低维空间采用t分布,旨在保持数据的局部结构。实验表明t-SNE在图像数据处理上有良好表现,但对文本处理效果有限。

本篇博客是本人初学t-SNE算法的总结,可能有些理解不够完善,希望不足之处大家可以指正。

参考文献:

Geoffrey Hinton P K. Visualizing Data using t-SNE Laurens van der Maaten MICC-IKAT[J]. 2014.

一、介绍

    t-SNE算法是学习机器学习比较好入门的一种算法,t-SNE是一种降维算法,降维在机器学习中是比较常见的问题,降维就是将高维空间的数据在低维空间进行展示,我们在实验中通常使用的数据都是高维数据,例如,与乳腺癌相关的细胞核由大约30个变量描述,而用于表示图像的像素强度向量或用于表示文档的字数向量通常有数千个维度,我们在处理这些数据时就需要用到降维技术。降维的目的是在低维图中尽可能保留高维数据的重要结构。降维分为线性降维和非线性降维两个部分,线性降维的代表方法有PCA和MDS等,线性降维主要关注低维空间中的点的不相似性,使低维空间中的不相似的点之间的距离较大;t-SNE是一种非线性的降维方法,非线性降维算法通常更重视保持相似性,使低维空间中的相似的点之间的距离较小。

二、SNE(Stochastic Neighbor Embedding)

    SNE也是一种降维的算法,t-SNE就是对SNE算法的一种改进,我们在这里先对SNE算法进行介绍。SNE是通过构建一个高维对象之间的概率分布Pi|j,使得相似的对象有更高的概率被选择,而不相似的对象有较低的概率被选择;在低维空间里再构造这些点的概率分布Qi|j,使得Pi|j与Qi|j分布之间尽可能相似。SNE是先将欧几里得距离转换为条件概率来表达点与点之间的相似度SNE中我们不论是低维空间还是高维空间,我们计算的相似度均为概率相似(我们将高维空间中的点记为X={x1,x2,...,xi,xj,...,xn},低维空间中的点记为Y={y1,y2,...,yi,yj,...,yn})

    在高维空间中,点xi与xj的相似度记为Pi|j ,对于相近的点Pij的值相对会大一些,Pij遵循高斯分布,通过数学公式进行展示为:

              

    σi 是以Xi为中心分布的高斯标准差,它的取值我们稍后再讨论。我们将Pi|i设置为0,因为我们只关注不同点之间的相似性。

    在低维空间中,点yi与yj的相似度记为Qi|j,为了方便计算,我们在低维空间将σi 设置为1/√2(将σ设置成不同的值,只是对最后的图的重新的调节),所以在低维空间中的点的相似度的数学表达式是:

                      

    同样,我们也将Qi|i设置为0。

    如果低维图中的点yi和yj可以正确的对高维空间中的点xi与xj进行建模,那么Pi|j与Qi|j应该是相等的。SNE主要的目的就是最小化Pi|j与Qi|j之间的误差。我们使用KL散度(Kullback-Leibler divergences)来表示一个点的Pi|j与Qi|j之间的误差,SNE通过梯度下降方式最小化所有点的KL散度的和。Cost函数定义如下:

                

    因为KL散度是非对称的,所以对于在低维空间的点的距离的错误会有不同的惩罚权重。例如在低维空间中,用距离较近的点去代表高维空间中距离较远的两个点,正确的情况是我们会得到一个很大的权重然后进行提督迭代,但是实际上我们会得到一个很小的权重,这是有问题的。所以我们可以说,SNE比较关注数据的局部结构。

    上面是对于SNE算法整体流程的介绍,下面来推导一下SNE算法的实现过程。

    SNE中对于不同的点xi有不同的σi,不存在一个最优化的σi适用于数据集中的所有的点。SNE使用困惑度(Perplexity)通过二分搜索法查找合适的σi,困惑度的定义为:</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值