前言:本文介绍了三种无监督的生成式网络,自动编码器、变分自动编码器和生成对抗式网络,共同点是更新参数后,对采样进行重构来进行训练。
自动编码器
Autoencoder
有监督学习 有监督学习模型的训练,需要标注出数据的类别y。
无监督学习
生成式模型 Generative Models
生成式模型是一类无监督学习的模型,从左边的训练数据Pdata中按照一个特定的分布提取左边重要的特征生成右边的新的样本数据Pmodel,然后再从特征中生成如有监督学习算法所需要的样本,本质上是一个降低噪声提取特征的方法。
自动编码器
只有一个隐藏层的自动编码器
自动编码器的损失函数
多层的自动编码器,损失函数的计算按照向量的计算法则,单层感知机只有一个隐藏层,一层中的节点间没有连接,分类的超平面是一条直线。由于它是无监督的学习模型,损失函数主要是利用反向传播,来更新参数,重构自身的误差,因此不会用到样本的标签类别。
堆栈自动编码器
堆栈自动编码器增加了隐藏层1和3,输入下图清晰的训练样本-手写数字体,经过隐藏层处理后,由784维度降到300维,最后编码得到150维特征z,再经过重构后的的解码,从150维升至300维和原样本一致的784维,此时得到较清晰的数字手写体特征图。编码后得到的z,相当于是降维处理,可运用在有监督的模型中,如分类模型;此外,可以将特征图与监督学习的模型进行耦合,降低对为获取特征的训练样本的数据量。
用自动编码器得到新特征
基于自动编码器的图像聚类分析可视化
MNIST-数字手写体数据集,含有10种字体。从784维降到2维,根据颜色的深浅表示十种类别,与PCA主成成分分析里的降维效果类似,因此自动编码器也可以用于数据可视化。
变分自动编码器
VAE-Variational Autoencoders
VAE-图像生成
自动编码器可以处理输入未经处理后的样本获得样本特征z,即潜在变量,那么如何重构z得到新的样本x?这里使用变分自动编码器。变分编码器通过对z进行训练得到参数,然后再对z采样输出重构后的样本。
补充:
VAE模型的整体流程如下,但下面图中的字母表示与上面讲解中有所不同,图中的x帽子与上面讲解的经过重构Z得到的新样本X相同。
需要注意的是,VAE包含训练和解码生成样本的两个过程,在训练中,正向传播得到了生成的样本X帽子,然后求解梯度,反向传播更新噪声参数,再次放入采样变量Z进行重构,经过不断的学习,优化参数,训练得到了生成器的最优参数,再解码生成最终的样本,z*是假设的分布,星号即表示参数是假设或估计出的。
变分自动编码器的原理
x是潜在的,不可观测隐含的变量,z从pθ*(z)中采样得到,p是假设的一种分布,如高斯分布,参数θ*是通过学习得到的,通过训练得到z后,在给定z的条件下,从条件分布p(x|z)中采样生成样本x。
z的分布是基于先验假设,可使用最大似然估计求得参数,即求得z1,z2, z3.....分布的最大似然估计。对于所有样本的最大似然值的进行求和或积分,得到pθ(x)似然函数,为使参数θ*的似然函数得到优化即尽可能的取更大的值,可以找出函数的下界,使得函数的下界尽可能的大。
变分自动编码器中的分布及采样
左边的编码器的目的是从训练数据x中得到编码器z的分布,通常采用正态分布,需要得到均值和协方差矩阵。右边的解码器是从z中采样,依据条件分布,得到x关于z的条件分布。
VAE训练过程中的对数似然函数
Ez~qφ[logpθ]是Z的期望,可采用贝叶斯规则(P(A|B)=P(B|A)*P(A)/P(B)进行转换,然后分子分母同乘qφ,目的是方便接下来的变换;再把分子上的三个式子按照对数运算拆开,得到三个期望,后两个期望符合KL散度(相对熵)的定义,得到绿色字体的表达式。 第一项,Ez的计算通过一种重采样的技巧得到可微分的采样xi,xi是即为x的重构,这里只要知道是可计算的。
第二项,KL散度中,qφ(z|xi)是重构数据xi条件下z的分布,有均值和协方差;假设pθ(z)也是一个高斯分布,那么第二项是两个高斯分布的散度,可以获得一个很好的解析解。
第三项的KL散度是q和pθ的分布,在即得到重构数据xi的条件下求z中参数θ的概率,pθ是难解的后验概率,使此项大于0。
前两项组合后得到一个优化函数的下界,可对其求梯度并进行优化。在优化函数中求θ*和φ*,第一项取最大,第二项越小越好。
变分自动编码器的训练过程
变分自动编码器的训练过程中,按照上图所示,最大化原始输入数据被重构的对数似然函数;最小化近似后验分布的qφ接近先验分布pθ,训练先进行正向传播,然后传回梯度,进行反向传播调整参数。
解码生成新的样本
VAE生成的图像举例
左边服装的图片进行训练送给VAE,生成新的衣服的图片。
手写数字体送给右边的VAE进行训练,然后解码生成右边两张图片。
生成对抗网络
Generative Adversarial Networks
判别式模型和生成式模型
判别式模型中,按照一定的判别规则,不像生成式模型从观测变量X和类别变量Y的联合分布生成样本,而是遵循条件概率分布,P(Y|X;θ),θ是参数,特点是直接面向预测。
生成式模型中,在给定观测模型X之后输出生成模型Y与X的关系。在给定某些隐藏参数的条件下,生成式模型用于随机生成的观察模型进行建模,生成对抗式网络GAN是建立在深度学习上的生成式模型。
判别式模型和生成式模型的区别
举例:联合概率和条件概率的区别
生成式对抗网络-现实世界的启发
著名的艺术画作存在很多的赝品或仿品,上面是真迹,下面是仿制品。那么鉴定师的工作是鉴定出仿制品,鉴定师和仿制者构成了博弈,为了提高鉴定能力,鉴定师不断学习提高鉴伪的技术,而仿制者也会学习提升其仿真能力,两者互为促进。
生成对抗网络GAN的基本原理
类似于鉴定师和仿制者对应生成对抗网络中的判别器和生成器。生成器网络G(z)从随机噪声中生成图像,通常从高斯或者均匀分布中获取,将生成的图像和来自训练集的图像,进行判别得到该图为真实还是虚假的概率,通过训练,类似两者在对抗,不断的提高生成器和判别器的能力,使之趋于一个稳态。GAN不仅用于处理图像,也可用于生成文本。
判别模型的目标函数
生成模型的目标函数
GAN的训练算法
分别从训练样本和噪声选取m个样本,先固定生成器,更新判别器,使目标函数接近1,采用梯度上升的方法,更新生成器时,固定判别器,生成器优化取最小值,进行梯度下降;算法进行多次迭代,进行多次的交替学习。
GAN训练中的参数更新
判别器的目标函数中输出的结果是(0,1),模型的数学表达较容易并且易进行优化;而生成模型中,目标函数不容易定义,因为人们对生成结果的期望难以从数学上描述,所以将生成模型的目标函数送给判别器的目标函数来处理,将生成模型和判别模型紧密的联系在一起。
GAN在MNIST上的运行效果
在此项目中,GAN是无监督的模型,但由于是无监督,在图像处理中会出现变形,如人脸识别中,随机的噪声生成过程中是无监督的,可能将面部的某个部位变形,因此可以加上监督条件,对数据类别进行标注,形成有条件的GAN-CGAN(Conditional Generatibe Adversarial Nets),比如标注手写数字0-9,当在训练数字1时,生成器指定产生数字1的图像进行对抗。
end
往期推荐
好文章,我 在看❤