交叉熵、GAN loss与softplus

一、交叉熵理解:

交叉熵,其用来衡量在给定的真实分布P(x)下,使用非真实分布Q(x)所指定的策略消除系统的不确定性所需要付出的努力的大小。其公式为:

KL散度用来衡量两个分布的距离,也称为相对熵:

,由于 代表数据真实分布,是固定的量,所以优化交叉熵等同于优化KL散度。

二、GAN loss理解

从这个角度理解GAN loss:假如判别器为D,真实数据为x,生成数据为。则经过判别器后真实数据和生成数据的概率分布分别为 和 。为了简洁起见,省略了sigmoid函数σ(x)

对于Dloss:生成数据的真实分布为,真实数据的真实分布为。故生成数据和真实数据的损失分别为:



对于Gloss:认为生成数据如果离真实数据很远就要给与更大惩罚,故此时生成数据的目标分布可以看做 。则生成器的对抗损失为:

三、GAN loss与softplus关系

进一步简化——使用softplus

俗称log_sum_exp函数。


D_{loss\_fake} = -log(1-σ(D(\hat{x}))) = -log(1-\frac{1}{1+e^{-D(\hat{x})}}) = -log(\frac{e^{-D(\hat{x})}}{1+e^{-D(\hat{x})}}) = -log(\frac{1}{e^{D(\hat{x})}+1}) = log(1+e^{D(\hat{x})}) = softplus(D(\hat{x}))
同理

这就解释了一些GAN loss代码里面的写法:

另外,有些图像修补论文中会对mask内、外区域设置不同的判别器目标,如下面这段代码,对于fake样本,mask内部区域的label设置为False,外部设置为True。

你可能感兴趣的:(交叉熵、GAN loss与softplus)