T-SNE笔记 无痛理解

2024-01-10 11:10
文章标签 笔记 理解 无痛 sne

本文主要是介绍T-SNE笔记 无痛理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先看下面两个图,在这里插入图片描述
作左图是t-SNE降维后得到的,有图是PCA 降维后得到的。很明显t-SNE将分的更加清晰,而PCA则重叠严重。
t-sne 是一种非线性的降维方法,一般可视化用的比较多,利用t-sne 可以把高维数据降维到2维或者3维空间上,然后各个数据点跟自己在高维空间上相近的数据点聚集在一起 好比空中漂浮的不同颜色的小球 让它们落地后 再根据原本在空中的聚集情况聚集在一起。
t-sne的原理是在高维空间上非常接近的点在转换到低维空间上相近的可能性会大。而高维空间上比较远的点映射到低维空间上的时候会自然区分得比较远。
推理过程如下:
首先我们分别计算在高维空间上similarity S(xi,xj),和降维后的similarity S(zi,zj)
图片来自台湾大学李宏毅教授课件在这里插入图片描述
由上图可见,当在高维空间上xi和xi越相近两个点的距离越小越可靠近y轴,假设在sigmiod function 上黄色曲线代表降维前,蓝色曲线代表降维后,当xi和xj距离变大时 其下降速度会非常快,对应到低维空间Z曲线的距离就会很大两者之间的相似度就会减小。
为了统一标准衡量高维空间和低维空间上相似性。在此把点在高维空间上距离和在低维空间上的距离概率化把这两个相似度放到同一个概率分布(t 分布)上由此把双方统一到0到1之间的数值(如下图),这样我们就可以计算Loss fuction 了。
在这里插入图片描述

所以定义一个 loss fuction:
在这里插入图片描述
最小化这个Loss Function 后就可以找到Z使得P和Z的分布尽可能接近。Z就是降维后的结果。

这篇关于T-SNE笔记 无痛理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590586

相关文章

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

深入理解MySQL流模式

《深入理解MySQL流模式》MySQL的Binlog流模式是一种实时读取二进制日志的技术,允许下游系统几乎无延迟地获取数据库变更事件,适用于需要极低延迟复制的场景,感兴趣的可以了解一下... 目录核心概念一句话总结1. 背景知识:什么是 Binlog?2. 传统方式 vs. 流模式传统文件方式 (非流式)流

深入理解Go之==的使用

《深入理解Go之==的使用》本文主要介绍了深入理解Go之==的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录概述类型基本类型复合类型引用类型接口类型使用type定义的类型不可比较性谈谈map总结概述相信==判等操作,大

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语