赞
踩
GANs 的结果图如下所示:
生成式对抗网络 GANs 最重要的两个部分为:
从上面可以看出,生成器和判别器是对抗的关系,生成器要尽可能生成出让判别器失败的样本,而判别器要尽可能识别出生成器的假样本。GANs 就是通过这种对抗的关系,让生成器和判别器不断提升。理想状态下,生成器和判别器最终能达到一种平衡,两者都趋于完美,都没有更进一步的空间。
GANs 采用生成器和判别器交替优化的方式:
(1)固定生成器 G G G,训练判别器 D D D
固定生成器 G G G,然后利用生成器随机模拟产生样本 G ( z ) G(z) G(z) 作为负样本( z z z 是一个随机向量),并从真实数据集中采样获得正样本 X X X,将这些正负样本输入到判别器 D D D 中,根据判别器的输出(即 D ( X ) D(X) D(X) 或 D ( G ( z ) ) D(G(z)) D(G(z)) )和样本标签来计算误差,最后利误差反向传播算法来更新判别器的参数,如下图所示
(2)固定判别器 D D D,训练生成器 G G G
固定判别器 D D D,然后利用当前生成器 G G G 随机模拟产生样本 G ( z ) G(z) G(z),并输入到判别器 D D D 中;根据判别器的输出 D ( G ( z ) ) D(G(z)) D(G(z)) 和样本标签来计算误差,最后利用误差反向传播算法来更新生成器 G G G 的参数,如下图所示:
先给出 GANs 的公式:
min G max D V ( D , G ) = E x ∼ p d a t a ( x ) [ log D ( x ) ] + E z ∼ p z ( z ) [ log D ( G ( z ) ) ] (1) \min_G \max_D V(D,G)=E_{x\sim p_{data}(x)}[\log D(x)] + E_{z\sim p_{z}(z)}[\log D(G(z))] \tag{1} GminDmaxV(D,G)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[logD(G(z))](1)
训练模型中需要用到的符号有:
判别器 D D D 实质上解决的是一个二分类问题,其损失函数可以用 负对数似然(Negative Log-Likelihood,NLL),也称 绝对交叉熵损失(Categorical Cross-Entropy Loss) 来表示:
L ( D ) = − ∫ p ( x ) [ p ( d a t a ∣ x ) log D ( x ) + p ( g ∣ x ) log ( 1 − D ( x ) ) ] d x (2) L(D)=-\int p(x)[p(data|x) \log D(x) + p(g|x) \log (1-D(x))]dx \tag{2} L(D)=−∫p(x)[p(data∣x)logD(x)+p(g∣x)log(1−D(x))]dx(2)
其中:
我们可以推出:
p ( x ) p ( d a t a ∣ x ) = p s r c ( d a t a ) p ( x ∣ d a t a ) = p s r c ( d a t a ) p d a t a ( x ) = 1 2 p d a t a ( x ) p(x)p(data|x)=p_{src}(data)p(x|data)=p_{src}(data)p_{data}(x)=\frac{1}{2}p_{data}(x) p(x)p(data∣x)=psrc(data)p(x∣data)=psrc(data)pdata(x)=21pdata(x)
p ( x ) p ( g ∣ x ) = p s r c ( g ) p ( x ∣ g ) = p s r c ( g ) p g ( x ) = 1 2 p g ( x ) p(x)p(g|x)=p_{src}(g)p(x|g)=p_{src}(g)p_{g}(x)=\frac{1}{2}p_{g}(x) p(x)p(g∣x)=psrc(g)p(x∣g)=psrc(g)pg(x)=21pg(x)
代入公式 (2)则有:
L ( D ) = − ∫ p ( x ) [ p ( d a t a ∣ x ) log D ( x ) + p ( g ∣ x ) log ( 1 − D (
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。