一、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)

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

  1. 【GAN优化】GAN优化专栏上线,首谈生成模型与GAN基础

    大家好,今天小米粥在有三AI开设新专栏<GAN的优化>.在这个专栏中,我们会讲述GAN的相关背景.基本原理.优化等相关理论,尤其是侧重于GAN目标函数的优化.小米粥和有三将带领大家从零学起 ...

  2. [2022]李宏毅深度学习与机器学习第六讲(必修)-GAN

    [2022]李宏毅深度学习与机器学习第六讲(必修)-GAN 做笔记的目的 GAN generator Unconditional generator Theory Behind Tips for GA ...

  3. GAN学习笔记-李宏毅:GAN Lecture 7 (2018): Info GAN, VAE-GAN, BiGAN

    李宏毅老师讲解的GAN Lecture 7 (2018): Info GAN, VAE-GAN, BiGAN 问题:input feature 对output影响不明确这件事:本来假设不同的特性在la ...

  4. 李宏毅2021 ML课程GAN部分学习

    文章目录 前言 一.初识GAN 1.1 GAN的基本结构: 1.2 GAN的基本学习思路: 二.GAN的理论 2.1 基本概念 2.1 JS散度的推导 三 GAN的技巧 3.1 JS散度的问题 3.2 ...

  5. 深度学习之GAN生成对抗网络

    前言 近年来,基于数据而习得"特征"的深度学习技术受到狂热追捧,而其中GAN模型训练方法更加具有激进意味:它生成数据本身. GAN是"生成对抗网络"(Gener ...

  6. 生成对抗网络(GAN)相比传统训练方法有什么优势?(一)

    作者:元峰 链接:https://www.zhihu.com/question/56171002/answer/148593584 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  7. [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(中)

    上一篇文章–[GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上)中,我们先介绍了对于图像修复的背景,需要利用什么信息来对缺失的区域进行修复,以及将图像当做概率分布采样的样本来看 ...

  8. [GAN学习系列2] GAN的起源

    本文大约 5000 字,阅读大约需要 10 分钟 这是 GAN 学习系列的第二篇文章,这篇文章将开始介绍 GAN 的起源之作,鼻祖,也就是 Ian Goodfellow 在 2014 年发表在 ICL ...

  9. [GAN学习系列] 初始GAN

    本文大约 3800 字,阅读大约需要 8 分钟 要说最近几年在深度学习领域最火的莫过于生成对抗网络,即 Generative Adversarial Networks(GANs)了.它是 Ian Go ...

最新文章

  1. 条件注释判断浏览器版本!--[if lt IE 9]
  2. android编译产生的apk或so不安装 .
  3. java单例注册表_Java单例模式(Singleton)
  4. jacob 实现Office Word文件格式转换
  5. 国内开源项目无法形成气候且难以持续性的问题分析
  6. PHP随机静态页面生成系统源码雨尘SEO系统v1.3
  7. pg库和mysql的优缺点_MySQL与PostgreSQL的实际性能比较
  8. Java基础:参数是如何传递的
  9. openstack nova后端使用ceph rbd(增加在线迁移live_migrate和快照snapshot功能)
  10. LINUX修改文件权限
  11. 湘军团练志:罗泽南、李续宾、王錱
  12. pycharm 常用快捷键(中英文对照表)
  13. windows笔记本触摸板的快捷键教程
  14. Android基于WIFI实现电脑和手机间数据传输的技术方案研究
  15. 推荐一个视频网站-播布客
  16. 【Tryhackme】Hacker of the Hill #1
  17. 中国超级计算机gpu,英伟达(NVIDIA)Tesla GPU为全球最快的超级计算机提供动力支持...
  18. 褚志刚——噪声源识别与定位
  19. “墨子号”量子科学实验卫星成果获克利夫兰奖
  20. brew 一直等待_等待幸福作文小学生5篇2020年

热门文章

  1. DELL服务器U盘安装Centos 7
  2. 船舶航行matlab程序,基于船舶运动控制的Matlab仿真
  3. 学习python基础(七)
  4. SQL Server:数据库介绍
  5. TDM_GCC -lws2_32 参数无效
  6. 谈一谈人工智能怎么入门_手把手教你入门
  7. 梯度下降法和泰勒公式
  8. 这就是你日日夜夜想要的docker!!!---------Docker Compose容器编排理论+实操
  9. 全网天花板,软件测试项目实战,银行项目支付业务测试看这一篇就够了
  10. 计算机是执行什么运算的部件,运算器是执行什么和什么运算的部件