主要内容

t-SNE

t-SNE是什么?

t-SNE (tsne)是一种降维算法,适合高维数据可视化。这个名字代表t分布式随机邻居嵌入。这个想法是在低嵌入高维分维度的方式方面相似点。附近的点在高维空间中对应于附近的低维嵌入点,和遥远的点在高维空间中对应于遥远的嵌入低维点。(一般来说,是不可能匹配之间的距离完全高维和低维空间)。

tsne函数创建一组高维数据的低维点。通常,你想象的低维点自然集群在原始的高维数据。

该算法需要下面的一般步骤嵌入低维的数据。

  1. 计算两两之间的距离高维点。

  2. 创建一个标准偏差σ为每一个高维点这样困惑每一个点是在预定的水平。困惑的定义,请参阅计算距离,高斯方差和相似之处

  3. 计算相似度矩阵。这是X的联合概率分布,通过定义方程1

  4. 创建一组初始的低维点。

  5. 迭代更新低维指向最小化Kullback-Leibler背离高维空间和一个高斯分布t分布在低维空间。这个优化过程中最耗时的部分算法。

看到van der Maaten和辛顿[1]

t-SNE算法

基本t-SNE算法执行以下步骤。

准备数据

tsne首先删除输入的每一行数据包含任何X值。然后,如果标准化名称-值对是真正的,tsne中心X,减去每一列的均值和尺度X除以它的列的标准差。

原来的作者van der Maaten和辛顿[1]建议减少原始数据X使用低维版本主成分分析(PCA)。你可以设置tsneNumPCAComponents名称-值对的尺寸你喜欢,也许50。多运动控制这一步,预处理数据使用主成分分析函数。

计算距离,高斯方差和相似之处

预处理后,tsne计算距离d(x,xj)每对点之间xxj在x你可以选择不同的距离度量使用距离名称-值对。默认情况下,tsne使用标准的欧几里得度量。tsne使用后续计算距离的度量。

然后为每一行(X)tsne计算标准偏差σ这样困惑的行等于困惑名称-值对。困惑是定义一个模型的高斯分布如下。van der Maaten和辛顿[1]描述,“数据的相似点xj数据点x条件概率, p j | ,这x会选择xj作为它的邻居如果邻居选择比例在高斯概率密度为中心x。附近的数据点, p j | 是相对较高的,而对于广泛分离的数据点, p j | 几乎是无穷小(合理的高斯分布的方差值,σ)。”

定义的条件概率j鉴于作为

p j | = 经验值 ( d ( x , x j ) 2 / ( 2 σ 2 ) ) k 经验值 ( d ( x , x k ) 2 / ( 2 σ 2 ) ) p | = 0。

然后定义联合概率pij通过使对称条件概率:

p j = p j | + p | j 2 N , (1)

在哪里N是X的行数。

分布还没有他们的标准差σ定义的困惑名称-值对。让P代表了条件概率分布在所有其他数据点给定的数据点x。分布的困惑

困惑 ( P ) = 2 H ( P ) ,

在哪里H(P)是香农熵P:

H ( P ) = j p j | 日志 2 ( p j | )

困惑的措施的有效数量的邻居tsne执行二进制搜索的σ实现为每个点一个固定的困惑

初始化嵌入和散度

嵌入点X到低维空间,tsne执行优化。tsne试图最小化Kullback-Leibler差异模型的高斯分布的点X和一个学生t点Y的分布在低维空间。

最小化过程始于一个初始点集Y。tsne创建点默认为随机系统点。您还可以创建这些点自己,包括他们“则”名称-值对的tsnetsne然后计算每对点之间的相似性在Y。

的概率模型ij分布的点之间的距离yyj

j = ( 1 + y y j 2 ) 1 k l k ( 1 + y k y l 2 ) 1 = 0。

使用这个定义和模型的距离在X方程1,Kullback-Leibler联合分布之间的差异P

K l ( P | | ) = j j p j 日志 p j j

这个定义的后果,明白了有用的非线性失真

梯度下降的Kullback-Leibler散度

最小化Kullback-Leibler分歧,“准确”算法使用一个修改梯度下降过程。点的梯度对Y的散度

K l ( P | | ) y = 4 j Z ( p j j ) j ( y y j ) ,

标准化的术语

Z = k l k ( 1 + y k y l 2 ) 1

修改后的梯度下降算法使用一些调优参数来试图达到一个良好的局部最小值。

  • “夸张”——99年在第一次梯度下降法的步骤,tsne繁殖的概率pij方程1夸张的价值。这一步往往会创造更多的空间集群之间的输出Y。

  • “LearnRate”- - - - - -tsne使用自适应学习来提高梯度下降迭代的收敛性。下降算法的迭代步骤前一步的线性组合的血统和当前梯度。“LearnRate”是一个乘数电流梯度的线性组合。,雅各布斯[3]

Barnes-Hut t-SNE变化

t-SNE算法速度和减少内存使用,tsne提供了一个近似的优化方案。Barnes-Hut算法一起组织附近的点降低的复杂性和内存使用量t-SNE优化步骤。Barnes-Hut算法是一个近似优化器,而不是一个确切的优化器。有一个负的调优参数θ影响速度和精度之间的权衡。更大的值“θ”给快但不准确的优化结果。该算法相对不敏感“θ”值的范围(0.2,0.8)。

Barnes-Hut算法组附近的点在低维空间中,并执行一个近似梯度下降法根据这些组。这个想法,最初用于天体物理学,是附近点的梯度是相似的,因此可以简化计算。

看到van der Maaten[2]

t-SNE的特点

不能使用嵌入对新数据进行分类

因为t-SNE经常分离数据集群,它可以看起来t-SNE可以分类新数据点。然而,t-SNE不能分类的新观点。t-SNE嵌入是一个非线性映射,视。嵌入一个新的点在低维空间中,您不能使用之前的嵌入地图。相反,再次运行整个算法。

性能取决于数据的大小和算法

t-SNE可以花大量的时间来处理数据。如果你有N数据点在D要映射到的尺寸Y维度,然后

  • 的确切t-SNE需要秩序D*N2操作。

  • Barnes-Hut t-SNE需要秩序D*N日志(N)* exp(维度(Y))操作。

对于大型数据集,N大于1000左右,嵌入维数Y2或3,Barnes-Hut算法可以比精确的算法。

有用的非线性失真

T-SNE高维距离映射到扭曲的低维类似物。因为胖尾的学生t分布在低维空间中,tsne经常移动近点靠近,行动远比在高维空间点之间的距离,见下图。该图显示了高斯和学生t分布在点密度在0.25和0.025。高斯密度与高维距离,t密度与低维的距离有关。的t密度对应于近点接近,远点远,比高斯密度。

t = linspace (0 5);日元= normpdf (t, 0,1);y2 = tpdf (t, 1);情节(t, y1,“k”t y2,“r”)举行x1 = fzero (@ (x) normpdf (x, 0,1) -0.25, (0, 2));x2 = fzero (@ (x) tpdf (x, 1) -0.25 (0, 2));z1 = fzero (@ (x) normpdf (x, 0,1) -0.025, [0, 5]);z2 = fzero (@ (x) tpdf (x, 1) -0.025, [0, 5]);情节([0 x1], [0.25, 0.25],“k -”。)情节([0,z2]、[0.025, 0.025],“k -”。)情节(x1, x1, [0, 0.25],“g -”(x2, x2), [0, 0.25],“g -”)图((z1, z1), [0, 0.025],“g -”,(z2, z2], [0, 0.025],“g -”)文本(1.1,二十五分,“低音d近点更近”)文本(2.4、0。“低音d远点远”)传说(“高斯(0,1)”,“学生t (df = 1)”)包含(“x”)ylabel (“密度”)标题(密度的高斯t(0, 1)和学生(df = 1)的)举行

图包含一个坐标轴对象。坐标轴对象与标题高斯密度(0,1)和学生t (df = 1)包含10线类型的对象,文本。这些对象代表高斯(0,1),学生(df = 1)。

适用于这种扭曲是有益的。时不适用的情况下(如高斯方差高,降低了高斯峰和分布趋于平缓。在这种情况下,tsne可以移动近点之间的距离比原来的空间。为了实现一个有用的失真,

  • 设置“详细”名称-值对2

  • 调整“困惑”名称-值对的报道范围差异并不太远1,均值方差是近了1

如果你能达到这个范围的差异,然后图表应用,tsne失真是有益的。

为优化的有效方法tsne,看到瓦滕伯格,Viegas和约翰逊[4]

引用

[1]van der Maaten、劳伦斯和杰弗里•辛顿。“可视化数据使用t新力。”j .机器学习研究9日,2008年,页2579 - 2605。

[2]van der Maaten,劳伦斯。Barnes-Hut-SNEarXiv: 1301.3342 (cs.LG),2013年。

[3]雅各布斯,罗伯特A。“通过学习速率适应提高收敛速度。”神经网络1.4,1988年,页295 - 307。

[4]瓦滕伯格,马丁,Fernanda Viegas,伊恩•约翰逊。“如何有效地使用t-SNE。”蒸馏,2016年。可以在如何有效地使用t-SNE

相关的例子

更多关于