生成网络:从简单GAN到CycleGAN的深入解析
1. 生成对抗网络(GAN)概述
生成对抗网络(GAN)从随机分布中获取样本,然后通过网络将其转换为输出。与其他生成网络不同,GAN在学习输入分布模式时无需监督,也不会显式地学习密度分布,而是运用博弈论方法来寻找两个参与者之间的纳什均衡。一个GAN实现通常包含生成网络和对抗网络,这两个网络可看作是相互竞争的参与者。GAN的核心思想是从数据分布(如均匀分布或高斯分布)中采样,并让网络将样本转换为类似于真实数据分布的样本。
2. 简单GAN
2.1 从博弈论角度理解GAN
从博弈论的角度直观理解GAN,它由两个参与者组成:生成器和判别器,二者相互竞争。生成器从分布中获取随机噪声,并尝试从中生成输出分布,其目标是创建一个与真实分布难以区分的分布,即生成的假输出应看起来像真实图像。
然而,由于缺乏明确的训练或标签,生成器无法得知真实图像的样子,其唯一的信息来源是随机浮点数张量。因此,GAN引入了第二个参与者——判别器。判别器的作用是告知生成器其生成的输出不像真实图像,促使生成器改变图像生成方式,以让判别器相信它是真实图像。
2.2 判别器网络
判别器的任务可转化为分类任务,即对输入图像进行二分类,判断其是原始图像还是生成图像。通过训练判别器网络正确分类图像,最终通过反向传播,判别器能够学会区分真实图像和生成图像。
以下是一个简单的判别器网络代码示例:
import torch
import torch.nn as nn
class Discri
超级会员免费看
订阅专栏 解锁全文
303

被折叠的 条评论
为什么被折叠?



