Theory behind GAN

假如要生成一些人脸图,实际上就是想要找到一个分布,从这个分布内sample出来的图片像是人脸,分布之外生成的就不像人脸。而GAN要做的就是找到这个distribution。

在GAN之前用的是Maximum Likelihood Estimation。

Maximum Likelihood Estimation( 最大似然估计)

最大似然估计的思想是,假设数据的分布是 P data(x) ,定义一个分布为P G(x;θ) ,求得一组参数θ,使得P G(x;θ) 与P data(x) 越接近越好。具体步骤如下:

  1. 从P data(x) 中sample出一些样本;
  2. 对于sample出来的样本,可以计算出它们的likelihood;
  3. 计算总分likelihood L,并找到一组参数θ* 使得L最大。

MLE=Minimize KL Divergence

最大似然估计就相当于最小化的KL散度。

如果使用最大似然估计,采用高斯混合模型定义PG ,生成的图片会非常模糊,现在使用generator产生PG 。优化的目标就是使PG 和Pdata 越接近越好,即使得G* 越小越好,但是不知道PG 和Pdata 的公式。

虽然不知道PG 和Pdata 的公式,但是可以从这两个分布中做sample。可以用Discriminator来衡量PG 和Pdata 的Divergence。训练出来的maxV(G,D) 就相当于JS divergence。

证明过程

要求V(G,D)的最大值,就是求 的最大值。

因为PG 和Pdata 都是固定的,所以设为常数,然后通过求导求出最大值。

将求出的D* 回带入V(G,D),然后化简。

Generator 的训练目标就是,找到一个G* 去最小化PG 和Pdata 之间的差异,即 ,由于不知道PG 和Pdata 的具体公式,所以无法直接计算divergence。于是通过一个discriminator来计算两个分布之间的差异, 。所以最终优化目标为 。

假设已经把Generator固定住了,红点表示固定住G后的 ,也就是PG 和Pdata 的差异。现在的目标是最小化这个差异,所以下图的三个网络中,G3 是最优秀的。

具体的做法就是:

  1. 首先固定G,找到一个能够使V最大的D;
  2. 然后固定D,找到能够使这个最大D情况下V最小的G。不停的迭代。

虽然L(G)中有求最大值,但是它依然可以做微分,即分段求微分。

具体算法如下:

  1. 给定一个G0 ;
  2. 求解出使得V*(* D , G) 最大的D 0* ;
  3. 利用梯度下降求解出G1 ;
  4. 利用G1 求解出使得V*(* D , G) 最大的D 1* ,不断迭代。

其实在训练过程中不是真正的minimize JS散度,因为G在训练时变化时,V*(* D , G) 也会发生改变;此时由于D固定,所以JS散度会变得不再是此刻G下的JS散度了。所以要保证V*(* D , G 0) 和V*(* D , G 1) 很像,即G的参数变化很小。

Algorithm for GAN (Review )

首先训练D,多训练几次直至收敛;之后训练G:其中第一项是与生成器无关的,由于G不能训练太多,否则会导致D无法evaluate JS,所以update一次就好。

  • In practice

理论上V是要取期望值,但是实际上是不可能的,只能用样本的均值进行估计。

论文原文在实作的时候把log⁡*(1-* D ( x)) 换成*-* log⁡*(* D ( x)) ,蓝色曲线刚开始的值很大,适合做梯度下降。其实后来实验证明两种结果都差不多。

相关推荐
深蓝AI2 小时前
Gemini 4 Carbon 登顶却买不到:59 分拿下智能指数第一,单任务 7.76 美元,幻觉率从 4% 涨到 11%
人工智能·程序员
云-缩影9 小时前
文生图技术落地:从广告到游戏,哪些场景真的能用
人工智能·游戏
冬奇Lab11 小时前
一天一个开源项目(第254篇):NVIDIA Auto Ontology —— 给数据 Agent 搭一层「可认证的语义层」,答不了就老实说答不了
人工智能
其实防守也摸鱼12 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
甲维斯12 小时前
Workbuddy+HY4 略超预期!
人工智能
天远API13 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
朱涛的自习室13 小时前
212 个需求、22 万行代码:Agent 接管开源项目的 19 天
android·前端·人工智能
美林数据Tempodata13 小时前
高职大数据技术专业升级的六个落地样本:从产业链需求库到实训室数据链路
大数据·人工智能·数字化转型·产教融合·ai教育
美好世界13 小时前
OpenAI Codex 源码深度剖析(三):执行引擎与内核沙箱深度剖析
人工智能