GAN (Generative Adversarial Net)

生成对抗网络主要用于生成一些数据,并且生成的数据能够使得人无法分辨出哪些是GAN生成的,哪些是真实数据。这里我们举一个例子形象说一下GAN大概的工作原理:

我们以我们平常生活中的钱为例:钱有真钱和假钱之分,我们得想办法让这个假钱做的更像真钱。首先我们得有一个做假钱的人,我们假设他为G(生成网络),这个G学习做假钱的过程,也就是X(白纸)经过G之后得到输出Z,我们希望一张白纸经过G后能够出来一张像真钱的纸(Z),也就是一组噪声的数据经过生成网络后,我们希望生成网络输出更像一组真实的分布。有了造假钱的G之后我们还得有一个警察D,用来判别这个钱的真假性,这个D就是判别网络,当真钱输入后,我们希望判别网络D输出1,也就是这张钱是真钱,当假钱输入后,我们希望判别网络输出0,也就是这张钱是假钱。

我们如何来将这两个网络组合在一起来使得他们各自完成他们的目标,也就是造假钱的和判别假钱的人之间的对抗训练呢?最总达到我们无法判别这生成的数据是真的数据还是假的数据,用数学语言来说就是:生成网络生成的数据Z输入到判别网络D中,D的输出结果为0或1的概率各为0.5,也就是D无法判别这是一张真钱还是一张假钱。为了使得造出来的假钱更真实,我们就得使得判别网络有很高的判别水平,不然可能由于判别网络的判别能力很差使得生成网络生成的数据也很假,达不到我们的需求。

其大体的工作流程如上图所示,对于判别网络来说,判别网络希望真实的数据输进来,能够判别出其是真实数据,假的数据输进来,判别网络输出为假。也就是真实图片经过判别网络D后其输出都为1,假的图片输进来其值为0。而对于生成网络来说,希望自己生成的数据经过判别网络后判别网络能够输出为1,也就是骗过判别网络。

损失函数:

我们需要最小化G最大化D:最大化D的区分度,最小化G和真实数据集的数据分布。也就是公式右端的两部分,我们可以将其拆分成两部分:

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

理解GAN生成对抗网络相关推荐

  1. 54_pytorch GAN(生成对抗网络)、Gan代码示例、WGAN代码示例

    1.54.GAN(生成对抗网络) 1.54.1.什么是GAN 2014 年,Ian Goodfellow 和他在蒙特利尔大学的同事发表了一篇震撼学界的论文.没错,我说的就是<Generative ...

  2. 深度学习(九) GAN 生成对抗网络 理论部分

    GAN 生成对抗网络 理论部分 前言 一.Pixel RNN 1.图片的生成模型 2.Pixel RNN 3.Pixel CNN 二.VAE(Variational Autoencoder) 1.VA ...

  3. 使用PyTorch构建GAN生成对抗网络源码(详细步骤讲解+注释版)02 人脸识别 上

    文章目录 1 数据集描述 2 GPU设置 3 设置Dataset类 4 设置辨别器类 5 辅助函数与辅助类 1 数据集描述 此项目使用的是著名的celebA(CelebFaces Attribute) ...

  4. 【轩说AI】生成模型(2)—— GAN生成对抗网络 + WGAN + Conditional GAN + Cycle GAN

    文章目录 GAN生成对抗网络(Generative Adversarial Network) 神经网络的本质就是一个函数,一个用于拟合的函数 生成模型面临的前所未有的问题 GAN解决这一问题的思想 O ...

  5. 深度学习 GAN生成对抗网络-1010格式数据生成简单案例

    一.前言 本文不花费大量的篇幅来推导数学公式,而是使用一个非常简单的案例来帮助我们了解GAN生成对抗网络. 二.GAN概念 生成对抗网络(Generative Adversarial Networks ...

  6. 使用PyTorch构建GAN生成对抗网络源码(详细步骤讲解+注释版)02 人脸识别 下

    文章目录 1 测试鉴别器 2 建立生成器 3 测试生成器 4 训练生成器 5 使用生成器 6 内存查看 上一节,我们已经建立好了模型所必需的鉴别器类与Dataset类. 使用PyTorch构建GAN生 ...

  7. GAN (生成对抗网络) 手写数字图片生成

    GAN (生成对抗网络) 手写数字图片生成 文章目录 GAN (生成对抗网络) 手写数字图片生成 Discriminator Network Generator Network 简单版本的生成对抗网络 ...

  8. GAN -- 生成对抗网络

    GAN -- 生成对抗网络 生成对抗网络(英语:Generative Adversarial Network,简称GAN)是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习.该方法由伊 ...

  9. GAN生成对抗网络基本概念及基于mnist数据集的代码实现

    本文主要总结了GAN(Generative Adversarial Networks) 生成对抗网络的基本原理并通过mnist数据集展示GAN网络的应用. GAN网络是由两个目标相对立的网络构成的,在 ...

  10. GAN生成对抗网络综述

    前阵子学习GAN的过程发现现在的GAN综述文章大都是2016年Ian Goodfellow或者自动化所王飞跃老师那篇(最新发现一篇更新paper,也是王飞跃老师的:http://blog.scienc ...

最新文章

  1. bad cpu type in executable_【简讯】Intel将每5年重新开发一次CPU架构;华为EMUI 11曝光…...
  2. Java--获取request中所有参数的方法
  3. linux下听MP3
  4. C++去掉字符串首尾的特殊字符(比如空格)
  5. 科个普:进程、线程、并发、并行
  6. java substring截取字符串_java基础教程之字符串的介绍,比较重要的一个知识点【下】...
  7. 大数据工程师微职位学习分享
  8. jsp水果商城系统毕业设计网站成品论文
  9. SqList *L与SqList *L的区别
  10. 去除从网页上复制到WORD文档中的下箭头方法
  11. H5页面在微信中下载APP的解决办法
  12. 海思HI3751_HMS开发指南
  13. uni-app引入阿里巴巴icon在线图标
  14. 主分区与逻辑分区的区别
  15. ppt转换成pdf格式转换器怎么使用
  16. CF1444C Team-Building 可撤销种类并查集
  17. python网络编程能用来做什么_python网络编程是什么意思
  18. #include<stdio.h>怎么理解,stdio.h是什么头文件,是不是每个C语言程序都要加?
  19. 量产 php是什么,最新的量产工具
  20. 风电功率预测_复杂地形风电场的风功率预测技术研究

热门文章

  1. Cocos2d-x基础概念详情篇
  2. HCIE RS 全套笔记整理
  3. SQL语句详解(三)——SQL子查询
  4. Linux shell脚本详解及实战(二)——shell脚本之分支
  5. Microsoft Azure地缘组是什么
  6. HTML5尝鲜(1):使用aduio标签打造音乐播放器
  7. j2ee 简单网站搭建:(十一)ckeditor 控件使用入门
  8. Oracle 宣布 Java EE 8 推迟到2017年年底发布
  9. 文本主题模型之LDA(二) LDA求解之Gibbs采样算法
  10. Gson 与 fastJson 在使用上的差异(fastJson的优点)