• 机器学习: t-Stochastic Neighbor Embedding 降维算法 (二)


    上一篇文章,我们介绍了SNE降维算法,SNE算法可以很好地保持数据的局部结构,该算法利用条件概率来衡量数据点之间的相似性,通过最小化条件概率 pj|ipi|j 之间的 KL-divergence,将数据从高维空间映射到低维空间。

    Symmetric SNE

    SNE算法利用的是条件概率,我们也可以利用联合概率,衡量两个空间 的联合概率分布的 KL-divergence,假设高维空间 的联合概率分布为 Pi,低维空间 的联合概率分布为 Qi,可以定义两者的 KL-divergence 为

    C=KL(P||Q)=ijpijlogpijqij

    同样的 pi|i=0, qi|i=0,因为 pij=pji, qij=qji,所以把这种形式的SNE称为 symmetric-SNE,我们可以定义联合概率 pij 以及 qij 为:

    pij=exp(xixj2/2σ2)klexp(xkxl2/2σ2)

    qij=exp(yiyj2)klexp(ykyl2

    联合概率的一个问题在于当数据点 xi 离其它的数据点都很远的时候,意味着 pij 会是一个非常小的值,这样映射的低维空间对应的点 yi 对 cost function 的影响也会很小,yi 将很难被其它点确定。为了解决这个问题,这里定义的联合概率由条件概率来确定 pij=pj|i+pi|j2, 我们可以进一步地定义梯度:

    Cyi=4j(pijqij)(yiyj)

    t-SNE

    t-SNE 就是利用一个 student-distribution 来表示低维空间的概率分布:

    qij=(1+yiyj2)1kl(1+ykyl2)1(4)

    而高维空间的联合概率分布依然用高斯函数来拟合,我们可以得到梯度表达式为:

    Cyi=4j(pijqij)(yiyj)(1+yiyj2)1(5)

    这个算法的流程图如下所示

    这里写图片描述

    这个算法的源代码可以在作者的网站上下载:

    https://lvdmaaten.github.io/tsne/

  • 相关阅读:
    Linux 的grep命令显示日志文件指定前后行信息
    Windows下安装MySQL详细教程
    Maven安装配置(Windows10)
    Windows下配置Tomcat服务器
    java环境变量 的配置与详解
    工具使用篇-索引
    Fiddler抓包工具总结
    使用fiddler实现手机抓包
    网络安全-索引
    网络嗅探技术浅析
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412424.html
Copyright © 2020-2023  润新知