常见的GAN网络的相关原理及推导

在上一篇中我们给大家介绍了GAN的相关原理和推导,GAN是VAE的后一半,再加上一个鉴别网络。这样而导致了完全不同的训练方式。

GAN,生成对抗网络,主要有两部分构成:生成器,判别器。

生成器网络的主要工作是负责生成样本数据,输入的是高斯白噪声z,输出的是样本数据向量x:

判别器网络的主要工作是负责检测样本的数据增加,输入真实或者生成的样本数据,输出样本的标签:

由于生成器和判别器都是需要经过网络进行训练的,所以两者都要能够微分。

生成对抗网络的工作方式是让第一代的G产生一些图片,然后把这些图片和一些真实的图片丢到第一代的D里面去学习,让第一代的D能够分别生成的图像和真实的图片。在训练第二代的G,第二代的G产生的图片,能够骗过第一代的D,在训练第二代的D,依次迭代。

那么,问题就来了,如何训练新一代的G来骗过上一代的D呢?

我们可以把新一代的G和上一代的D连起来形成一个新的NN,我们训练最终的输出接近1,然后我们那中间的结果当做我们新的图片的输出。

优化函数

生成器G固定之后,使用来评价Pdata和Pz之间的差异。优化方式,对于生成器优化而言,我们要最小化价值函数,对于判别器而言,我们要优化最大价值函数,不断的交替进行之后,能够达到有个平衡点,称之为纳什均衡点。

生成器最小化目标即为判别器将生成数据识别为假的概率的log值,对于上述提到的均衡点,它是判别代价函数的鞍点。

对于GAN的训练算法,步骤如下:

a、执行D-step的minibatch优化k次:

  1.从先验分布p(z)随机生成m个随机噪声向量z

  2.从数据集分布p(x)里随机获取m个样本x

  3.使用随机梯度上升优化判别器的代价函数

b.执行G-step的minibatch优化1次:

  1.从先验分布p(z)随机生成m个随机噪声向量z

  2.使用梯度下降优化生成器的代价函数

我们可以通过下面的曲线进一步理解训练过程:

其中,绿线为生成器的数据分布,黑线为真实数据的分布,蓝线为判别器的结果分布。

GAN的问题:

GAN的训练比较困难,主要存在收敛难,很难达到纳什均衡点,并且无法有效监控收敛状态,另一方面,模型容易崩溃,判别器快速达到最优,能力明显强于生成器,生成器将数据集中生成在判别器最认可的空间上,即输出多样性低,不使用于离散输出(不可微分)。

常见的GAN网络的相关原理及推导的更多相关文章

  1. GAN网络从入门教程(二)之GAN原理

    在一篇博客GAN网络从入门教程(一)之GAN网络介绍中,简单的对GAN网络进行了一些介绍,介绍了其是什么,然后大概的流程是什么. 在这篇博客中,主要是介绍其数学公式,以及其算法流程.当然数学公式只是简 ...

  2. GAN网络原理介绍和代码

    GAN网络的整体公式: 公式各参数介绍如下: X是真实地图片,而对应的标签是1. G(Z)是通过给定的噪声Z,生成图片(实际上是通过给定的Z生成一个tensor),对应的标签是0. D是一个二分类网络 ...

  3. GAN背后的数学原理

      模拟上帝之手的对抗博弈——GAN背后的数学原理 简介 深度学习的潜在优势就在于可以利用大规模具有层级结构的模型来表示相关数据所服从的概率密度.从深度学习的浪潮掀起至今,深度学习的最大成功在于判别式 ...

  4. GAN网络之入门教程(四)之基于DCGAN动漫头像生成

    目录 使用前准备 数据集 定义参数 构建网络 构建G网络 构建D网络 构建GAN网络 关于GAN的小trick 训练 总结 参考 这一篇博客以代码为主,主要是来介绍如果使用keras构建一个DCGAN ...

  5. 『cs231n』通过代码理解gan网络&tensorflow共享变量机制_上

    GAN网络架构分析 上图即为GAN的逻辑架构,其中的noise vector就是特征向量z,real images就是输入变量x,标签的标准比较简单(二分类么),real的就是tf.ones,fake ...

  6. 嵌入式操作系统VxWorks中网络协议存储池原理及实现

    嵌入式操作系统VxWorks中网络协议存储池原理及实现 周卫东 蔺妍 刘利强 (哈尔滨工程大学自动化学院,黑龙江 哈尔滨,150001) 摘  要  本文讨论了网络协议存储池的基本原理和在嵌入式操作系 ...

  7. 网络营销相关缩写名称CPM CPT CPC CPA CPS SEM SEO解析

    网络营销相关缩写名称CPM CPT CPC CPA CPS SEM SEO解析 CPM CPT CPC CPA CPS SEM SEO在网络营销中是什么意思?SEO和SEM的区别是? CPM(Cost ...

  8. php特级课---5、网络数据转发原理

    php特级课---5.网络数据转发原理 一.总结 一句话总结: OSI七层模型 路由器 交换机 ARP 代理ARP 1.OSI7层模型? 电缆 MAC地址 ip 端口 应用 1层 通信电缆 2层 原M ...

  9. GAN网络从入门教程(一)之GAN网络介绍

    GAN网络从入门教程(一)之GAN网络介绍 稍微的开一个新坑,同样也是入门教程(因此教程的内容不会是从入门到精通,而是从入门到入土).主要是为了完成数据挖掘的课程设计,然后就把挖掘榔头挖到了GAN网络 ...

随机推荐

  1. 常用ElasticSearch 查询语句

    为了演示不同类型的 ElasticSearch 的查询,我们将使用书文档信息的集合(有以下字段:title(标题), authors(作者), summary(摘要), publish_date(发布 ...

  2. bypass安全狗测试学习

    搭建简单的sql注入环境 在test数据库中创建sqltest表,插入字段数据 编写存在注入的php文件 <?php $id = $_REQUEST['uid']; echo "您当前 ...

  3. shiro:自定义remle(二)

    SpringMVC+SpringMVC+Mybatis项目 1:导入相关依赖 <dependencies> <!--测试依赖--> <dependency> < ...

  4. python实现秒杀商品的微信自动提醒功能(附代码)

    技术实现原理:获取京东的具体的商品信息,然后再使用微信发送提醒 工具:需要两个微信号,这两个微信号互为好友 如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的 ...

  5. 曹工杂谈--只用一个命令,centos系统里装了啥软件,啥时候装的,全都清清楚楚

    前言 一直以来,对linux的掌握就是半桶水的状态,经常yum装个东西,结果依赖一堆东西:然后再用源码装个东西,只知道make.make install,背后干了啥也不清楚了,卸载也不方便. 这几天工 ...

  6. CSS选择器与CSS的继承,层叠和特殊性

    什么是选择器?选择器{样式;},在{}之前的部分就是"选择器","选择器"指明了{}中的"样式"的作用对象,也就是"样式" ...

  7. 来自BAT大厂前端工程师的自白-怎么才能学好前端

    如果说理解学好web前端是先能找到一份工作,那么你应该这样做: 1.制定好一下系统的web前端学习规划,每天定量,学完什么知识点就掌握,能自己应用,而不是能看懂,写不出来东西. 2.不要自己一个人闷头 ...

  8. 4.K均值算法--应用

    1. 应用K-means算法进行图片压缩 读取一张图片 观察图片文件大小,占内存大小,图片数据结构,线性化 用kmeans对图片像素颜色进行聚类 获取每个像素的颜色类别,每个类别的颜色 压缩图片生成: ...

  9. 网站防止sql注入

    防止sql注入代码:(1)修改php.ini magic_quotes_gpc=Off,打开开关,不常用: (2)获取到参数后,调用$username = addslashes($username); ...

  10. 2019-2020-1 20199310《Linux内核原理与分析》第二周作业

    1.问题描述 众所周知,计算机是20世纪最伟大的发明之一,计算机是如何工作的呢?本文主要通过计算机的组成结构和工作原理,以及汇编代码工作过程来进行详细叙述. 2.解决过程 2.1 冯·诺依曼体系结构 ...