当你看到以假乱真的图片或视频,看到风格迁移的图片或视频,你应当知道,其背后的机器学习技术是GAN!

GAN, generative adversarial network, 生成式对抗神经网络, 是生成模型的一种。

生成模型主要分两种,一种由输入数据,得到概率密度分布,另外一种,由输入数据,得到与输入数据相同分布的输出数据,GAN属于第二种。更多的关于生成模型的分类,见下图。

GAN是怎样工作的呢?

GAN有两个网络,一个是生成器,希望生成同训练数据相同分布的样本,一个是判别器,希望将生成数据(fake)和训练数据(real)区分开来。

判别器希望real的output接近1,fake的output接近0,下面是判别器的损失函数的定义(只有一种):

def discriminator_loss(real_output, fake_output):real_loss = cross_entropy(tf.ones_like(real_output), real_output)fake_loss = cross_entropy(tf.zeros_like(fake_output), fake_output)total_loss = real_loss + fake_lossreturn total_loss

生成器的损失函数有三种(零和游戏,非饱和游戏和最大似然游戏), 在非饱和游戏中,生成器希望fake经过判别器判别的output接近1,非饱和游戏中生成器的损失函数的定义如下:

def generator_loss(fake_output):return cross_entropy(tf.ones_like(fake_output), fake_output)

下图中的D表示判别器(函数),G表示生成器(函数):

需要注意,生成器的损失函数既依赖于生成器神经网络的参数,也依赖于判别器神经网络的参数;同样判别器的损失函数既依赖于判别器神经网络的参数,也依赖于生成器神经网络的参数。

训练GAN是一个博弈的过程,需要找到纳什均衡。

以上图片来自于 NIPS 2016 Tutorial: Generative Adversarial Networks by Ian Goodfellow

用来表示损失函数的定义的示例代码来自于 tensorflow tutorials https://www.tensorflow.org/tutorials/generative/dcgan

祖国翔,于上海

https://www.linkedin.com/in/guoxiang-zu/

什么是生成式对抗神经网络GAN相关推荐

  1. #教计算机学画卡通人物#生成式对抗神经网络GAN原理、Tensorflow搭建网络生成卡通人脸

    生成式对抗神经网络GAN原理.Tensorflow搭建网络生成卡通人脸 下面这张图是我教计算机学画画,计算机学会之后画出来的,具体实现在下面. ▲以下是对GAN形象化地表述 ●赵某不务正业.游手好闲, ...

  2. 深度学习~生成式对抗神经网络GAN

    目录 出现背景(why?) 概念 出现背景(why?) 在分类任务中,训练机器学习和深度学习模块需要大量的真实世界数据,并且在某些情况下,获取足够数量的真实数据存在局限性,或者仅仅是时间和人力资源的投 ...

  3. 简述生成式对抗网络 GAN

    本文主要阐述了对生成式对抗网络的理解,首先谈到了什么是对抗样本,以及它与对抗网络的关系,然后解释了对抗网络的每个组成部分,再结合算法流程和代码实现来解释具体是如何实现并执行这个算法的,最后通过给出一个 ...

  4. 深度学习之生成式对抗网络 GAN(Generative Adversarial Networks)

    一.GAN介绍 生成式对抗网络GAN(Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一.它源于2014年发表的论文:& ...

  5. 王飞跃教授:生成式对抗网络GAN的研究进展与展望

    本次汇报的主要内容包括GAN的提出背景.GAN的理论与实现模型.发展以及我们所做的工作,即GAN与平行智能.  生成式对抗网络GAN GAN是Goodfellow在2014年提出来的一种思想,是一种比 ...

  6. 生成式对抗神经网络code实现

    生成式对抗神经网络code实现 摘要:生成式对抗网络–gan-generative adversarial network.gan的工作原理是:一个伪造者网络和一个专家网络,二者的训练的目的都是为了打 ...

  7. 生成式对抗网络GAN(一)—基于python实现

    基于python实现生成式对抗网络GAN 构建和训练一个生成对抗网络(GAN) ,使其可以生成数字(0-9)的手写图像. 学习目标 从零开始构建GAN的生成器和判别器. 创建GAN的生成器和判别器的损 ...

  8. 《生成式对抗网络GAN的研究进展与展望》论文笔记

    本文主要是对论文:王坤峰, 苟超, 段艳杰, 林懿伦, 郑心湖, 王飞跃. 生成式对抗网络GAN的研究进展与展望. 自动化学报, 2017, 43(3): 321-332. 进行总结. 相关博客地址: ...

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

    一.GAN介绍 生成式对抗网络GAN(Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一.模型通过框架中(至少)两个模块 ...

  10. 生成式对抗网络GAN模型搭建

    生成式对抗网络GAN模型搭建 目录 一.理论部分 1.GAN基本原理介绍 2.对KL散度的理解 3.模块导入命令 二.编程实现 1.加载所需要的模块和库,设定展示图片函数以及其他对图像预处理函数 1) ...

最新文章

  1. ServletResponse-中文名的下载
  2. linux ubuntu 获取仓库源码并构建
  3. 计算机网络·物理层练习题
  4. 双机热备_什么是双机热备?
  5. CentOS 6.9安装配置nmon
  6. 一种新的在线学习的方法:能够克服单人多任务学习的困难!
  7. 泰山服务器 oracle数据库,泰山之巅对话•Oracle数据库掌门人:领先对手10年?凭什么口气这么大?...
  8. python-day8-赋值
  9. mysql索引 order by_MySQL 通过索引优化含ORDER BY的语句
  10. 我们究竟需要什么!!?
  11. 安装axure插件以便打开原型文件
  12. 怎么把浏览器改成开发者模式_小米手表怎么玩?Wear OS初体验
  13. Visual studio2022 利用glfw+glad配置OpenGL环境
  14. 浙江大学【面板数据分析与STATA应用】——第一讲短面板数据分析
  15. 如何建立微信微社区?
  16. 【前端知识之JS】JS的作用域链
  17. android 自定义接口,Android中定义接口的用法
  18. 安卓开发 投屏安卓设备到电脑端 scrcpy
  19. grpc入门到精通_gRPC[go语言]大师教程,构建现代化Api和微服务
  20. 三菱FX系列PLC电池电压低导致程序参数丢失,PROG.E报警灯闪烁的解决办法

热门文章

  1. 中国优秀软件架构师感悟录
  2. CAN总线波特率计算方法
  3. WEBMAX函数 动态模糊特效【官方教程】
  4. 【现代卫星导航系统】之北斗卫星导航系统
  5. 数据分析——AB实验
  6. 计算机科学的哲学思想,计算机科学哲学的核心理念
  7. ECShop 批量打印快递单
  8. java审批流_activiti实现工作流审批
  9. R语言从github安装recharts包
  10. ffmpeg转码视频