李宏毅GAN学习——传统GAN(2014年首次提出的)

一、GAN概述

  1. GAN可让机器做的事:生成图像、句子、诗、文章…

  2. GAN的样子:(假设我们要生成的是图像)
    输入(vector)—>生成器(Genarator)—>Genarator输出Image,并输入—>判别器(Discrominator)—>输出数值(scalar)

在这里插入图片描述
在这里插入图片描述

注释:
(1)输入向量的每一维代表图像的一个特征。

在这里插入图片描述

(2)我们要生成什么,就让Genarator输出什么,就喂Discriminator吃什么。

(3)Discriminator输出的数值代表Image的质量。数值越大,质量越好。

在这里插入图片描述

  1. 训练目的:使从某种分布中随机采样的向量生成的图像的分布越接近数据库中图像的分布越好。

  2. GAN名字的由来:GAN之所以叫生成对抗网络,是因为它在14年首次被提出时,论文里举的例子是印假钞的坏人和警察之间的对抗。

二、GAN举例

  1. Gennerator和Discriminator的关系就好像猎食者和被猎食者。这里举一个枯叶蝶和麻雀的例子。

    枯叶蝶: V1(彩色) —> V2(棕色) —> V3(叶脉纹路)
    麻雀 : V1(吃彩色) —> V2(吃没有叶脉纹路) —> V3

    —>在对抗中不断进化

在这里插入图片描述

  1. 生成人像的例子。
    (1)我们想要生成人像,首先我们就需要一个包含很多真实人像图片的数据库。
    (2)
    Generator: V1(生成噪声点) —> V2(生成彩色图像) —> V3(生成有嘴巴的图像)
    Discriminator: V1(根据有无颜色判断是否是人像) —> V2(根据有无嘴巴判断是否是人像) —> V3

在这里插入图片描述

(3)Discriminator会不断进化,那么Generator就会产生越来越真实的人像图片了。

三、GAN的运作

  1. 首先初始化Generator和Discriminator网络的参数θ_g和θ_d。

  2. 迭代训练:
    (1)固定Generator的参数θ_g不变,训练Discriminator的参数θ_d。
    1)让Generator产生m张图片,再从数据库中采样m张图片。
    2)把Generator产生的这些图片和数据库中采样出的m张图片丢到Discriminator里面训练。让Discriminator给Generator产生的图片低分(接近0),给数据库中的图片高分(接近1)。
    (2)固定Discriminator的参数θ_d不变,训练Generator的参数θ_g。
    1)让Gennerator产生的图片丢到Discriminator中能得到高分。
    (实际上我们训练的时候是把Gennerator和Discriminator合起来当成一个网络,网络的最终输出是一个数值。训练Discriminator的时候相当于固定前面几个隐藏层,训练后面几个隐藏层;训练Gennerator的时候相当于固定后面几个隐藏层,训练前面几个隐藏层)

在这里插入图片描述

四、GAN算法

  1. 初始化Generator和Discriminator网络的参数θ_g和θ_d。

  2. 训练Discriminator:
    1)从数据库中采m个样本向量:{x1 x2 … xm}
    2)从高斯分布中采m个样本向量:{z1 z2 … zm}
    3)Generator根据高斯分布中采样的m个样本,生成m张图片{x~1 x~2 … x~m } x~i = G(zi)
    4)更新Discriminator的参数θ_d:
    最大化 V~ = (1/m) [ ΣlogD(xi) + Σlog(1-D(x~i)) ]
    更新 θ_d <— θ_d + lr*dV~(θ_d) (梯度上升)

  3. 训练Generator:
    1)从高斯分布中采m个样本向量:{z1 z2 … zm} (不需要和前面一样的向量)
    2)更新Generator的参数θ_g:
    最大化 V~ = (1/m) ΣlogD(G(zi))
    更新 θ_g <— θ_g + lr*dV~(θ_g)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值