快捷搜索:  汽车  科技

gan推荐算法(万字长文解读GAN从基本概念)

gan推荐算法(万字长文解读GAN从基本概念)改善生成质量:通过惩罚远离判别器决策边界的生成样本来实现稳定训练:解决了传统 GAN 训练过程中的梯度饱和问题上面提到,LSGAN 是 f-divergence 中 时的特殊情况。具体来说 LSGAN 的 Loss 如下:原作中取 a = c = 1,b = 0。LSGAN 有两大优点 [2]:

值得注意的是,散度这种度量方式不具备对称性,即

不相等(严格来说,距离度量方式必须具备对称性,所以散度不是一种距离度量方式,不过此处不去刻意关注这一点,直接把散度也作为一种距离度量方式,下文也是如此)。

LSGAN

上面提到,LSGAN 是 f-divergence 中

时的特殊情况。具体来说 LSGAN 的 Loss 如下:

原作中取 a = c = 1,b = 0。LSGAN 有两大优点 [2]:

  • 稳定训练:解决了传统 GAN 训练过程中的梯度饱和问题

  • 改善生成质量:通过惩罚远离判别器决策边界的生成样本来实现

对于第一点,稳定训练,可以先看一张图:

gan推荐算法(万字长文解读GAN从基本概念)(1)

上图左边是传统 GAN 使用 sigmoid 交叉熵作为 loss 时,输入与输出的对照关系图。上图右边是 LSGAN 使用最小二乘 loss 时,输入与输出的对照关系图。可以看到,在左图,输入比较大的时候,梯度为 0,即交叉熵损失的输入容易出现梯度饱和现象。而右边的最小二乘 loss 则不然。

对于第二点,改善生成质量。这个在原文也有详细的解释。具体来说:对于一些被判别器分类正确的样本,其对梯度是没有贡献的。但是判别器分类正确的样本就一定是很接近真实数据分布的样本吗?显然不一定。

考虑如下理想情况,一个训练良好的 GAN,真实数据分布 pdata和 pg生成数据分布 完全重合,判别器决策面穿过真实数据点,所以,反过来,我们利用样本点离决策面的远近来度量生成样本的质量,样本离决策面越近,则 GAN 训练的越好。

gan推荐算法(万字长文解读GAN从基本概念)(2)

上图 b 中,一些离决策面比较远的点,虽然被分类正确,但是这些并不是好的生成样本。传统 GAN 通常会将其忽略。而对于 LSGAN,由于采用最小二乘损失,计算决策面到样本点的距离,如图 c,可以把离决策面比较远的点「拉」回来,也就是把离真实数据比较远的点「拉」回来。

1.2.2 Integral probality metric(IPM)

IPM 定义了一个评价函数族 f,用于度量任意两个分布之间的距离。在一个紧凑的空间

中,定义 p(x) 为在 x上的概率测度。那么两个分布 pdata,pg 之间的 IPM 可以定义为如下公式:

类似于 f-divergence,不同函数 f 也可以定义出一系列不同的优化目标。典型的有 WGAN,Fisher GAN 等。下面简要介绍一下 WGAN。

WGAN

WGAN 提出了一种全新的距离度量方式——地球移动距离 (EM Earth-mover distance),也叫 Wasserstein 距离。关于 Wasserstein 距离的介绍可以参考:

我爱馒头:白话 Wassertein 距离

Wasserstein 距离具体定义如下:

表示一组联合分布,这组联合分布里的任一分布 r 的边缘分布均为 pdata(x) 和 pg(x)。

直观上来说,概率分布函数(PDF)可以理解为随机变量在每一点的质量,所以 W(pdata pg) 则表示把概率分布 pdata(x) 搬到 pg(x) 需要的最小工作量。

WGAN 也可以用最优传输理论来解释,WGAN 的生成器等价于求解最优传输映射,判别器等价于计算 Wasserstein 距离,即最优传输总代价 [4]。关于 WGAN 的理论推导和解释比较复杂,不过代码实现非常简单。具体来说 [3]:

  • 判别器最后一层去掉 sigmoid

  • 生成器和判别器的 loss 不取 log

  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数 c

上述第三点,在 WGAN 的后来一篇工作 WGAN-GP 中,将梯度截断替换为了梯度惩罚。

1.2.3 f-divergence 和 IPM 对比

f-divergence 存在两个问题:其一是随着数据空间的维度 的增加

,f-divergence 会非常难以计算。其二是两个分布的支撑集 [3] 通常是未对齐的,这将导致散度值趋近于无穷。

IPM 则不受数据维度的影响,且一致收敛于 pdata pg两个分布之间的距离。而且即便是在两个分布的支撑集不存在重合时,也不会发散。

1.2.4 辅助的目标函数

在许多 GAN 的应用中,会使用额外的 Loss 用于稳定训练或者达到其他的目的。比如在图像翻译,图像修复,超分辨当中,生成器会加入目标图像作为监督信息。EBGAN 则把 GAN 的判别器作为一个能量函数,在判别器中加入重构误差。CGAN 则使用类别标签信息作为监督信息。

1.3 其他常见生成式模型

1.3.1 自回归模型:pixelRNN 与 pixelCNN

自回归模型通过对图像数据的概率分布 p_{data}(x) 进行显式建模,并利用极大似然估计优化模型。具体如下:

上述公式很好理解,给定

条件下,所有 p(xi) 的概率乘起来就是图像数据的分布。如果使用 RNN 对上述依然关系建模,就是 pixelRNN。如果使用 CNN,则是 pixelCNN。具体如下 [5]:

gan推荐算法(万字长文解读GAN从基本概念)(3)

pixelRNN

gan推荐算法(万字长文解读GAN从基本概念)(4)

pixelCNN

显然,不论是对于 pixelCNN 还是 pixelRNN,由于其像素值是一个个生成的,速度会很慢。语音领域大火的 WaveNet 就是一个典型的自回归模型。

1.3.2 VAE

PixelCNN/RNN 定义了一个易于处理的密度函数,我们可以直接优化训练数据的似然;对于变分自编码器我们将定义一个不易处理的密度函数,通过附加的隐变量 z 对密度函数进行建模。VAE 原理图如下 [6]:

gan推荐算法(万字长文解读GAN从基本概念)(5)

猜您喜欢: