入门,训练GAN神经网络分析


整体:

首先明确,我们的目的是要一个能够模仿高手:即生成器,它是一个反卷积网络。有了它就可以大量模仿出我们想要的数据;

那么如何得到我们的生成器?这时候就想到用一个识别器(它是一个普通的卷积网络),来打辅助。通过2者不断螺旋迭代上升训练(难点也在这,容易崩塌),最终帮我们得到一个非常满意的生成器。

具体:

每次迭代就像周伯通的左右手互相搏斗,先拿点真实数据训练识别器的火眼晶晶,然后让生成器去模仿一些假冒货,识别器一眼就看出来了,然后就开始提高生成器的造假模仿能力。

达到什么程度,才停止一轮呢?有个判别公式:p(F)/(p(F)+p(T))这是识别器的概率,最终让识别器认为P(F)也认不出来,以为是真的,所以二者近似,最终为0.5,表示识别器也认不出来了,那我们的生成器的模仿能力相对不错了。


那么下一轮我们就要提高我们的识别器的识别能力,然后同样道理,生成器一下子被发现假的,所以我们又提高生成器造假能力。这样生成器,识别器不断迭代提升。

训练:

最终有个loss函数,大家先明确loss值越小说明我们训练的模型越好。所以整体的有个loss公式下次贴出来。

使得识别器的最终版本的识别能力肯定是越来越强。同样生成器的造假模仿能力也越来越强。识别器的区分能力最强,生成器的模仿数据与真实数据的误差越来越小。同时还满足我们的loss函数值越小模型性能越好的评价标准,这个loss函数设计巧妙。

minGmaxDV(D,G)=Expdata(x)[log(D(x))]+Ezpz(z)[log(1D(G(z)))]

上述这个公式说白了就是一个最大最小优化问题,其实对应的也就是上述的两个优化过程。

这个公式既然是最大最小的优化,那就不是一步完成的,其实对比我们的分析过程也是这样的,这里现优化D,然后在取优化G,本质上是两个优化问题,把拆解就如同下面两个公式:

优化D:

maxDV(D,G)=Expdata(x)[log(D(x))]+Ezpz(z)[log(1D(G(z)))]

优化G:

minGV(D,G)=Ezpz(z)[log(1D(G(z)))]

可以看到,优化D的时候,也就是判别网络,其实没有生成网络什么事,后面的G(z)这里就相当于已经得到的假样本。优化D的公式的第一项,使的真样本x输入的时候,得到的结果越大越好,可以理解,因为需要真样本的预测结果越接近于1越好嘛。对于假样本,需要优化是的其结果越小越好,也就是D(G(z))越小越好,因为它的标签为0。但是呢第一项是越大,第二项是越小,这不矛盾了,所以呢把第二项改成1-D(G(z)),这样就是越大越好,两者合起来就是越大越好。

那么同样在优化G的时候,这个时候没有真样本什么事,所以把第一项直接却掉了。这个时候只有假样本,但是我们说这个时候是希望假样本的标签是1的,所以是D(G(z))越大越好,但是呢为了统一成1-D(G(z))的形式,那么只能是最小化1-D(G(z)),本质上没有区别,只是为了形式的统一。之后这两个优化模型可以合并起来写,就变成了最开始的那个最大最小目标函数了。

推荐:

https://zhuanlan.zhihu.com/p/27440393

http://blog.csdn.net/on2way/article/details/72773771

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值