引言

本文主要探讨一些非线性降维方法。主要讨论近邻嵌入(Neighor Embedding)。

流行学习

流行学习(Manifold Learning)认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的。

比如把一个二维的平面硬塞到三维的空间里面,这个二维的图形就是一个流行(manifold)。

假设我们看这个空间中的点A,可以说它和B点较远,和C点较近。对于这种比较接近的点,我们可以用欧几里得距离来计算它们之间的距离。


但是如果用欧几里得距离计算A点和D、E两点的距离哪个比较近,得到的结论可能是黄色区域的D点比较远。

但是如果我们把上图想象成一条路的话,走到E点实际上是比D点要远的。

如果我们可以把这个三维空间中的数据降到二维,那就可以用聚类或接下来介绍的监督学习方法。

好了,接下来要介绍的第一个方法叫LLE。

局部线性嵌入

局部线性嵌入(Local Liner Embedding,LLE)假设数据在较小的局部是线性的,某一个数据可以由它邻域中的几个样本来线性表示。

假设在高维的空间中有个点xix^ixi,在这个点附近有一些邻居,上面红色的那些点。我们用wijw_{ij}wij表示xix^ixixjx^jxj之间的关系。

假设xix^ixi可以用它的邻居做线性组合(liner combination)表示出来,而这个线性组合的权重就是wijw_{ij}wij

使得下式最小化,可以得到权重系数WWW

∑i∣∣xi−∑jwijxj∣∣2\sum_i||x^i - \sum_j w_{ij}x^j ||_2 ixijwijxj2

LLE要做的事情是降维的结果xix^ixi降到ziz^izi,xjx^jxj降到zjz^jzj,它们之间的关系还是wijw_{ij}wij

找出了WWW系数后,然后通过最小化下式找出zi,zjz^i,z^jzi,zj

∑i∣∣zi−∑jwijzj∣∣2\sum_i||z^i - \sum_j w_{ij}z^j ||_2 izijwijzj2

下面介绍一个和LLE很像的方法——拉普拉斯特征映射(Laplacian Eigenmaps)

拉普拉斯特征映射

它是一个基于图的方法。

上面我们说用欧几里得距离不太准确,这个方法提出使用图来描述两点之间的距离。

这个方法是通过图来做降维。

首先需要根据数据点来做出图结构。
在半监督学习中,我们提到了不止考虑有标签数据之间的交叉熵,我们还会加上来自于图结构的正则项(regularization term)。

这个正则项是说,如果i,ji,ji,j这两笔数据,它们中间边的权重是wi,jw_{i,j}wi,j的话,我们希望这两笔数据的标签越近越好。

前面说的是用在监督学习上。如果用在无监督学习上会怎样。

如果x1x^1x1x2x^2x2在高密度区域是接近的,那么降维后的结果z1z^1z1z2z^2z2也应该是接近的。
z1z^1z1z2z^2z2它们要使下面这个式子最小化。
S=12∑i,jwi,j(zi−zj)2S = \frac{1}{2}\sum_{i,j}w_{i,j}(z^i-z^j)^2 S=21i,jwi,j(zizj)2

我们已经在图结构上知道了i,ji,ji,j之间的权重,我们希望zi,zjz^i,z^jzi,zj的距离越近越好。

为了防止使得zi=zj=0z^i=z^j=0zi=zj=0,需要对降维后的zzz做一些限制。

假设降维后的维度是MMM,我们希望所有的Z={z1,z2,⋯,zN}=RMZ=\{z^1,z^2,\cdots,z^N\} = R^MZ={z1,z2,,zN}=RM可以填满整个MMM维的空间。

t分布随机近邻嵌入

上面提到的两种方法都有个问题是,都只说了如果在原来的空间上相近,那么降维后也要相近。
而没有说,如果两个点在原来的空间上距离很远,降维后要怎样。

如果做LLE或拉普拉斯特征映射的时候,可能会发现本来不相干的点被叠在一起。

如果在MNIST(手写数字识别数据集)上面做LLE,这里不同颜色的点代表不同的数字,LLE可以把同样的数字放到一起,但是无法把不同的数字分开。

所以就需要t分布随机近邻嵌入(T-distributed Stochastic Neighbor Embedding,t-SNE),它是目前效果最好的数据降维与可视化方法。

它的做法是,先在原空间中两两相互计算两点之间的相似度(similarity)。

定义

P(xj∣xi)=S(xi,xj)∑k≠iS(xi,xk)P(x^j|x^i) = \frac{S(x^i,x^j)}{\sum_{k≠i}S(x^i,x^k)} P(xjxi)=k=iS(xi,xk)S(xi,xj)

在降维后的结果,也计算两两之间的相似度S′(zi,zj)S^\prime(z^i,z^j)S(zi,zj)

定义
Q(zj∣zi)=S′(zi,zj)∑k≠iS(zi,zk)Q(z^j|z^i) = \frac{S^\prime(z^i,z^j)}{\sum_{k≠i}S(z^i,z^k)} Q(zjzi)=k=iS(zi,zk)S(zi,zj)

接下来需要找一组zzz满足下面的特性,两个分布之间的相对熵(KL散度,是描述两个概率分布的相近程度)越小越好:

这样在原来空间中概率大的转换后概率也大;在原来空间中概率小的,转换后概率也小。

接下来看下t-SNE所选择的衡量相似度的方法。

在原来空间上,S(xi,xj)=exp⁡(−∣∣xi−xj∣∣2)S(x^i,x^j)=\exp(-||x^i-x^j||_2)S(xi,xj)=exp(xixj2),算出两个点之间的距离,再取负号,然后作为指数eee的幂。

使用这个距离时,如果两个点本来很近,转换后还是很近。如果两个点只要稍微远一点,那么转换后都是一样的远。

在t-SNE之前还有另一个方法叫SNE,它在转换后的空间计算相似度的方法和原空间用的是一样的。

S′(zi,zj)=exp⁡(−∣∣zi−zj∣∣2)S^\prime(z^i,z^j)=\exp(-||z^i-z^j||_2)S(zi,zj)=exp(zizj2)

而t-SNE对于转换后的距离计算是这样的:

S′(zi,zj)=11+∣∣zi−zj∣∣2S^\prime(z^i,z^j)=\frac{1}{1 + ||z^i - z^j||_2} S(zi,zj)=1+zizj21

这两个方式有什么不同呢?

SNE是橙色这条线,t-SNE是蓝色的这条线。

假设在原来的空间上有两个数据橙色点,它们在比较近的距离的时候差距是差不多的,在比较远点距离的时候相差很远。

也就是说,如果两个点在原空间上有点距离的话,t-SNE在转换后的控件上会尽量拉开它们之间的距离。

t-SNE在MNIST上会把不同的数字分界很明显。

参考

1.李宏毅机器学习

李宏毅机器学习——无监督学习(三)相关推荐

  1. 李宏毅机器学习笔记(三)——Regression: output a scalar amp;amp; Gradient Descent

    视频来源: 李宏毅机器学习(2017)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili.com/video/av10590361/?p=3 机器学习的目的 ...

  2. 机器学习-无监督学习-聚类:聚类方法(一)--- k-Means(k-均值)算法,k-Means++算法【使用最大期望值算法(EM算法)来求解】

    一.聚类算法 1.聚类算法概述 聚类算法:一种典型的无监督学习算法(没有目标值),主要用于将相似的样本自动归到一个类别中.在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计 ...

  3. 算法——机器学习——无监督学习—— K均值(K-means)图解动画

    快速排序 简介 算法过程 算法过程详解 一:聚类 二:聚类中心移动 算法结束 简介 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预 ...

  4. apriori算法_机器学习(无监督学习)关联规则Apriori算法原理与python实现

    关联规则Apriori算法 1.关联规则概述 关联规则算法是在一堆数据集中寻找数据之间的某种关联,通过该算法我们可以对数据集做关联分析--在大规模的数据中寻找有趣关系的任务.这些关系可以有两种形式:频 ...

  5. 机器学习-无监督学习-聚类:聚类方法(二)--- 基于密度的聚类算法【DBSCAN文本聚类算法,密度最大值文本聚类算法】

    密度聚类方法的指导思想是,只要样本点的密度大于某阀值,则将该样本添加到最近的簇中. 基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定,以数据集在空间分布上的稠密程度为依据进行聚类,即只要一 ...

  6. 吴恩达机器学习笔记-无监督学习

    机器学习-无监督学习 一.什么是无监督学习 二.聚类算法(无监督学习) 1.聚类算法的应用 2.K-Means算法 算法流程--图例 算法流程--文字描述 K-means分离不佳簇问题 K-means ...

  7. 机器学习两种方法——监督学习与无监督学习

    通俗讲解 一.前言 二.定义 1.监督学习 2.无监督学习 三.区别 四.范围 1.监督学习 2.无监督学习 五.选择 一.前言 在介绍监督学习和无监督学习之前,我们首先来了解一下什么是特征值和目标值 ...

  8. Python机器学习基础篇三《无监督学习与预处理》

    前言 前期回顾: Python机器学习基础篇二<为什么用Python进行机器学习> 上面这篇里面写了文本和序列相关. 我们要讨论的第二种机器学习算法是无监督学习算法.无监督学习包括没有已知 ...

  9. 【李宏毅机器学习】Unsupervised Learning - Word Embedding 无监督学习 - 词嵌入(p22) 学习笔记

    文章目录 Unsupervised Learning Word Embedding 用一个vector来表示一个word的几种方法 1-of-N Encoding Word Class Word Em ...

  10. 写给人类的机器学习 三、无监督学习

    三.无监督学习 原文: Machine Learning for Humans, Part 3: Unsupervised Learning 作者:Vishal Maini 译者:机器之心 聚类和降维 ...

最新文章

  1. local_response_normalization 和 batch_normalization
  2. 拜占庭将军问题与中本聪
  3. mysql is fashion ctf_《亲爱的,热爱的》中的 CTF 大赛是什么?参加这个比赛的体验怎么样?...
  4. Beautifulsoup 网页表格的解析
  5. SDUTOJ2828_字典树
  6. 浅谈 DDoS 攻击与防御
  7. webpack联邦模块之webpack运行时
  8. 熵编码之指数哥伦布编码(六)
  9. Heroku应用程序在尝试运行时不断崩溃怎么解决
  10. SQL Server-【知识与实战V】视图
  11. 如何使用 Secret?- 每天5分钟玩转 Docker 容器技术(108)
  12. 微软面试题 麻将胡牌算法
  13. 微信 8.0 「裂开」「炸弹」的特效代码
  14. 《东周列国志》第六十六回 杀宁喜子鱄出奔 戮崔杼庆封独相
  15. 转特权:NIOS2下的SDHC调试
  16. python(蟒蛇)三大控制流程语句
  17. 故障转移集群搭建高可用文件共享服务器
  18. 【计算机图形学】实验报告1用OpenGL画线命令绘制一个多边构成图形或场景
  19. 【感悟】20岁的人生不应该停止奋斗。----------------努力努力再努力
  20. 在线配色网,方便实用!

热门文章

  1. 转 Ubuntu16.04+QT4.8.7开发环境搭建
  2. ABAP术语-Business Components
  3. 51单片机的初了解(4)
  4. django 模型增加字段后迁移失败
  5. 通过WinForm控件创建的WPF控件无法输入的问题
  6. IOS开发--网络篇--GET请求和POST请求
  7. git push 出现 you are not allowed to upload merges 错误提示
  8. 站立会议(11月21日)
  9. P1403 [AHOI2005]约数研究
  10. inline-block,inline,block,table-cell,float