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

快要面试,故对GAN进行稍许复习

目的

对抗式生成网络GAN提出的目的是估计样本的密度函数pr(x;θ)p_r(x;\theta)pr​(x;θ),且并不显式的估计密度函数,而是希望得到一个能生成出符合该分布样本的模型。

方法

通过假设在低维空间上有一个简单的分布zzz,一般假设为多为高斯N(0,I)\mathcal N(\textbf 0,\textbf I)N(0,I),通过建立映射$G:Z→XG: \mathcal Z \rightarrow \mathcal XG:Z→X,这个GGG一般利用一个神经网络实现,称为生成器(Generator).对抗生成网络的另一个巧妙之处在于使用另一个神经网络DDD作为判别器(discriminator),用于判断GGG所生成的样本的真假。

  • 生成器的目标是尽量生成较为真实的虚假样本,从而使判别器判断该样本为真实样本
  • 判别器的目标是准确的判断某一样本为真实样本还是由生成器生成的虚假样本,输出其为真实样本的概率

故而判别器的目标为:
max⁡DEx∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))]\max\limits_{D} \mathbb E _{x\sim p_{data}}[logD(x)]+\mathbb E_{z\sim p_z}[log(1-D(G(z)))] Dmax​Ex∼pdata​​[logD(x)]+Ez∼pz​​[log(1−D(G(z)))]
第一部分意为使得生成器判别真实样本为真实的概率较大,第二部分意为使得生成器判别虚假样本的为真实的概率较小,此为直观理解。也有通过交叉熵导出的方式,详见邱锡成的《神经网络与深度学习》

而生成器目标为:
min⁡GEz∼pz[log⁡(1−D(G(z)))]\min\limits_G \mathbb E_{z\sim p_z}[\log(1-D(G(z)))] Gmin​Ez∼pz​​[log(1−D(G(z)))]
因此,交替优化判别器目标和生成器目标,从而优化生成器和判别器。

如果将生成器目标和判别器目标写为一体,则为:
min⁡Gmax⁡DEx∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))]\min \limits_G \max \limits_D\mathbb E_{x \sim p_{data}}[logD(x)]+\mathbb E_{z\sim p_z}[log(1-D(G(z)))] Gmin​Dmax​Ex∼pdata​​[logD(x)]+Ez∼pz​​[log(1−D(G(z)))]
注意优化DDD时,GGG的参数应当保持不变。

补充:交叉熵

交叉熵有多重导出方法,这里利用最大似然估计。对于一个伯努利分布,有密度函数为:
P(x∣θ)=θx(1−θ)1−xP(x|\theta)=\theta^x(1-\theta)^{1-x} P(x∣θ)=θx(1−θ)1−x
其中,θ\thetaθ代表了xxx为真的概率。倘若此时有一组样本x1,x2,⋯,xnx_1, x_2, \cdots, x_nx1​,x2​,⋯,xn​, 对伯努利分布做最大似然估计,则有:
θ=arg⁡max⁡θlog⁡∏i=0Nθxi(1−θ)1−xi=arg⁡max⁡θ∑i=0Nxilog⁡θ+(1−xi)log⁡(1−θ)\theta= \mathop{\arg\max}\limits_{\theta}\log\prod_{i=0}^N\theta^{x_i}(1-\theta)^{1-x_i}\\ = \mathop{\arg\max}\limits_{\theta}\sum_{i=0}^N x_i \log\theta+(1-x_i)\log(1-\theta) θ=θargmax​logi=0∏N​θxi​(1−θ)1−xi​=θargmax​i=0∑N​xi​logθ+(1−xi​)log(1−θ)
对于上式,如果增加一个1N\frac {1}{N}N1​并不影像最大化的过程,于是可以变为:
θ=arg⁡max⁡θE[xilog⁡θ+(1−xi)log⁡(1−θ)]=arg⁡max⁡θE[xilog⁡θ]+E[(1−xi)log⁡(1−θ))]\theta = \mathop{\arg\max}\limits_\theta \mathbb E[x_i\log\theta+(1-x_i)\log(1-\theta)]\\ =\mathop{\arg\max}\limits_\theta \mathbb E[x_i\log\theta]+\mathbb E[(1-x_i)\log(1-\theta))] θ=θargmax​E[xi​logθ+(1−xi​)log(1−θ)]=θargmax​E[xi​logθ]+E[(1−xi​)log(1−θ))]

此时,如果令模型预测θ\thetaθ,则,D(x)=θD(x) = \thetaD(x)=θ,从而可以使得公式变为:
D=max⁡DE[xilog⁡D(xi)]+E[(1−xi)log⁡(1−D(xi)))]D = \mathop{\max}\limits_{D} \mathbb E[x_i\log D(x_i)]+\mathbb E[(1-x_i)\log(1-D(x_i)))] D=Dmax​E[xi​logD(xi​)]+E[(1−xi​)log(1−D(xi​)))]
若加个负号,从而变为最小化,就是交叉熵损失函数的形式.

对抗生成网络GAN(优化目标篇)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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 ...

最新文章

  1. ROS中launch文件使用笔记
  2. ios 设计模式 MVC ,MVVM
  3. Spring Boot整合Spring Data Redis-提取Redis的链接参数
  4. 给 SAP BTP 创建的 Java 应用添加 Custom Event Handler 支持创建功能
  5. 玫瑰花函数matlab,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神...
  6. DOM 节点的创建、删除、替换
  7. 推荐收藏!图深度学习发展历史、最新进展与应用
  8. 诗与远方:无题(九)
  9. java 获取线程某个_Java中如何唤醒“指定的“某个线程
  10. Android 使用SQLiteDatabase操作SQLite数据库(一)
  11. 网站被跳转到联通域名无法访问页面
  12. 在Eclipse中安装Maven插件
  13. day18 - 正则表达式
  14. 只说了一句话,产品经理乖乖由我调整项目排期《打工人的那些事》
  15. UOS x86安装Intel网卡驱动
  16. 怎么在一张图片中隐藏文件?
  17. matlab计算高斯分布函数,MATLAB如何使用normcdf函数计算正态分布的累积概率
  18. IEEE-754例题
  19. Beyond compare使用
  20. UniPro签约中国集成电路设计领域“IC独角兽”,助力研发管理

热门文章

  1. 关于手机蓝牙pos机刷卡问题
  2. php sketch 解析,sketch 切图踩过的坑
  3. DotA 6.70 的火凤凰 imba
  4. 【JAVA基础】Steam使用教程
  5. 提示没有Windows管理员权限? 2招就能找回来!
  6. Globally Optimized Linear Windowed Tone-Mapping, aec
  7. 签名板esp370 html,ESP370560_ocx_v4.1.0.8_20170705
  8. 基于CH568芯片的SATA电子盘方案
  9. web和java有什么区别_web和java有什么区别
  10. 正能量团队的人和事--正能量团队及其理念