GANs笔记

GANs

判别模型与生成模型

**生成方法的特点:**可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。生成方法可以还原出联合概率分布P(Y|X),而判别方法不能。生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型,当存在隐变量时,仍可以用生成方法学习。此时判别方法就不能用。

**判别方法的特点:**不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。直接面对预测,往往学习的准确率更高。由于直接学习P(Y|X)或P(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

*生成模型和判别模型的联系*

​ 由生成模型可以得到判别模型,但由判别模型得不到生成模型。

对抗网络思想

对抗网络只是提出了一种网络结构,总体来说,整个框架还是很简单的。GANs简单的想法就是用两个模型,一个生成模型,一个判别模型。判别模型用于判断一个给定的图片是不是真实的图片(从数据集里获取的图片),生成模型的任务是去创造一个看起来像真的图片一样的图片。

交叉熵损失函数
L = − [ y l o g Y + ( 1 − y l o g ( 1 − Y ) ) ] ( Y 为 输 出 值 , y 为 0 ∣ 1 ) L=-[ylogY+(1-ylog(1-Y))](Y为输出值,y为0|1) L=[ylogY+(1ylog(1Y))](Yy01)
前向传播阶段:

  • 两种输入,一种是faka image(生成模型生成),一种是随机的从数据集中选出
  • 经过判别网络后输入值为一个0到1之间的数,用于表示输入图片为Real Image的概率,real为1,fake为0。
  • 使用得到的概率值计算损失函数。

损失函数

判别模型的损失函数:
− ( ( 1 − y ) l o g ( 1 − D ( G ( z ) ) ) + y l o g ( D ( x ) ) ) -((1-y)log(1-D(G(z)))+ylog(D(x))) ((1y)log(1D(G(z)))+ylog(D(x)))
实际上是D(x)的交叉熵损失函数,在将输入的G(z)判断为0时,反向传播加强这部分。

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

生成模型的损失函数
( 1 − y ) l o g ( 1 − D ( G ( z ) ) ) (1-y)log(1-D(G(z))) (1y)log(1D(G(z)))
对于生成模型来说,我们要做的是让G(z)产生的数据尽可能的和数据集中的数据一样。就是所谓的同样的数据分布。那么我们要做的就是最小化生成模型的误差,即只将G(z)产生的误差传给生成模型。
但是针对判别模型的预测结果,要对梯度变化的方向进行改变。当判别模型认为G(z)输出为真实数据集的时候和认为输出为噪声数据的时候,梯度更新方向要进行改变。

反向传播:

我们已经得到了生成模型和判别模型的损失函数,这样分开看其实就是两个单独的模型,针对不同的模型可以按照自己的需要去是实现不同的误差修正,我们也可以选择最常用的BP做为误差修正算法,更新模型参数。

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值