tsne 学习使用

  1. t-SNE的提出背景:
    1. 数据一般都会服从某种分布,希望可以将数据根据某种规则来映射到这个分布上
    2. 高维度不同点之间的距离是一个分布,当两类样本比较相近时,欧式距离会把偏差磨平,导致最终发现不了差别。即维度爆炸导致距离度量出现问题。
  2. 前置知识铺垫:
    1. 1维的世界最多有两个点两两距离相同。2维的世界最多有3个点(等边三角形),3维有4个。
    2. 降维:

      1. 最简单的是投影:沿着一个轴把一个方向数据变化消除。每次投影可以减少一个维度。

      2. PCA(主成分分析):

        1. 一个正交化线性变换,把数据变换到一个新的坐标系统中,使得数据的任何投影的第一大方差在第一个坐标(第一主成分)上,第二大方差在第二个坐标(第二主成分)上。

        2. PCA被称为线性降维方法,因为对数据进行了线性变换。

      3. LLE:局部线性嵌入算法,是一种非线性算法,其认为每一个数据点都可以由其近邻点的线性加权组合构造得到。
    3. 谱方法:涉及矩阵特征向量的方法。
    4. 线性方法计算效率高,非线性算法对于大规模数据需要考虑随机游走等优化,否则计算代价非常高。
    5. 旋转、平移、翻转不会改变数据本身的结构。
    6. 欧几里得距离:平坦空间的最短距离。

    7. 广义的正方体:

      1. 特定:相邻的点仅有一个分量不同,可以从一个点出发不重复沿着边走边所有的点。

      2. 计算每个点到其他点的距离的方差,发现方差随着维度增多缓慢减小。

      3. 一个分布的方差有数据分布的“形状”决定,越弥散的分布有越大的方差。方差不变意味着分布形状基本不变。

    8. “维数灾难”:随着维数增大,边之间的“分辨率“会降低。

    9. 由中心极限定理知,对于独立同分布的数据,数据样本越多则越能精确地估计数据的均值。该结论对于方差比、均值差等也成立。

    10. 数据很少以完全对称的方式分布,如:50维的轴对齐高斯分布,其中坐标i的标准偏差为1/i,即看到的是一个长椭圆形的点云。

    11. 降维肯定会丧失信息,但核心让距离近的点更近,距离远的点更远,即以找出各类别群的gap为主。

    12. 降维即找到embedding,从高维空间中找到可以很好地表征低维度空间的嵌入。

      1. 找嵌入常见方法:autoencoder

      2. 降维常用的方法:

        1. PCA,旋转找到能表示方差最大的线性成分。因为一般方差更大,则特征在这个维度隐藏的信息更多,即这个维度有更多的信息帮助表征。

        2. 基于距离相似的E:MDS:将原空间中的边和当前空间中的边两两计算差的平方,所有求和之后除以原空间中的边的平方的和。    

        3. Isomap:将距离推广到了“测地距离”。“测地距离”:两点之间最短路径长度(离散空间)或某种加权的测度(连续的空间)。

        4. 学习思想:sammon mapping:试图靠拢相邻点的做法失败了,是否可以考虑推远不相邻的点。

        5. 使用knn算法来确定保留每个点最近的k个边。

          1. 由于knn仅选择最短的几个边,即使各个边长度差距不大,也增加了区分度。

          2. 引入knn将问题变成了黑盒:k对于数据本身的意义是什么?是否选中?

          3. 改进:用概率分布取代“是否”,这类方法称为SNE(随机领居嵌入)

            1. 将距离转换为概率分布,概率分布中概率较大的表示更有可能“靠在一起”。

            2. 将有限个连续数量值转换为概率分布:

              1. 先将一个连续的概率分布的密度函数作用到数值上,得到一些离散的概率值、

              2. 归一化概率值:得到一个标准的离散的概率分布。是离散分布的一种近似。

              3. 评测原来和现在概率的“相似性”

              4. 对于有重叠的概率分布,可以使用KL散度来表征相似。

    13. SNE
      1. 将原始高维空间中的每个点相关的距离(邻居距离)转化为概率分布。
        1. 通过控制分布的形状来控制距离的区分度。
        2. 选择均值为0的高斯分布(正态分布):高斯分布在方差相等的分布中信息熵最大。在分布未知的情况下根据中心极限定理选择高斯分布,因为它是对未知分布的良好近似。
        3. 用信息熵评价分布的区分度,熵越高则区分度越低。信息熵是关于方差的单调递增函数:方差越小则分布越尖锐,区分度越高,否则分布越平坦,区分度越低。
      2. 将原始高维空间中邻居距离转化为所有边距离的概率分布。
        1. 上方得到的仅仅是关于每个点的邻居距离的概率分布(n个点的数据就有n个分布),目的是控制距离的显著程度。
        2. 将这些分布排列成矩阵,每行都是一个归一化的概率分布。
        3. 将这n个独立的分布转换为关于所有边的分布。
          1. 进行归一化:因为得到的是n个已经归一化的分布,为使得总体分布归一化,只需将矩阵中的每一项除以n即可。
          2. 对称化:g_(i,j)和g(j,i)对应同一距离,应该相同。所以设置为各取一半再相加作为新的值。
          3. 至此便把距离分布转换为了概率分布。
      3. 将低维度维空间中距离转化为概率分布:
        1. 低维度中不应使用带参数的概率密度    
        2. 传统的SNE使用的是N(0,1)(标准正态分布),但使用自由度为1的(0均值)t分布效果更好,对应的方法为t-SNE.
  3. t-SNE:(核心:把距离以概率分布的角度阐述)
    1. 计算某一个点到其他所有点的距离,然后映射到t分布上
    2. t-SNE的降维关键:把高维度的数据点之间的距离转化为高斯分布概率。(把一个点到各个点的距离用高斯分布的形式表示,并进行归一化。近的点得到的概率大,越远的点得到的概率越小。)
    3. 高维度相似度用高斯,低维度用t分布,然后设置一个惩罚函数,就实现了x降低维度但是保留一定局部特征的方法。
    4. 使用KL散度作为惩罚函数,保证在高维度相似度高的点在低维度相似度也高。(因为:分布相似就会导致特性相似
    5. 降维必然带来信息损失,t-SNE保留局部信息必然牺牲全局信息,而因为t分布比 高斯分布更加长尾,可以一定程度减少这种损失
    6. tsne的原理要点:
      1. 将原始高维空间中的每个点相关的距离(邻居距离)转化为概率分布
      2. 将原始高维空间中邻居距离转化为所有边距离的概率分布
      3. 将低维度维空间中距离转化为概率分布
      4. 优化:
        1.  t-SNE的优化目标是非凸的。
        2. 优化目标是最小化KL散度。
    7. 使用点之间的距离(如欧式距离)代替点的坐标:

      1. 距离不受旋转和平移的影响,并且之和点数有关)。

      2. 各点间的距离完整保留空间结构,且去除不必要的转动和平移翻转。且距离本身不直接包含维度信息,不会受到冗余维度的影响。

    8. t-SNE属于流形学习范畴:
      1. 流形学习:    
        1. 各个样本在高维的空间表示,均匀分布在一个流行(可理解为空间中一类样本的“形状”)中。
        2. 高维度的流形或形状可以有低维度进行折叠或变换得到的。
      2. 提出流形学习的目的:学到低维度空间到高维空间的变换,然后表征出各个高维空间中样本的特点。
  4. 关于t分布:
    1. 学生分布。    
    2. 自由度为1的密度函数:
    3. t(x)=1/(π(1+x^2)),比标准正态分布更加平缓。
    4. t分布效果更好的原因:正态分布用于估计方差为δ的数据的均值,t分布用于估计方差未知的数据的平均值。即t分布低位数据没有先验方差的情况,而标准分布假定了方差为1。
  5. t-SNE在降维的过程中保留了很多的规律。
  6. 一般情况下,降维到三维要优于到二维,但论文和著作中更偏向二维的数据。
  7. t-SNE在连续运行的时间内不一定可以产生相似的输出。
  8. t-SNE图比任何线性投影都更精确。

  9. 可使用t-SNE判断是否是真实的随机数据:

    1. 通过不断改变perplexity画图,如果(2,5,30,50,100)取值得到的结果都是无法区分的)

    2. 点云是随机生成的,它没有统计上有趣的簇:那些“簇”没有意义。低perplexity值通常会导致这种分布。将这些团块识别为随机噪声是读取t-SNE图的重要部分。

  10. t-SNE的缺点:速度慢。但对于大型真实数据集和对深度神经网络的分析上t-SNE优势很大。
  11. t-SNE的可调参数:
    1. perplexity:
      1. 控制的是尺度。
      2. 因为采用了高斯分布,所以知道大约有68%的数据集在一个标准差δ内,即大约在一个perplexity的范围内。
      3. perplexity极小时,在计算邻居距离的过程中,刚好可以覆盖最小尺度的“邻居”。然后再执行全局的归一化和对称化。
      4. perplexity用于平衡对数据的局部和全局的注意力,该参数可看做对于每个点的邻居数量的估计。
      5. 可以通过分析不同的perplexity来从t-SNE中获取更多的信息。
      6. perplexity需要比点的数量小得多。
      7. 对于足够高的perplexity值,细长形状易于阅读。在低复杂度时,局部效应和无意义的“聚集”占据中心位置。
      8. 可通过微调perplexity来观察全局几何。
        1. 原因:现实世界的数据可能有多个具有不同元素数量的簇。可能没有一个perplexity值可以捕捉所有簇群的距离,但复杂度是一个全局参数。
        2. t-SNE图中分离良好的集群之间的距离可能毫无意义。
    2. step的设置也很重要,最好是在结果稳定之后再停止。
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值