理解GAN的基本思想

1.GAN是干什么的

GAN于2014年Goodfellow提出,提出的出发点&创新点是:

①我们能不能通过深度学习生成图片?

我们通过Generative Adversarial Network [对抗生成网络]生成图片。GAN的类型 是一种“方法论”而不是网络结构 ,既可以用于与NN结合,也可以与CNN结合。

②如何解决?

生成器:Generatior

决策器:Discriminator

理解这两个结构有助于后面的公式推导,也就是说:

  • G负责从某种分布的噪音中生成一幅图片,做为fake image,生成的越“真”越好。

  • D负责监测/评价G生成的fake image,判断生成样本Real or Fake。
    直观理解GAN公式含义,直击灵魂

2.理解GAN的价值函数

2.1如何直观理解公式

minGmaxDV(D,G)=ExPdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))] \min_{G}\max_{D}V(D,G) = E_{x-P_{data}(x)}[logD(x)] +E_{z-p_{z}(z)}[log(1-D(G(z)))]

  • 首先为什么不用传统机器学习的Loss function而使用V(D, G)?

Value Function【价值函数】这个概念来自于强化学习(Reinforcement Learning),这里不多说,简而言之它的意思是:在状态t下通过观测自己的状态而做出一个决策,这个决策使得t+1时刻进入新的状态,而这种转移带来的收益记作Reward(R1, R2, R3…Rt)。状态结束时我们希望Value Function收益最大。

  • 理解价值函数Value Function

这里说一个形象的小故事。

小天家祖传三代鉴赏师,从小家里就培养他接触家族事业——成为最伟大的Discriminator。从他还不会说话的时候就让他学习鉴赏,大量浏览赝品于真迹,未来的生活里,他鉴别成功的次数越多,他赚的钱就越多,Reward越多。这是小天家的理念。

小华家祖传三代仿制大师,一生坑人无数,从小家里就培养他接触家族手艺,成为伟大的——Generator。从还不会走路就开始学习制作仿品,未来的生活中,制作的仿品一旦被发现就要坐牢甚至被追杀,富贵险中求,越少被拆穿,Reward越多,这是小华家的理念。

**GAN就是为了生成以假乱真的样品,如果我们顶级的Discriminator都鉴别不出Generator生成的Fake Image,那么才算成功的GAN。**所以这里用Value Function 表示目的是为了获取最大收益就可以形象的理解了

2.2分析GAN公式细节——max部分

补充:公式中的 x 表是真品; z 表示噪声;D(x)表示真品概率;G(z)表示通过噪声生成的赝品;

我们希望得到最大的V,对于D(鉴别师,以下都简称D):

对于王牌判别器D

  • 面对符合真品分布的x数据,我们希望D(x)能够趋近于1;

  • 面对造假生成的赝品G(z)数据,我们希望D(G(z))趋近于0;

f(n){D(x)>1D(G(x))>0=>{log(D(x))>0log(1D(G(x)))>0 f(n) \begin{cases} D(x) &->&1\\ D(G(x))&->&0 \end{cases} => \begin{cases} log(D(x)) &->&0\\ log( 1-D(G(x)) ) &->&0 \end{cases}

注:对于log函数,在(0,1]上获得的最大值就是0;

2.3分析GAN公式细节——min部分

我们希望得到最小的V,对于G(赝品师,以下都简称G)

对于王牌生成器G

  • 面对噪声z分布的数据可以产生很难分辨的G(x)

我们希望 D(G(z)) 会被误认为真品,所以D(G(z)) -> 1,以至于
log(1D(G(z)))  >   log(1-D(G(z))) \ \ -> \ \ -\infty
使得代价函数V趋近于最小值。

2.4分布

抽象的理解是:真实图片是一种复合某一分布的数据。每一个真实图片都可能符合Pdata分布。

虚假的图片:来自于复合噪声分布的数据所创建出来。每一个噪声数据都可能符合Pz分布。

2.5期望

数学中最常见的求最值得手段就是期望
E(x)=xf(x) E(x) = \int_{-\infty}^\infty xf(x)
所以
ExPdata(x)[logD(x)]=xPdata(x)logD(x)dx E_{x-P_{data}(x)}[logD(x)]=\int_{x} P_{data}(x)*logD(x)dx

ExPz(x)[log(1D(G(z)))]=xPz(z)logD(z)dz E_{x-P_{z}(x)}[log(1-D(G(z)))]=\int_{x} P_{z}(z)*logD(z)dz

结合上述两个式子,目标是将G(z)->x ;生成得G(z)能够符合x原画的分布。
V=x[Pdata(x)logD(x)+Pg(x)log(1D(x))]dx V =\int_{x} [P_{data}(x)*logD(x) + P_{g(x)}log(1-D(x))] dx

3总结

minGmaxDV(D,G)=ExPdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))] \min_{G}\max_{D}V(D,G) = E_{x-P_{data}(x)}[logD(x)] +E_{z-p_{z}(z)}[log(1-D(G(z)))]

  • 一步一步创建一个discriminator(D) & generator(G)
  • D的目标师最好的区分real and fake Image
  • 综上所述我们能得到一个近似的全局最优解是 Pg的分布会逐渐趋近Pdata分布。

相关文章:

  • 2021-05-22
  • 2021-12-27
  • 2021-10-05
  • 2021-05-30
  • 2021-09-23
  • 2021-07-21
  • 2021-04-28
  • 2022-12-23
猜你喜欢
  • 2021-10-11
  • 2021-10-21
  • 2021-05-24
  • 2021-09-01
  • 2021-06-12
  • 2021-03-29
  • 2021-09-28
相关资源
相似解决方案