从GAN到ALI(20.11.13)

本文详细介绍了生成对抗网络(GAN)和对抗学习推断器(ALI)的工作原理。GAN通过一个生成器和一个判别器进行交互训练,目标是生成器能创建逼真的数据,而判别器能准确区分真实和虚假数据。ALI则包含一个编码器、解码器和判别器,其目标是使编码器和解码器的联合分布接近,以实现数据空间与潜在变量空间的映射。两者都涉及到复杂的损失函数和训练过程。
摘要由CSDN通过智能技术生成

概述

本文介绍Generative adversarial networks(生成对抗网络)和Adversarially Learned Inference(对抗学习推断器,跟GAN训练过程类似,ALI也是在每次迭代中同时更新生成器和判别器的参数)。

一、GAN

在这里插入图片描述
假设我们现在的数据集是手写体数字的数据集 minst, 生成模型的输入可以是二维高斯模型中一个随机的向量,生成模型的输出是一张伪造的 fake image,同时通过索引获取数据集中的真实手写数字图片 real image,然后将 fake image 和 real image 一同传给判别模型,由判别模型给出 real 还是 fake 的判别结果。

(一)前向传播阶段

1、模型输入

(1)随机产生一个随机向量作为生成模型的数据,然后经过生成模型后产生一个新的向量,作为 Fake Image,记作 D(z)。
(2)从数据集中随机选择一张图片,将图片转化成向量,作为 Real Image,记作 x。

2.模型输出

将由(1)或者(2)产生的输出,作为判别网络的输入,经过判别网络后输出值为一个0到1之间的数,用于表示输入图片为 Real Image的概率,real为1, fake为0 使用得到的概率值计算损失函数。
根据输入的图片类型是 Fake Image或 Real Image将判别模型的输入数据的label标记为0 或者1。即判别模型的输入类型为( xfake,0)或者(xreal,1)

(二)反向传播阶段

1、优化目标

min ⁡ G max ⁡ D V ( D , G ) = E x ∼ p data  ( x ) [ log ⁡ ( D ( x ) ) ] + E z ∼ p z ( z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \min _{G} \max _{D} V(D, G)=E_{x \sim p_{\text {data }}(x)}[\log (D(x))]+E_{z \sim p_{z}(z)}[\log (1-D(G(z)))] GminDmaxV(D,G)=Expdata (x)[log(D(x))]+Ezpz(z)[log(1D(G(z)))]

(1)优化 D(判别)
max ⁡ D V ( D , G ) = E x ∼ p data ( x ) [ log ⁡ ( D ( x ) ) ] + E z ∼ p z ( z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \max _{D} V(D, G)=E_{x \sim p_{\text {data}}(x)}[\log (D(x))]+E_{z \sim p_{z}(z)}[\log (1-D(G(z)))] DmaxV(D,G)=Expdata(x)[log(D(x))]+Ezpz(z)[log(1D(G(z)))]
优化 D 的公式的第一项,使得真样本 x 输入的时候,得到的结果越大越好,因为真样本的预测结果越接近1越好; 对于假样本G(z), 需要优化的是其结果越小越好, 也就是D(G(z)) 越小越好,因为它的标签为 0。但是第一项越大,第二项越小,就矛盾了,所以把第二项改为 1-D(G(z)),这样就是越大越好。
(2)优化G(生成)
min ⁡ G V ( D , G ) = E z ∼ p z ( z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \min _{G} V(D, G)=E_{z \sim p_{z}(z)}[\log (1-D(G(z)))] GminV(D,G)=Ezpz(z)[log(1D(G(z)))]
把第一项直接去掉, 这时候只有假样本,但是这个时候希望假样本的标签是 1,所以是 D(G(z))越大越好,但是为了统一成 1- D(G(z))的形式, 那么只能是最小化 1-D(G(z)), 本质上没有区别, 只是为了形式的统一。
之后这两个优化模型可以合并起来写,就变成最开始的最大最小目标函数了。

2、损失函数

(1)判别模型的损失函数
− ( ( 1 − y ) log ⁡ ( 1 − D ( G ( z ) ) ) + y log ⁡ D ( x ) ) -((1-y) \log (1-D(G(z)))+y \log D(x)) ((1y)log(1D(G(z)))+ylogD(x))

当输入是 real Iamge 数据时,我们只需要考虑第二部分,D(x)为判别模型的输出,表示输入 x 为 real 数据的概率,我们的目的是让判别模型的输出 D(x) 的输出尽量靠近 1。
当输入为 fake 数据时,我们只计算第一部分,G(z)是生成模型的输出,输出的是一张 Fake Image。我们要做的是让 D(G(z))的输出尽可能趋向于 0。这样才能表示判别模型是有区分力的。

(2)生成模型的损失函数
( 1 − y ) log ⁡ ( 1 − D ( G ( z ) ) ) (1-y) \log (1-D(G(z))) (1y)log(1D(G(z)))
我们希望 G(z)产生的数据尽可能和数据集中的数据分布一样。即最小化生成模型的误差,只将由 G (z)产生的误差传给生成模型。
但是针对判别模型的预测结果, 要对梯度变化的方向进行改变。 当判别模型认为 G (z) 输出为真实数据集和噪声数据的时候,梯度更新方向要进行改变。

(3)最终损失函数
( 1 − y ) log ⁡ ( 1 − D ( G ( z ) ) ) ( 2 ∗ D ˉ ( G ( z ) ) − 1 ) (1-y) \log (1-D(G(z)))(2 * \bar{D}(G(z))-1) (1y)log(1D(G(z)))(2Dˉ(G(z))1)
其中 D ˉ \bar{D} Dˉ表示判别模型的预测类别,对预测概率取整, 为 0 或者 1.用于更改梯度方向,阈值可以自己设置,或者正常的话就是 0.5。

二、ALI

The generation network maps samples from stochastic latent variables to the data space while the inference network maps training examples in data space to the space of latent variables.

(一)模型结构

在这里插入图片描述
如上图所示,ALI由一个编码器,一个解码器和一个判别器组成,判别器的输入为潜在变量和训练样本的联合样本,判别器需要判断一个联合样本是来自于编码器还是解码器。而编码器和解码器的训练目标则是尽可能的让判别器判断错误。所以ALI的目标是让编码器的联合分布接近解码器的联合分布。

1、生成网络G x (z) :将潜在变量的随机样本映射到数据空间;
2、推断网络G z (x) :将数据空间的训练样本映射到潜在变量空间;
3、判别网络D(x , z) :分辨联合样本(潜在变量和训练样本(x,z))是来自生成网络还是推断网络的。

在这里插入图片描述
ALI/BiGAN 的结构,由三个网络构成。其中一个是判别器,还有一个网络将噪声向量从隐空间映射到图像空间(解码器,以 G 表示),最后一个网络(编码器,以 E 表示)将真实图像从图像空间映射到隐空间。

(二)损失函数

the two following probability distributions over x and z:
在这里插入图片描述
在这里插入图片描述

(三)算法过程

在这里插入图片描述
参考资源:
1、https://blog.csdn.net/weixin_40680322/article/details/108561948
2https://blog.csdn.net/R1uNW1W/article/details/78399804utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.compare
3、https://blog.csdn.net/m0_37596280/article/details/80823060
4、论文
生成模型—生成对抗网络
Adversarially Learned Inference

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值