常见的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. Python3使用 pytesseract 进行图片识别

    一.安装Tesseract-OCR软件 参考我的前一篇文章:Windows安装Tesseract-OCR 4.00并配置环境变量 二.Python中使用 需要使用 pytesseract 库,官方使用 ...

  2. [YII2] 去除自带头部以及底部右下角debug调试功能

    YII2 去除自带头部以及底部右下角debug调试功能

  3. nodejs之https双向认证

    说在前面 之前我们总结了https的相关知识,如果不懂可以看我另一篇文章:白话理解https 有关证书生成可以参考:自签证书生成 正题 今天使用nodejs来实现https双向认证 话不多说,直接进入 ...

  4. TensorFlow keras卷积神经网络 添加L2正则化

    model = keras.models.Sequential([ #卷积层1 keras.layers.Conv2D(32,kernel_size=5,strides=1,padding=" ...

  5. 对JavaScript中的this的理解

    什么是this: 解析器(就是浏览器)在调用函数时,每次都会向函数内部传递两个隐含的参数: 这两个隐含参数其中一个就是this(还有一个是arguments,用来接收函数的实参),this指向的是一个 ...

  6. jeecg ant design vue 一些收藏

    1关于 进来清除上次记录 找到src/permission.js下的

  7. caddy配置php-fpm

    特码的,谷歌又用不了了. 吐槽完毕,正文如下: caddy是一个用go语言开发的服务器,可用作web端. caddy本身支持 -conf caddyfile的配置 在命令行中的体现: caddy -c ...

  8. char * 转 wchar *

    ) ) https://github.com/ffftp/ffftp/commit/0b1ea7a23dc6c72d519edbdeb30f48b3c7c8e867

  9. MySQL系列(一)

    一.简介 MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发.发布并支持的.有以下特点: MySQL是一种数据库管理系统. MySQL是一种关联数据库管理系统. MySQ ...

  10. 用三维的视角理解二维世界:完美解释meshgrid函数,三维曲面,等高线,看完你就懂了。...

    完美解释meshgrid函数,三维曲面,等高线 #用三维的视角理解二维世界 #完美解释meshgrid函数,三维曲面,等高线 import numpy as np import matplotlib. ...