上一篇文章,我们介绍了SNE降维算法,SNE算法可以很好地保持数据的局部结构,该算法利用条件概率来衡量数据点之间的相似性,通过最小化条件概率 pj|ip_{j|i} 与 pi|jp_{i|j} 之间的 KL-divergence,将数据从高维空间映射到低维空间。

Symmetric SNE

SNE算法利用的是条件概率,我们也可以利用联合概率,衡量两个空间 \mathcal{X} 与 \mathcal{Y} 的联合概率分布的 KL-divergence,假设高维空间 \mathcal{X} 的联合概率分布为 PiP_{i},低维空间 \mathcal{Y} 的联合概率分布为 QiQ_{i},可以定义两者的 KL-divergence 为

C=KL(P||Q)=∑i∑jpijlogpijqij

C=KL(P || Q) = \sum_{i} \sum_{j} p_{ij} \text{log}\frac{p_{ij}}{q_{ij}}

同样的 pi|i=0p_{i|i} =0, qi|i=0q_{i | i} =0,因为 pij=pjip_{ij} = p_{ji}, qij=qjiq_{ij} = q_{ji},所以把这种形式的SNE称为 symmetric-SNE,我们可以定义联合概率 pijp_{ij} 以及 qijq_{ij} 为:

pij=exp(−∥xi−xj∥2/2σ2)∑k≠lexp(−∥xk−xl∥2/2σ2)

p_{ij} = \frac{\text{exp}(-\| x_{i} - x_{j} \|^{2}/2\sigma^{2})}{\sum_{k \neq l}\text{exp}(-\| x_{k} - x_{l} \|^{2}/2\sigma^{2})}

qij=exp(−∥yi−yj∥2)∑k≠lexp(−∥yk−yl∥2

q_{ij} = \frac{\text{exp}(-\| y_{i} - y_{j} \|^{2})}{\sum_{k \neq l}\text{exp}(-\| y_{k} - y_{l} \|^{2}}

联合概率的一个问题在于当数据点 xix_{i} 离其它的数据点都很远的时候,意味着 pijp_{ij} 会是一个非常小的值,这样映射的低维空间对应的点 yiy_{i} 对 cost function 的影响也会很小,yiy_{i} 将很难被其它点确定。为了解决这个问题,这里定义的联合概率由条件概率来确定 pij=pj|i+pi|j2p_{ij} = \frac{p_{j|i}+p_{i | j}}{2}, 我们可以进一步地定义梯度:

∂C∂yi=4∑j(pij−qij)(yi−yj)

\frac{\partial C}{\partial y_{i}} = 4\sum_{j} (p_{ij}-q_{ij})(y_{i}-y_{j})

t-SNE

t-SNE 就是利用一个 student-distribution 来表示低维空间的概率分布:

qij=(1+∥yi−yj∥2)−1∑k≠l(1+∥yk−yl∥2)−1(4)

q_{ij} = \frac{\left(1+\| y_{i} - y_{j} \|^{2} \right)^{-1}}{\sum_{k \neq l}\left(1+\| y_{k} - y_{l} \|^{2}\right)^{-1}} \qquad (4)

而高维空间的联合概率分布依然用高斯函数来拟合,我们可以得到梯度表达式为:

∂C∂yi=4∑j(pij−qij)(yi−yj)(1+∥yi−yj∥2)−1(5)

\frac{\partial C}{\partial y_{i}} = 4\sum_{j} (p_{ij}-q_{ij})(y_{i}-y_{j})\left(1+\| y_{i} - y_{j} \|^{2} \right)^{-1} \qquad (5)

这个算法的流程图如下所示

这个算法的源代码可以在作者的网站上下载:

https://lvdmaaten.github.io/tsne/

机器学习: t-Stochastic Neighbor Embedding 降维算法 (二)相关推荐

  1. 在线作图丨数据降维方法⑤——t-SNE(t-Distributed Stochastic Neighbor Embedding)

    Question 1:什么是t-SNE? t-Distributed Stochastic Neighbor Embedding (t-SNE) 是一种非线性降维技术,特别适用于高维数据集的可视化.它 ...

  2. t-SNE(t-distributed stochastic neighbor embedding)

    t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法,是由 Laurens van der Maaten 和 Geoffre ...

  3. 机器学习降维算法二:LDA(Linear Discriminant Analysis)

    Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一种有监督的(supervised)线性降维算法.与PCA保持数据信息不同, ...

  4. python pca降维_机器学习之sklearn中的降维算法

    1. PCA与SVD sklearn中降维算法都被包括在模块decomposition中,这个模块本质是一个矩阵分解模块.在过去的十年中,如果要讨论算法进步的先锋,矩阵分解可以说是独树一帜.矩阵分解可 ...

  5. 机器学习:python实现LDA降维算法

    这次,我们来学习一种经典的降维方法: 线性判别分析(Linear Discriminant Analysis, 以下简称LDA). 在前面博客中(点我)我们讲解了PCA降维算法. PCA追求的是在降维 ...

  6. 关于t-SNE(T-distributed Stochastic Neighbor Embedding) t-分布随机近邻嵌入的简单理解

    1.介绍 t-sne 是一种探索高维数据 (high-dimensional data) 的方法,其多用于机器学习 (machine learning), 此方法可以将高维数据通过低维[一般是2-D] ...

  7. matlab中tsne函数,t-Distributed Stochastic Neighbor Embedding

    'euclidean' - Euclidean distance. 'seuclidean' - Standardized Euclidean distance. Each coordinate di ...

  8. T-SNE( t-distributed stochastic neighbor embedding t-分布随机邻域嵌入)

    学习资料详见http://www.datakit.cn/blog/2017/02/05/t_sne_full.html#11%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86 T ...

  9. 机器学习之:流形与降维概述

    流形与降维:概述 降维算法概述 流形学习 距离的定义 KNN图与流形降维 KNN图 SNE算法 降维算法概述 降维,顾名思义就是把数据或者特征的维度降低,一般分为线性降维和非线性降维. 线性降维有:P ...

最新文章

  1. Gitlab完整搭建手册+排错
  2. 解决ASP.Net第一次访问慢的处理 IIS 7.5
  3. Java_方法的调用①及案例
  4. 重庆电子工程学院计算机专业,重庆计算机电子工程职业学院2020年招生录取分数线...
  5. UC伯克利超酷研究:舞痴和舞王之间,只差一个神经网络
  6. 后台执行命令的工具screen
  7. winform调用fastreport制作报表(三)绑定数据
  8. php中多重继承,PHP如何使用接口实现多重继承?(代码示例)
  9. mysql字符集设置lampp_xampp下mariaDB数据库设置默认字符集utf8(Windows)
  10. 如何用python制作五子棋
  11. 讯飞离线语音命令词+TTS离线发音,实现命令词交互(windows dll for unity插件)
  12. 线性代数之行列式(1) ——行列式的定义以及二阶行列式
  13. 深入linux设备驱动程序内核机制(第三章) 读书笔记
  14. 基于拉格朗日对偶的凸全局三维配准
  15. 微信营销KPI考核标准有哪些?
  16. ERROR 1010 (HY000): Error dropping database (can‘t rmdir ‘.\qpweb‘, errno: 41) 删库失败问题的解决
  17. 信息学奥赛一本通-1042
  18. C语言运算符的优先级表
  19. 修改Discuz! X2标题、底部和Archiver页面的版权信息
  20. 基于网络爬虫的负面信息搜集系统

热门文章

  1. 工科SCI论文的写作技巧(四) 写好引言
  2. 最后一面《HR面》------十大经典提问
  3. 马克思的两面性-来自网友
  4. 预测数值型数据——回归
  5. 税务ukey错误代码09d122
  6. 对象的深拷贝和浅拷贝
  7. 随机信号分析基础——例题篇(例题2.1)
  8. linux tar 100g,是时候压缩非常大的(100G)文件了
  9. 2023 猕猴桃影视源码
  10. swft 语言 java_Swift语言中与C/C++和Java不同的语法(二)