更新:

原文已经搬运至网站:https://www.link2sea.com/archives/388,后续也将在该网站进行更新。

查看博主更多文章请前往:https://www.link2sea.com/。

下面是原文

原文:

博主最近在上李弘毅老师的GAN的课程,所以写一些博客作为笔记,方便以后回忆。bilibili链接: https://www.bilibili.com/video/av24011528/?spm_id_from=333.338.recommend_report.1,课程的相关学习资料的链接为:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS18.html

目录

1 为什么GAN

2 什么是 GAN

3 GAN 的原理

4 GAN 的训练

5 其他


1 为什么GAN

Yann LeCun 说过,GAN是ML领域近十年最有意思的想法。GAN的强大就不强调了,本文主要介绍下GAN的核心思想。

2 什么是 GAN

所谓GAN,及Generative Adversarial Networks,由两个网络组成,一个是generative network,是生成网络,一个是adversarial network 是判别网络。

以生成一张二次元图片为例,生成网络的输入是一个向量,表示生成图像的各种特征,比如第一个参数的大小表示人物头发的大小,第二个参数的大小表示人物头发的颜色等,输出是生成的图像。

而判别网络,输入是一张图片,判断它是否是真实的,还是生成网络生成的。若是真实的图片,则输出高分,1分,若判断是网络生成的则给低分,0分。

3 GAN 的原理

如图1所示(来源于李弘毅老师第一节课的课件),首先1代生成器生成1带图片,然后训练判别器识别1代假图片与真图片。然后训练生成器得到2代图片(训练过程在后边介绍),然后训练判别器识别2代假图片和真图片,然后依次类推,最终生成器生成接近真实的图片。

图1 生成对抗网络的训练过程示意图

4 GAN 的训练

接下来是训练的过程。

(1)随机生成器和判别器的参数。

(2)随机生成器输入的向量,生成图片,然后以生成的图片和真实图片作为样本,真实图片标签为1,生成图片标签为0,使用监督学习来训练判别网络。

(3)判别网络训练完成后训练生成网络,将生成网络和判别网络连接起来,如图2所示(来源为李弘毅老师第一节课的课件),将判别网络的参数固定,合成网络输出是随机向量,输出是判别网络的输出,将期望输出设定为1进行训练。因为判别网络参数固定,要想输出为1,则生成网络的输出可以认为骗过了判别网络。再执行第(2)步。.

图2 生成网络训练示意图

GAN的算法如图3所示(来源为李弘毅老师第一节课的课件),与上文的描述基本一致。

图3 GAN训练算法

5 其他

李弘毅老师第一节课中还讲了structured learning,Can Genertor learn by itself? Can discriminator generate?还有a little bit theory(这个他课上没讲)。下面简单介绍一下,详细的可以看课件或听课。

structed learning 意思就是输出不仅仅是一个数,而是一个序列,矩阵,图,书等等。

生成网络自己也是可以通过监督学习来学习生成的,只不过由于他的结构限制,是从下到上的,所以缺少大局观像素间的关系较少。课程中以Auto-encoder和(Variational) Auto-encoder为例介绍了一下,反正就是效果不太,生成图像模糊。

判别网络自己也是可以生成的,其实就是解一个式子

其中x为判别网络输入,D(x)为输出。所以使得输出最大的输入即为生成的最佳的图片。只不过个很难解,且目前只有假设判别网络是线性的才能解,当然这大大失去了复杂程度。

当然最好的效果就是生成网络加判别网络,也就是GAN,也可以理解为生成网络就是解了上述的式子。

今天就写到这里。由于第一,二节课都是前两天上的,所以为了赶进度,写的不是很用心,过几天再把第二篇也给补了,以后就一边听课一边写博客,写的仔细一点。李弘毅老师上课很有意思,强烈安利!!

李弘毅老师GAN笔记(一),对抗生成网络(GAN)简单介绍相关推荐

  1. 深度学习代码实战演示_Tensorflow_卷积神经网络CNN_循环神经网络RNN_长短时记忆网络LSTM_对抗生成网络GAN

    前言 经过大半年断断续续的学习和实践,终于将深度学习的基础知识看完了,虽然还有很多比较深入的内容没有涉及到,但也是感觉收获满满.因为是断断续续的学习做笔记写代码跑实验,所以笔记也零零散散的散落在每个角 ...

  2. 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow)

    图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow) 文章目录 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网 ...

  3. 对抗生成网络GAN(优化目标篇)

    对抗生成网络GAN(优化目标篇) 快要面试,故对GAN进行稍许复习 目的 对抗式生成网络GAN提出的目的是估计样本的密度函数pr(x;θ)p_r(x;\theta)pr​(x;θ),且并不显式的估计密 ...

  4. 深度学习对抗生成网络--GAN

    导读:GAN的风暴席卷了整个深度学习圈子,任何任务似乎套上GAN的壳子,立马就变得高大上了起来.那么,GAN究竟是什么呢? 相关资料下载 加助教小姐姐的威信即可免费获取: 1. GAN的基本思想 GA ...

  5. pytorch学习笔记-----对抗生成网络GAN

    生成器,判别器 G:生成网络生成的都为假的 D:判别网络判别真实数据与来自生成网络的假数据 判别网络其实就是进行一个图像二分类 生成网络需要fc层输出个数为h*w*c(c=1or3 即为一张图片的形式 ...

  6. 一文通俗了解对抗生成网络(GAN)核心思想

    目前有时间的时候学习一下gan的知识,但是时间也不多,这里记录一下所学,不要太期待喔,完全是学习李宏毅老师课程的笔记,由于是新手,欢迎大家交流指错. 引言 GAN已经作为一种思想来渗透在ML的其余领域 ...

  7. 李宏毅对抗生成网络 (GAN)教程(1)Introduction

    视频链接:https://www.bilibili.com/video/BV1tE411Z78A 在李宏毅GAN教程(1) 的基础上增添修改内容 文章目录 Basic idea of GAN 生成器G ...

  8. 李宏毅对抗生成网络 (GAN)教程(2) Conditional Generation by GAN

    文章目录 Conditional GAN 介绍 具体算法 设计Discriminator Stack GAN 图片到图片 Patch GAN 应用在speech enhancement Video G ...

  9. 对抗生成网络Gan变体集合 keras版本

    1.深度学习Gan学习笔记,keras版 2.深度学习DCGan学习笔记,keras版 3.深度学习ACGan学习笔记,keras版 4.深度学习AAEGan学习笔记,keras版 5.深度学习BiG ...

  10. Tensorflow 对抗生成网络GAN 不服就GAN

    这一节的回顾也意味着深度学习基础课程学习进入了尾声了,GAN作为性能远超我们上一节提到的VAE的一个存在还是有很多出彩的地方的: 首先引用理查德费曼的一句话-'What I cannot create ...

最新文章

  1. 符合RESTful的接口规范
  2. 输入法半角和全角的快捷转换_日语输入法究极指南
  3. python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫
  4. Python的逻辑判断和循环 || 打印九九乘法表
  5. [Mummy Maze] 宽度优先搜索
  6. 远程连接mysql数据库注意点记录
  7. zoj1610-Count the Colors【线段树】
  8. 认识java编程语言
  9. Elasticsearch 日期时间处理
  10. 最基本的25道深度学习面试问题和答案
  11. java 修改文件编码_java中怎么获取、设置文件编码格式?
  12. Office 2010安装1402错误
  13. 【LaTeX】LaTeX常见括号总结
  14. Andorid 安卓接入支付宝支付(当面付)
  15. 【阿里云-云栖社区】喜欢的记得关注(每日更新)
  16. Matlab实现snn代码,SNN系列|神经元模型篇(3)SRM
  17. Android 3年外包工面试笔记,有机会还是要去大厂学习提升
  18. Html主要内容总结
  19. item_get - 根据ID获取拼多多商品详情
  20. Cesium粒子系统、火焰粒子、喷水粒子

热门文章

  1. 【Python 百练成钢】快速上手并查集
  2. 利用python 爬取豆瓣即将上映的电影
  3. 腾讯新闻android2.3,腾讯新闻Android客户端更新 加入投票功能
  4. 图片判断左脑发达还是右脑发达
  5. java代驾业务信息管理系统_基于jsp的代驾平台-JavaEE实现代驾平台 - java项目源码...
  6. Android混淆编译、反混淆、反编译
  7. pq grid 及 一些基本方法
  8. IntelliJ IDEA中的神仙插件(写代码必备)
  9. Math.cos()
  10. jQueryanimation实现漂流瓶扔和写动画效果