美文网首页
读论文-以VAE和GAN为主体网络结构的深度聚类算法

读论文-以VAE和GAN为主体网络结构的深度聚类算法

作者: 董帅2019 | 来源:发表于2019-11-19 20:42 被阅读0次

    最近在读聚类方向的论文,在这里做个简单总结

    信息论基本概念

    基本概念与公式:

    信息量:

    信息量是对信息的度量,就跟时间的度量是秒一样,当我们考虑一个离散的随机变量 x 的时候,当我们观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢?
    信息量具有三个性质分别是:

    单调性,发生概率越低的事件,其携带的信息量越高,如某地产生了地震了;
    非负性,一个具体事件的信息量应该是随着其发生概率而递减的,且不能为负;
    累加性,如果我们有俩个不相关的事件x和y,那么我们观察到的俩个事件同时发生时获得的信息应 该等于观察到的事件各自发生时获得的信息之和。
    

    由上面的三个性质,可以得出信息量的公式:


    信息熵:

    信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。一个随机变量的熵越大,意味着不确定性越大,那么也就是说,该随机变量包含的信息量越大


    互信息:

    是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不确定性
    下面是互信息的计算公式:


    互信息的推导公式


    相对熵/KL散度:

    相对熵(relative entropy),又被称为Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量 。在在信息理论中,相对熵等价于两个概率分布的信息熵(Shannon entropy)的差值。

    相对熵是一些优化算法,例如最大期望算法(Expectation-Maximization algorithm, EM)的损失函数 。此时参与计算的一个概率分布为真实分布,另一个为理论(拟合)分布,相对熵表示使用理论分布拟合真实分布时产生的信息损耗。

    公式推导:


    信息熵
    KL散度,两个信息熵的差

    Gaussian Mixture Model(高斯混合模型)

    这是一个有别于K-means的聚类算法,它的主要思想是用多个不同参数的高斯分布的和去拟合任意的N维数据点的分布,如下图所示:


    image.png

    优化目标如下:

    L为似然函数,其中Wi,j为第i个X属于第j个高斯分布的概率,P(Xi)为Xi在各个分布下的概率,我们的目的就是通过迭代,让似然函数越来越大

    迭代过程-最大期望算法(Expectation–Maximization, EM算法):

    这里采用的是分布更新的思想,先保持各个分布的均值与方差不动,更新W,然后再保持W不变,更新均值和方差。具体过程如下:

    E步骤

    E步骤中,我们的主要目的是更新W。第iii个变量属于第m类的概率为:


    image.png

    根据W,我们就可以更新每一类的占比Pim:


    image.png
    M步骤

    到这里我们已经获得了W的值,然后我们将W带入似然函数L,对L求导并令导数为0可以分别估计出均值和方差的计算式,从而用来更新。
    第m类的第k个分量的均值


    image.png

    第m类的第k个分量的方差


    image.png

    这样我们就实现了一个迭代步骤,再循环迭代设置一个终止条件,就是完整的GMM聚类算法了。

    从上面的分析中我们可以看到 GMM 和 K-means 的迭代求解法其实非常相似(都可以追溯到 EM 算法,下一次会详细介绍),因此也有和 K-means 同样的问题──并不能保证总是能取到全局最优,如果运气比较差,取到不好的初始值,就有可能得到很差的结果。对于 K-means 的情况,我们通常是重复一定次数然后取最好的结果,不过 GMM 每一次迭代的计算量比 K-means 要大许多,一个更流行的做法是先用 K-means (已经重复并取最优值了)得到一个粗略的结果,然后将其作为初值(只要将 K-means 所得的 centroids 传入 gmm 函数即可),再用 GMM 进行细致迭代。

    如我们最开始所讨论的,GMM 所得的结果(Px)不仅仅是数据点的 label ,而包含了数据点标记为每个 label 的概率,很多时候这实际上是非常有用的信息。最后,需要指出的是,GMM 本身只是一个模型,我们这里给出的迭代的办法并不是唯一的求解方法。感兴趣的同学可以自行查找相关资料。

    参考文章:
    详解EM算法与混合高斯模型(Gaussian mixture model, GMM)
    聚类之高斯混合模型(Gaussian Mixture Model)
    GMM与EM算法的Python实现

    论文一:Auto-Encoding Variational Bayes(变分贝叶斯自编码器)-VAE

    要解决的问题:

    把AutoEncoder改造为像GAN一样的生成网络

    之前的方案:

    GAN

    论文中的方案:

    作者的主要想法是,使AE中间层Z的值来自某一个概率分布,如标准正太分布,从而达到用标准正太分布生成一个变量,输入到Decoder中都能得到一张图片的效果。
    作者将Encoder改造成了概率模型生成器,对于每一个输入的X都生成一个均值和方差,来构造一个高斯分布,然后用这些高斯分布来产生中间层Z。


    网络结构

    当X对应的每个分布都近似服从于标准正太分布的时候,那么Z的分布也就是一个标准正太了,请看如下推导:


    P(Z|X)为我们用Encoder网络生成的多个近似标准正太分布
    那么问题来了,我们如何迫使Encoder网络产生的每个分布都近似服从于标准正太呢,这里我们要用到KL散度的概念,通过将KL散度加入到损失函数中,来达到这一目的。
    生成的正太分布与标准正太分布的KL散度推导过程

    创新点:

    作者将AE降维网络改造成了生成网络
    引入KL散度来评判生成的概率模型是否为标准正太分布

    实验结果:

    VAE网络生成的Mnist数字

    参考文献:

    变分自编码器(一):原来是这么一回事

    论文二:Variational Deep Embedding:An Unsupervised and Generative Approach to Clustering(变分深度嵌入:一种无监督的生成方法来做聚类)-VaDE

    要解决的问题:

    高维数据聚类

    之前的方案:

    DEC,AAE,AE+GMM,GMM等

    论文中的方案:

    网络结构图

    作者将VAE(变分自编码器)和GMM(高斯混合模型)结合到一起,用GMM来替换普通VAE中的标准正太分布,从而达到降维并且聚类的效果。

    创新点:

    首次将VAE与GMM想结合,实现了聚类的同时,又能够利用VAE的生成器来生成任意类别的数据。

    实验结果:

    图片.png

    论文三:DEEP ADVERSARIAL GAUSSIAN MIXTURE AUTO-ENCODER FOR CLUSTERING(深度对抗混合自编码器聚类)-DAC

    要解决的问题:

    高维读聚类

    之前的方案:

    VaDE,DEC,GMM

    论文中的方案:

    网络结构图

    1.AAE与VAE类似,都是在AE基础上力求控制中间层数据的分布,只不过实现方式不同,VAE通过改变网络结构,将Encoder改造成了均值与方差计算网络,而达到目的,而AAE是通过对中间层施加对抗学习,迫使其服从某一概率分布。
    2.作者和上篇论文作者思路一致,在AAE(Adversarial Autoencoders)的基础上,将AE中间层的数据分布改为GMM,从而达到聚类的效果。

    具体实现过程:

    先通过AE网络进行降维,然后计算降维损失


    image.png

    再取降维后的数据进行GMM聚类,计算聚类损失


    image.png
    然后,将降维后的数据同GMM聚类器生成的数据放入到判别器中,由判别器来区分到底哪个是真实数据,计算GAN的损失
    image.png

    三个损失一起优化,迫使AE降维到对GMM聚类更友好的空间上

    创新点:

    结合AAE与GMM,构造的一个聚类器

    实验结果:

    图片.png

    不足之处:

    1.创新不足,模仿VaDE的思路
    2.论文结果表中的DAC EC虽然表现声称超过了VaDE,但是这是多个模型集成的结果,而VaDE及其他算法并没有做此类对比实验,所以并不能算数

    论文四:InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets(通过信息最大化生成对抗网络学习可解释的表示)-InfoGAN

    要解决的问题:

    GAN网络中,输入Z的可解释性问题,从而能够通过改变Z的值来控制网络生成的结果,并且能够用来聚类

    之前的方案:

    无监督hossRBM,有监督DC-IGN等

    论文中的方案:

    网络结构图

    作者在原始GAN输入Z的基础上又加上了称为latent code的C,同时输入到生成器G,C可以是连续变量也可以是离散变量,通过对C的改变可以达到控制生成结果的目的。

    为了达成这个目标,作者引入了互信息的计算,使C在经过对于生成器G产生的结果有一定的影响,即迫达到控制生成结果的作用。


    我们想到的的第一个损失函数

    但是计算互信息时需要用到P(C|X)这一分布,这个我们是没有的,所以我们模拟VAE的思路用神经网络拟合一个这一的分布,记为Q(c|x),从而上面的损失函数进一步推导为:



    最终考研得到InfoGAN所使用的损失函数,如下:


    InfoGAN目标函数

    其中Q(c|x)的网络是由判别器D为主体,然后加了一层全连接层,用来试图复原C,从而计算互信息损失L,这样也免去了从新构建一个网络,减少了计算量。

    当C中包含有K个离散值的变量时,网络就具有了聚类的作用

    实验结果:

    (a)(c)(d)是训练时带有互信息损失部分,可以看到c1可以表示生成的数字类型-即达到了聚类的效果,c2可以控制数字的旋转角度,c4可以表示数字的粗细,而不带有互信息损失的(b)中的c1则对生成结果没有明显作用 人脸数据集上能够控制姿势,抬头,光照,脸型等

    创新点:

    将互信息的概念引入GAN中,从而达到输入对生成结果控制的目的

    不足之处:

    用文中的方法虽然能够通过C的改变来控制生成的结果,但是具体C的哪一部分能够控制对应结果的哪一部分,这个再网络训练前(出结果前)并不知情,也就是说C对结果的控制,是最后试出来的,也许这是一个新的研究方向。

    论文五:UNSUPERVISED AND SEMI-SUPERVISED LEARNING WITH CATEGORICAL GENERATIVE ADVERSARIAL NETWORKS(用生成对抗网络进行无监督和半监督学习)-CatGAN

    要解决的问题:

    无监督和半监督的聚类问题

    之前的方案:

    K-means,GMM,RIM

    论文中的方案:

    网络结构图

    作者将标准的GAN网络的判别器D改造成了分类网络,不再输出是否是真实数据,然后对于生成器G生成的数据不做确定的分类。

    同时将生成器G改造为,能够生成高度确定的各种类型的数据,并且每种类型的数据生成概率相同。

    同时利用信息熵来计算输入到D的数据到底来自生成器G还是真实数据集。

    损失函数

    创新点:

    改造了GAN的生成器和判别器,同时引入信息熵来达到聚类的效果

    不足之处:

    没看太懂- -!

    相关文章

      网友评论

          本文标题:读论文-以VAE和GAN为主体网络结构的深度聚类算法

          本文链接:https://www.haomeiwen.com/subject/gavpictx.html