GAN实战笔记——第三章第一个GAN模型:生成手写数字

本文介绍了如何使用GAN生成手写数字,详细阐述了GAN的基础,包括对抗训练、生成器与判别器的目标及训练过程。通过Python和Keras实现,构建并训练了生成器和判别器,最终生成了逼真的手写数字图像。
摘要由CSDN通过智能技术生成

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

第一个GAN模型—生成手写数字

一、GAN的基础:对抗训练

形式上,生成器和判别器由可微函数表示如神经网络,他们都有自己的代价函数。这两个网络是利用判别器的损失记性反向传播训练。判别器努力使真实样本输入和伪样本输入带来的损失最小化,而生成器努力使它生成的为样本造成的判别器损失最大化。

训练数据集决定了生成器要学习模拟的样本类型,例如,目标是生成猫的逼真图像,我们就会给GAN提供一组猫的图像。

用更专业的术语来说,生成器的目标是生成符合训练数据集数据分布的样本。对计算机来说,图像只是矩阵:灰度图是二维的,彩色图是三维的。当在屏幕上呈现时,这些矩阵中的像素值将显示为图像线条、边缘、轮廓等的所有视觉元素。这些值在数据集中的每个图像上遵循复杂的分布,如果没有分布规律,图像将不过是些随机噪声。目标识别模型学习图像中的模式以识别图像的内容,生成器所做的可以认为是相反的过程:它学习合成这些模式,而不是识别这些模式。

1. 代价函数

遵循标准的表示形式,用J(G)J(G)\text{J}{(G)}表示生成器的代价函数,用J(D)J(D)\text{J}{(D)}表示判别器的代价函数。两个网络的训练参数(权重和偏置)用希腊字母表示:θ(G)θ(G)\theta{(G)}表示生成器,θ(D)θ(D)\theta{(D)}表示判别器。

GAN在两个关键方面不同于传统的神经网络。第一,代价函数JJJ,传统神经网络的代价函数仅根据其自身可训练的参数定义,数学表示为J(θ)J(θ)\text{J}{(\theta)}。相比之下,**GAN由两个网络组成,其代价函数依赖于两个网络的参数**。也就是说,生成器的代价函数是J(G)(θ(G),θ(D))J(G)(θ(G),θ(D))\text{J}{(G)}({\theta}^{(G)}, {\theta}{(D)}),而判别器的代价函数是J(D)(θ(G),θ(D))J(D)(θ(G),θ(D))\text{J}{(D)}({\theta}^{(G)}, {\theta}^{(D)})​。

第二,在训练过程中,传统的神经网络可以调整它的所有参数θθ\theta。在GAN中,每个网络只能调整自己的权重和偏置。也就是说,在训练过程中,生成器只能调整θ(G)θ(G){\theta}{(G)},判别器只能调整θ(D)θ(D){\theta}{(D)}​​。因此,每个网络只控制了决定损失的部分参量。

为了使上述内容不那么抽象,考虑下面这个类比。想象一下我们正在选择下班开车回家的路线,如果交通不堵塞,最快的选择是高速公路,但在交通高峰期,优选是走一条小路。尽管小路更长更曲折,但当高速公路上交通堵塞时,走小路可能会更快地回家。

让我们把它当作一道数学题——JJJ作为代价函数,并定义为回家所需的时间。我们的目标是尽量减小JJJ。为简单起见,假设离开办公室的时间是固定的,既不能提前离开,也不能为了避开高峰时间而晚走。所以唯一能改变的参数是路线θθ\theta。

如果我们所拥有的是路上唯一的车,代价将类似于一个常规的神经网络:它将只取决于路线,且优化J(θ)J(θ)\text{J}{(\theta)}​完全在我们的能力范围内。然而,一旦将其他驾驶员引入方程式,情况就会变得更加复杂。突然之间,我们回家的时间不仅取决于自己的决定,还取决于其他驾驶员的行路方案,即J(θ我们,θ其他驾驶员)J(θ我们,θ其他驾驶员)\text{J}({\theta}^{\text{我们}}, {\theta}^{\text{其他驾驶员}})。就像生成器网络和判别器网络一样,“代价函数”将取决于各种因素的相互作用,其中一些因素在我们的掌控之下,而另一些因素则不在。

2. 训练过程

上面所描述的两个差异对GAN的训练过程有着深远的影响。传统神经网络的训练是个优化问题,通过寻找一组参数来最小化代价函数,移动到参数空间中的任何相邻点都会增加代价。这可能是参数空间中的局部或全局最小值,由寻求最小化使用的代价函数所决定。

最小化代价函数的优化过程如下图所示:

碗形网格表示参数空间θ1θ1\theta_1和θ2θ2\theta_2中的损失JJJ。黑色点线表示通过优化使参数空间中的损失最小化

因为生成器和判别器智能调整自己的参数而不能相互调整对方的参数,所以GAN训练可以用一个博弈过程来更好的描述,而非优化。该博弈中的对手是GAN所包含的两个网络。

当两个网络达到纳什均衡时GAN训练结束,在纳什均衡点上,双方都不能通过改变策略来改善自己的情况。从数学角度来说,发上在这样的情况下——生成器的可训练参数θ(G)θ(G)\theta{(G)}对应的生成器的代价函数J(G)(θ(G),θ(D))J(G)(θ(G),θ(D))\text{J}{(G)}({\theta}^{(G)}, {\theta}{(D)})最小化;同时,对应该网络参数θ(D)θ(D)\th

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值