t-SNE学习笔记

http://www.datakit.cn/blog/2017/02/05/t_sne_full.html
拜读了这位大神的笔记,有些一开始不太明白的地方,写个笔记记下来。

1.1基本原理

SNE是通过仿射(affinitie)变换将数据点映射到概率分布上,主要包括两个步骤:

SNE构建一个高维对象之间的概率分布,使得相似的对象有更高的概率被选择,而不相似的对象有较低的概率被选择。
SNE在低维空间里在构建这些点的概率分布,使得这两个概率分布之间尽可能的相似。
我们看到t-SNE模型是非监督的降维,他跟kmeans等不同,他不能通过训练得到一些东西之后再用于其它数据(比如kmeans可以通过训练得到k个点,再用于其它数据集,而t-SNE只能单独的对数据做操作,也就是说他只有fit_transform,而没有fit操作)

这里有几个点需要提一下。
我们的目标是把一系列高维的向量投影到2-3维空间中来,其中一种方法就是用PCA,而这里的方法就是构建一个高维对象之间的概率分布,
为啥要构建这个分布,因为如果只从可视化的角度来看的话,我们只需要利用到每个点之间的距离信息,就能够把他们在低维空间给画出来。
而什么是概率分布,就是如果你有N个M维向量,那么这个分布就可以表示成一个NxN矩阵。Pij表示第i个点对于第j个点的相似度,也就是原空间中距离的远近,这个矩阵就能表示所有的距离信息。

SNE在低维空间里在构建这些点的概率分布,这句话什么意思呢?
然后我在二维或者三维空间随机撒N个点,这些点也可以表示成距离和相似度矩阵。好吧,这里有两个矩阵了,也就是两个概率分布,我们要做的就是尽可能的使得,低维度空间中的概率分布去接近高维度的概率分布,所以自然就想到了KL距离。让两个分布的KL距离尽快能的小,去优化这个目标,要用到梯度下降,从代码的角度来说开始是一些随机的点,然后经过多次迭代,原空间近的点低维空间也近,原空间远的点低维空间也远,当然这是最理想的结果。SNE已经能够取得不错的效果。

1.2 SNE原理推导

SNE是先将欧几里得距离转换为条件概率来表达点与点之间的相似度。具体来说,给定一个M个高维的数据 x1,...,xM , t-SNE首先是计算概率 pij ,正比于 xi xj 之间的相似度(这种概率是我们自主构建的),即:

p(j/i)=exp(
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值