【转载】 t-SNE是什么? —— 使用指南
原文地址:
https://www.cnblogs.com/LuckBelongsToStrugglingMan/p/14161405.html
转者前言:
该文相当于一个 t-SNE 使用指南,写的很好很有知识量。经常在CCF指定的国际A会A刊的论文上看到有论文通过比较两个神经网络最好的t-sne图来比较这两个算法的好坏,由于自己硕士研究生期间已经过机器学习数据可视化领域的技术对这个领域有所了解,这种可视化通俗的来说只是一种数据关系的抽象显示,一般都是关注局部数据特征关系或者再关注一些全局数据关系特点罢了,是难以用这个图来显示不同种算法得到的哪种数据的发布更好,近期实验室学术讨论上大陆博士也在用这种两个算法的t-SNE图来比较两个算法的好坏,这直接激发了实锤这个可视化算法具体用处的想法,因此就有了在网上看到这个博文的指南性说明,感觉博文写的不错,这里转载以作记录之用。
=======================
原文如下:
简短的速记t-SNE的作用,我是阅读了原文和一些博文才敢记录的
原文:Accelerating t-SNE using Tree-Based Algorithms
博文:
https://distill.pub/2016/misread-tsne/;
https://www.deeplearn.me/2137.html;
https://bindog.github.io/blog/2016/06/04/from-sne-to-tsne-to-largevis/;
http://bindog.github.io/blog/2018/07/31/t-sne-tips/
强烈建议阅读PPT:作者怒号:不要瞎用我的t-SNE!
Do's and Don'ts of using t-SNE to Understand Vision Models
=========================
t-SNE:学生t分布随机紧邻映射
目的是将高维的特征向量用低维(2维、3维)点可视化。
数学描述为:将高维特征向量的相似性用概率分布表示,此概率分布密度由高维向量的欧式距离决定,但不是正比关系,因为自己与自己的相似性为1但是条件概率为0;基于这个概率分布,在低维空间中找两个点构成低维空间的概率分布,通过梯度下降优化以上两个高维、低维空间概率分布的KL散度,可以求得低维空间上的两个点之间的关系。
简言之,高维空间上相似的两个向量在低维空间上的对应点更靠近。
注意:
1. t-SNE可视化关键作用在于将相似的特征聚集起来,仅此而已,即不相似的特征分开,相似的特征聚集,也就说尽量不存在不相似的特征重叠!!!
2. t-SNE可视化中任何两蔟集群的【间距都是没有任何意义的】,因为集群之间的距离并不能反映特征的不相似性和相似性!有很多论文都用错了这一点,特别注意,即便所有的超参都设置相同,随机两次的相同实验也不太可能得到相同的集群情况,因为t-SNE是在解决一个非凸优问题!
3. t-SNE可视化中一簇集群的聚集程度【可能也是没有意义的】,注意是可能!还是那么说,t-SNE的聚集程度都是可以通过不同的调参调出来的
4. t-SNE可视化的聚集与分离不能给出模型分类好坏的结论;但是可以作为要处理的数据集是否可被良好分类的引导和启发后面研究的先验
5. 再次重申,t-SNE可视化发现类间不混叠才是他的主要用途,而不同集群的距离和同一集群的聚集程度都没有意义
=========================
【转载】 t-SNE是什么? —— 使用指南的更多相关文章
- 转载:Chrome 控制台不完全指南
Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效: 更高「逼格」更快「开发调试」更强「进阶级的Frontender」 Bug无处遁形「 ...
- 转载:《RESTful API 设计指南》 阮一峰
原文:http://www.ruanyifeng.com/blog/2014/05/restful_api 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面 ...
- [转载并收藏]JavaScript 疲劳终极指南:我们行业的真相
这篇文章说的深得我心,特别是前半段. 特此收藏. 中文译文:http://www.zcfy.cc/article/the-ultimate-guide-to-javascript-fatigue-re ...
- jQuery性能优化指南(转载)
现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, ...
- d3.js 入门指南 - 仪表盘
D3的全称是Data-Driven Documents(数据驱动的文档),是一个用来做数据可视化的JavaScript函数库,而JavaScript文件的后缀通常为.js,所以D3被称为D3.js. ...
- d3.js 入门指南
说到数据可视化,我们会行到很多优秀的框架,像echarts.highcharts,这些框架很优雅,健壮,能满足我们对可视化的大部分需求,但是缺点也很明显,就是这些框架几乎是不可定制化的,当遇到特殊的需 ...
- .NET Core 2.0下载和文档
.NET Core 2.0 RTM 正式版2017/8/14 发布.对应发布 ASP.NET Core 2.0 .EF Core 2.0以及.NET Standard 2.0. 你可以通过 Visua ...
- Redis缓存和MySQL数据一致性方案(转)
需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景,主要 ...
- ARM CORTEX-M3 内核架构理解归纳
ARM CORTEX-M3 内核架构理解归纳 来源:网络 个人觉得对CM3架构归纳的非常不错,因此转载 基于<ARM-CORTEX M3 权威指南>做学习总结: 在我看来,Cotex-M3 ...
- 移动H5前端性能优化指南(转载)
移动H5前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网 ...
随机推荐
- 关于 ulimit 的两个天坑
稍微有点 Linux 经验的人一定会遇到过 "Too many open files" 错误,这个错误本质是 ulimit 设置不合理导致的.关于 ulimit 设置,有哪些需要注 ...
- The bean ‘xxx‘ could not be injected as a ‘xxx‘because it is a JDK dynamic proxy that implements错误解决
1.解决方法:使用@Autowired 2.@autowired和@resource注解的区别区别:1.@Autowired注解由Spring提供,只按照byType注入:@resource注解由J2 ...
- npm 发布自己组件包
npm 发布自己组件包 发布到 npm 上 首先创建自己的npm账号 npm init npm install npm uninstall npm config edit // 编辑 npm conf ...
- 简约博客V1.1版本上线 + 一套新主题
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 简约博客V1.1版本上线 + 一套新主题 日期:2017- ...
- [代码]C语言进行md5,SHA256,SHA512加密
前言 原本在学puppet,它的user资源需要设置hash后的散列值,结果-我把加密算法,shadow文件,密码破解搞了个遍- 环境 CentOS7 gcc编译器 /etc/shadow文件解析 文 ...
- 颠覆传统编程,用ChatGPT十倍提升生产力
我们即将见证一个新的时代!这是最好的时代,也是最坏的时代! 需求背景 背景: 平时会编写博客,并且会把这个博客上传到github上,然后自己买一个域名挂到github上. 我平时编写的博客会有一些图片 ...
- 让matplotlib在绘图时显示中文
让matplotlib绘图时显示中文. 安装中文字体 apt install fonts-wqy-microhei 清除matplotlib的缓存 rm -rf ~/.cache/matplot ...
- Bike Sharing Analysis(二)- 假设检验方法
假设检验 假设检验是推论统计学(inferential statistics)的一个分支,也就是对一个较小的.有代表性的数据组(例如样本集合)进行分析与评估,并依此推断出一个大型的数据组(例如人口)的 ...
- 瑞芯微RK3568J如何“调节主频”,实现功耗降低?一文教会您!
RK3568J主频模式说明 为降低RK3568J功耗,提高运行系统健壮性,在产品现场对RK3568J实现主频调节则显得尤为重要. 图 1 RK3568J官方数据手册主频模式描述 normal模式 根据 ...
- 使用gitea搭建源码管理【0到1架构系列】
使用开源搭建Git源码方案,gitlab和gitea是两个不错的方案,gitlab以前简单易用,现在功能复杂且对开源并不友好,gitea一直保持功能单一易用且完全开源,个人推荐gitea. 通过容器安 ...