目录

Zhao J., Mathieu M. & LeCun Y. Energy-based generative adversarial networks. ICLR, 2017.

基于能量的一个解释.

主要内容

本文采用了与GAN不同的损失, 判别器\(D\)和生成器\(G\)分别最小化下面的损失:

\[\mathcal{L}_D (x, z) = D(x) + [m-D(G(z))]^+ \\
\mathcal{L}_G(z) = D(G(z))
\]

需要注意的是, 这里的判别器\(D\)的输出已经不是普通GAN中判别器的真假概率了, 而是能量, 能量越低,即\(D(x)\)越小, 越真.

用\(V(G, D)= \int_{x, z} \mathcal{L}_D(x, z) p_{data}(x) p_g(z) \mathrm{d}x\mathrm{d}z\), 用\(U(G,D) = \int_{z} \mathcal{L}_G(z) p_g(z)\mathrm{d}z\), 考虑如下纳什均衡

\[V(G^*, D^*) \le V(G^*, D), \quad \forall D \\
U(G^*, D^*) \le U(G, D^*), \quad \forall G.
\]

第一个需要考虑的问题是, 这样的纳什均衡解会有什么好的性质呢?

定理1: \((G^*, D^*)\)为纳什均衡解, 则\(p_{G^*}=p_{data}, \: a.e.\), \(V(G^*, D^*)=m\).

proof:

\[V(G, D) = \int_{x} D(x) p_{data} (x)\mathrm{d}x + \int_z [m-D(G(z))]^+ p_G(z) \mathrm{d}z = \int_{x} D(x) p_{data} (x)\mathrm{d}x + \int_x [m-D(x)]^+ p_G(x) \mathrm{d}x.
\]

故需要考虑

\[\min \quad D(x) p_{data}(x) + [m-D(x)]^+ p_{G^*}(x),
\]

可得

\[D(x) = \left \{
\begin{array}{ll}
m, & p_{data} < p_{G^*} \\
0, & p_{data} > p_{G^*} \\
[0, m], & else.
\end{array} \right.
\]

所以

\[\begin{array}{ll}
V(G^*, D^*) & = \int_{p_{data} < p_{G^*}} m p_{data}(x) \mathrm{d}x + \int_{p_{data} > p_{G^*}} mp_{G^*}(x)\mathrm{d}x + \int_{p_{data}=p_{G^*}} G^*(x) p_{data}(x) \mathrm{d}x \\
& \le m + m \int_{p_{data} < p_{G^*}} m [p_{data}(x) - p_{G^*}(x)] \mathrm{d}x \le m.
\end{array}
\]

另一方面,

\[U(G,D^*) = \int_x D^*(x) p_{G}(x) \mathrm{d} x \ge \int_{x} D^* (x) p_{G^*}(x) \mathrm{d}x
\]

所以

\[V(G^*, D^*) \ge \int_x (D^*(x) + [m-D^*(x)]^+)p_{G^*}(x) \mathrm{d}x \ge m.
\]

所以\(V(G^*, D^*)=m\), 且\(p_{G^*}=p_{data}, \: a.e.\)

下一个问题是, 这个纳什均衡存在吗, 文中的定理二给出了这个答案, 不过需要一个额外的条件, 这里不多赘述.

文中最后采用的是下面的框架:

即能量函数\(D\)的选择为

\[D(x) = \|Dec(Enc(x)) - x\|.
\]

EBGAN的更多相关文章

  1. Generative Adversarial Nets[EBGAN]

    0. 背景 Junbo Zhao等人提出的"基于能量的GAN"网络,其将判别器视为一个能量函数而不需要明显的概率解释,该函数可以是一个可训练的损失函数.能量函数是将靠近真实数据流形 ...

  2. EB-GAN系(Energy-based GAN)

    学习总结于国立台湾大学 :李宏毅老师 EB-GAN: Energy-based Generative Adversarial Network MA-GAN:MAGAN: Margin Adaptati ...

  3. (转) How to Train a GAN? Tips and tricks to make GANs work

    How to Train a GAN? Tips and tricks to make GANs work 转自:https://github.com/soumith/ganhacks While r ...

  4. Generative Adversarial Nets[BEGAN]

    本文来自<BEGAN: Boundary Equilibrium Generative Adversarial Networks>,时间线为2017年3月.是google的工作. 作者提出 ...

  5. Generative Adversarial Nets[content]

    0. Introduction 基于纳什平衡,零和游戏,最大最小策略等角度来作为GAN的引言 1. GAN GAN开山之作 图1.1 GAN的判别器和生成器的结构图及loss 2. Condition ...

  6. AI人工智能顶级实战工程师 课程大纲

    课程名称    内容    阶段一.人工智能基础 — 高等数学必知必会     1.数据分析    "a. 常数eb. 导数c. 梯度d. Taylore. gini系数f. 信息熵与组合数 ...

  7. TensorFlow练习24: GANs-生成对抗网络 (生成明星脸)

    http://blog.topspeedsnail.com/archives/10977 从2D图片生成3D模型(3D-GAN) https://blog.csdn.net/u014365862/ar ...

  8. (转) GAN应用情况调研

    本文转自: https://mp.weixin.qq.com/s?__biz=MzA5MDMwMTIyNQ==&mid=2649290778&idx=1&sn=9816b862 ...

  9. GANS 资料

    https://blog.csdn.net/a312863063/article/details/83512870 目 录第一章 初步了解GANs 3 1. 生成模型与判别模型. 3 2. 对抗网络思 ...

随机推荐

  1. Flink(二)【架构原理,组件,提交流程】

    目录 一.运行架构 1.架构 2.组件 二.核心概念 TaskManager . Slots Parallelism(并行度) Task .Subtask Operator Chains(任务链) E ...

  2. 一起手写吧!ES5和ES6的继承机制!

    原型 执行代码var o = new Object(); 此时o对象内部会存储一个指针,这个指针指向了Object.prototype,当执行o.toString()等方法(或访问其他属性)时,o会首 ...

  3. 【leetcode】85. Maximal Rectangle(单调栈)

    Given a rows x cols binary matrix filled with 0's and 1's, find the largest rectangle containing onl ...

  4. Oracle中分割逗号函数REGEXP_SUBSTR

    最近优化FORM中的查询条件遇到某个字段可以选取多个值的问题,思路当然就是选取时将多个值通过某个符号拼接起来,查询数据的时候将拼接后的字符串按照符号分割开,在分割逗号的时候用到了一个新的方法REGEX ...

  5. NSURLSessionDownloadTask实现大文件下载

    - 4.1 涉及知识点(1)使用NSURLSession和NSURLSessionDownload可以很方便的实现文件下载操作 第一个参数:要下载文件的url路径 第二个参数:当接收完服务器返回的数据 ...

  6. 【Linux】【Shell】【Basic】Bash

    命令历史:shell进程会在其会话中保存此前用户提交执行过的命令: ------------------------------------------------------------------ ...

  7. 【Linux】【Services】【Docker】网络

    容器的网络模型: closed container: 仅有一个接口:loopback 不参与网络通信,仅适用于无须网络通信的应用场景,例如备份.程序调试等: --net none bridged co ...

  8. Java Criteria使用方法

    Criteria Query 可以看作传统sql的对象化表示. Criteria 可以由session创建. Criteria ct= session.createCriteria(TUser.cla ...

  9. 通过Jedis操作Redis

    package com.yh; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis ...

  10. 银行业评分卡制作——IV、WOE

    参考链接:https://blog.csdn.net/kevin7658/article/details/50780391 1.IV的用途 IV的全称是Information Value,中文意思是信 ...