【机器学习理论】生成式对抗网络(GAN)

发布于 2024-07-09 302 次阅读 预计阅读时间: 2 分钟


我们之前已经学过很多网络了,这些网络都是一个函数,输入xx输出xx。生成网络的不同之处在于它的输入有两个部分,一个是x,一个是简单分布z,通过网络希望得到一个复杂分布,而这种有生成分布的网络就称为生成式网络。

为什么我们希望输出一个分布呢?我们用预测视频接下来的内容作为例子:我们看到,在喂了很多走迷宫的素材后,神经网络输出的预测内容居然出现了在岔口分裂的情况,这是因为喂的素材中有往左的有往右的,而这两种都是对的,但同时往左往右却是错的。因此需要输出的不是一个固定的值,而是一个概率,决定向左还是向右走的概率。

那具体来说什么情况下需要输出一个分布呢?当一个问题有多个解法的时候,也就是需要让机器发挥“创造力”的时候,我们往往希望输出的是通往各个解放的一个概率。

例如,现在用神经网络随机生成动漫人脸。GAN除了生成式网络还需要一个判别网咯(判别器),它的作用是判断图片是否是真的动漫人脸。判别器的结构是自己设计的,例如这里输入的是图片所以可能用的CNN网络,

而GAN的训练流程就是生成器和判别器之间的“对抗”,例如第一代G乱生成图片,第一代D动漫人脸应该有两个眼睛。第二代G就生成有眼睛的图片,第二代D又说应该有头发。第三代G生成有头发有眼的角色。。。不断对抗下去。。

此作者没有提供个人介绍
最后更新于 2024-07-09