前言:本文介绍了三种无监督的生成式网络,自动编码器、变分自动编码器和生成对抗式网络,共同点是更新参数后,对采样进行重构来进行训练。 算法
自动编码器c#
Autoencoder网络
有监督学习 有监督学习模型的训练,须要标注出数据的类别y。函数
无监督学习 性能
生成式模型 Generative Models学习
生成式模型是一类无监督学习的模型,从左边的训练数据Pdata中按照一个特定的分布提取左边重要的特征生成右边的新的样本数据Pmodel,而后再从特征中生成若有监督学习算法所须要的样本,本质上是一个下降噪声提取特征的方法。字体
自动编码器 优化
只有一个隐藏层的自动编码器编码
自动编码器的损失函数3d
多层的自动编码器,损失函数的计算按照向量的计算法则,单层感知机只有一个隐藏层,一层中的节点间没有链接,分类的超平面是一条直线。因为它是无监督的学习模型,损失函数主要是利用反向传播,来更新参数,重构自身的偏差,所以不会用到样本的标签类别。
堆栈自动编码器
堆栈自动编码器增长了隐藏层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
往期推荐
好文章,我 在看❤