GAN的基本原理

GAN(生成对抗网络)由生成器和判别器组成,通过博弈学习生成逼真的样本。在训练过程中,判别器尝试区分真实样本与生成器产生的假样本,而生成器则试图生成更接近真实样本的实例。GAN已被应用于图像生成等领域,其在机器学习中与最大似然估计有所不同,使用了不同的散度度量。WGAN通过地球 mover's 距离解决了原始GAN的收敛问题,确保了有效的指导信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


GAN 简介

GAN的工作原理

generator 和 discriminator相互博弈:

  • discrimiator最大化真实样例与generator样例之间的差异
  • generator根据discriminator“反馈的指导信息”,更新参数,生成“更靠谱”的样例,减小与真实样例的差异。

Minimax Game:

minGmaxDV(G,D)minGmaxDV(G,D)

在origin GAN中:
V=ExPdata[logD(x)]+ExPG[log(1D(x))]V=Ex∼Pdata[logD(x)]+Ex∼PG[log(1−D(x))]

一般而言,G是neural network, 它从一个先验分布 PzPz ,生成x,上式写成:
V=ExPdata[logD(x)]+EzPz[log(1D(G(z)))]V=Ex∼Pdata[logD(x)]+Ez∼Pz[log(1−D(G(z)))]

GAN的应用示例

目前,Tensorflow 1.4已经提供了一些gan的实现,在tf.contrib.gan中;另外,有很多开源的GAN的实现。(示例略,可以参加mnist上的各种实验和DCGAN、WGAN等生成的图片)

GAN与ML

LR判别模型

样本实例集合:D={ (xi,yi)}ni=1D={ (xi,yi)}i=1n
利用最大似然(ML), 求解判别模型:hθ(x)=11+eθTxhθ(x)=11+e−θTx

θ=arg max 1ni=1nyilog hθ(xi)+(1yi)log(1hθ(xi))=arg max 1nyi=1log hθ(xi)+yj=0log(1hθ(xj))=arg max |D1|n1|D1|D1log hθ(xi)+|D0|n1|D0|D0log hθ(xj)=arg max P(y=1)ExP(x|y=1)[loghθ(x)]+P(y=0)ExP(x|y=0)[log(1hθ(x))]θ∗=arg max 1n∑i=1nyilog hθ(xi)+(1−yi)log(1−hθ(xi))=arg max 1n∑yi=1log hθ(xi)+∑yj=0log(1−hθ(xj))=arg max |D1|n1|D1|∑D1log hθ(xi)+|D0|n1|D0|∑D0log hθ(xj)=arg max P(y=1)Ex∼P(x|y=1)[loghθ(x)]+P(y=0)Ex∼P(x|y=0)[log(1−hθ(x))]

事实上,当假设空间 hθ(x)hθ(x) 有足够强的表征能力,(比如真实分布确实由LR模型生成,或者 hθ 是深层神经网络,可以表征任意函数);通过求导,可以得到最优解为:
hθ(x)=P(y=1)P(x|y=1)P(y=1)P(x|y=1)+P(y=0)P(x|y=0)=P(x,y=1)P(x)=P(y=1|x)hθ∗(x)=P(y=1)P(x|y=1)P(y=1)P(x|y=1)+P(y=0)P(x|y=0)=P(x,y=1)P(x)=P(y=1|x)

(额,貌似推理了一句废话,不过这个公式正说明,当我们采用ML或者cross entropy的时候,最优解正是后验概率(条件概率),前提是 hθ(x)hθ(x) 有足够强的表征能力。推导这个式子,也可以和后面推导 DD∗ 相互验证)
观察式子:
  • xixi是正例, hθ(xi)hθ(xi)尽可能大,接近1
  • xjxj是负例, h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值