Daily Notes 7.9

  • Image De-raining Using a Conditional Generative Adversarial Network
  • Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
  • Image-to-Image Translation with Conditional Adversarial Networks

Image De-raining Using a Conditional Generative Adversarial Network

本文提出了用conditional-GAN来生成无雨背景的方法

ID-GAN的网络结构

生成器从雨图中学习生成无雨背景,然后判别器来判断是真实背景还是生成的

然后提出损失函数中不应只有 perceptual loss,还应当加入 per-pixel 的 loss 和 adversarial loss 一起,不过文中并没有提到三个loss的权重是怎么学出来的

最后提到缺点是不能处理图像上的白块,猜测可能是数据集中没有出现类似情况导致的,以及指出数据集难以包含整个 rain streak 的可能情况

Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks

本文介绍了从大量无标签数据集中学习可重复使用的特征表示的一些结果

文中也展示在图像数据集上用无监督的方法也可以得到很有趣的层次信息

文中总结了优化GAN的一些方法:

  • 在判别器用 strided convolution, 在生成器用 fractional convolution 来代替所有的 pooling 层
  • 在判别器和生成器中用 batch normalization
  • 用更深的结构来替换掉全连接的隐藏层
  • 生成器里除了最后一层都用 ReLU 来做 activation,最后一层用 Tanh
  • 判别器里所有层都用 LeakyReLU 做 activation (激活函数)

Image-to-Image Translation with Conditional Adversarial Networks

很多视觉的 task 可以看作是在把输入图像翻译成输出图像,本文提出的 cGAN 技术可以学到这种翻译的对应关系,也学到一个对应的 loss function 来训练这个对应关系。最为著名的应用是 pix2pix。

conditional GAN 学习一个 structured loss,惩罚网络的输出在结构上的不同。

这里的 conditional 的最大区别在于,输入的 edge map 也要喂给判别器。同时文中提出,使用 L1 距离代替 L2 距离来要求生成器的输出和 groud truth 更近,可以鼓励减少模糊。

U-net看起来就是加上了 skip connection 的 encoder-decoder network 。比如给图片上色的时候,突出的边缘的位置信息是输入和输出共享的,如果直接把它们从输入层传到输出层(避免经过 bottle neck),情况会好很多。具体来说,U-net形式里面把第 i 层和第 n-i 层里所有的通道都通过 skip connection 直接连接起来

PatchGAN,就是每次对结构的惩罚是在一个 patch 的层级来操作的。就是对整个图而言,是每次考虑一个 n * n 的 patch 是真的还是假的。实验证明,甚至 n 和整个图的大小相比可以很小。这样下来判别器相当于把图片看作是一个 Markov random field,其中假设了距离超过一个 patch 的直径的像素点之间是独立的。这样的 PatchGAN 可以看作是一种 材质/风格 的 loss

文中还提到了一些优化,比如生成器要最大化$log\ D(x, G(x, z))$而不是最小化$log\ (1 - D(x, G(x, z)))$;另外在训练判别器的时候,把目标函数除以 2,用来减小 D 相对于 G 学习的速度,然后每次 D 下降一步,G 也下降一步。

文中还有个很神奇的地方,作者表示在 inference time,生成网络和训练的时候是完全一样使用的,就是说这里面的 dropout 部分在测试的时候也没有移除。

Terms

image patch

图像块的意思= =

Leaky ReLUs

leaky ReLU 的特点是在 $x \leq 0$ (inactive)的时候允许有一个小的正梯度(0.01)

而 Parametric ReLU 在这里更进一步,让那个正梯度变成一个参数,在神经网络反向传播的时候可以得到更新

注意在$a \leq 1$的时候,PReLU 相当于 $max(x, ax)$,这个形式和 maxout 网络有一定关联