深度学习已经在图像分类、检测、分割、高分辨率图像生成等诸多领域取得了突破性的成绩。但是它也存在一些问题。首先,它与传统的机器学习方法一样,通常假设训练数据与测试数据服从同样的分布,或者是在训练数据上的预测结果与在测试数据上的预测结果服从同样的分布。而实际上这两者存在一定的偏差,比如在测试数据上的预测准确率就通常比在训练数据上的要低,这就是过度拟合的问题。

另一个问题是深度学习的模型(比如卷积神经网络)有时候并不能很好地学到训练数据中的一些特征。比如,在图像分割中,现有的模型通常对每个像素的类别进行预测,像素级别的准确率可能会很高,但是像素与像素之间的相互关系就容易被忽略,使得分割结果不够连续或者明显地使某一个物体在分割结果中的尺寸、形状与在ground_truth的尺寸、形状差别较大。

阅读论文《Semantic Segmentation using Adversarial Networks》
原文
在GAN中,有生成器和判别器,生成器生成fake样本然后判别器进行鉴别,随着训练的进行,生成器的fake样本越接近与数据真实分布,判别器也越难分辨真伪。

将GAN用于分割,实际上,基本的分割网络(FCN, DeepLab, PSPNet……)就是GAN中的生成器。换句话说,GAN用于分割不需要另外再构造一个生成网络,传统分割网络就是生成网络。然后在生成网络之后加一个判别网络结构,如图所示:
将GAN用于语义分割
左边Segmentor就是传统的CNN-based分割网络,Convnet中可以看到有convolution和deconvolution过程;右边Adversarial network是GAN中的判别器,最后用sigmoid activation进行二分类。

Segmentor这个部分会有两种训练图片输入到右边的Adversarial network中:
组合1:原始训练图片+ground truth, 这时候判别器判别为 1 标签;
组合2:原始训练图片+Segmentor分割结果, 这时候判别器判别为0标签。

然后训练过程就是经典的博弈思想,相互提高网络的ability, 提高分割精度,提高鉴别能力。

论文提出了混合损失函数,讲cross entropy和GAN的损失结合起来了
将GAN用于语义分割
对抗训练分成两个步骤迭代,训练思想与EM算法有点像,需要找到两个参数最优相互调整,先固定一个参数,调整另一个参数,再循环迭代。

步骤1:训练对抗模型
相当于训练GAN辨别真伪的能力
将GAN用于语义分割步骤2:训练分割模型
这时候,(2)式是(1)总loss中的对抗网络部分,所以在训练分割模型的时候必须加上每个pixel的相互熵损失,也就是(1)中第一项,但是同时分割模型需要对抗网络的反馈,需要朝哪个方向训练作为训练方向
将GAN用于语义分割
可以看到(3)式中的正则化项就是来自于(2)中的第二项,这也是论文中提到的参数共享的思想。

与常规的深度学习模型(比如cnn、dbn、rnn)不同,GAN模型采用了两个独立的神经网络,分别称为“generator”和“discriminator”,生成器用于根据输入噪声信号生成‘看上去和真实样本差不多’的高维样本,判别器用于区分生成器产生的样本和真实的训练样本(属于一个二分类问题)。其模型结构框架如下:

将GAN用于语义分割GANs是基于一个minimax机制而不是通常的优化问题,它所定义的损失函数是关于判别器的最大化和生成器的最小化,作者也证明了GAN模型最终能够收敛,此时判别器模型和生成器模型分别取得最优解。记xx表示样本数据,p(z)p(z)表示生成器的输入噪声分布,G(z;θg)G(z; \theta_{g})表示噪声到样本空间的映射,D(x)D(x)表示xx属于真实样本而不是生成样本的概率,那么GAN模型可以定义为如下的优化问题,
minGmaxDV(D,G)=Ex~pdata(x)[logD(x)]+Ez~pz(z)[log(1−D(G(z)))]
从以上公式可以看出,在模型的训练过程中,一方面需要修正判别器D,使值函数V最大化,也即使得D(x)D(x)最大化和D(G(z))D(G(z))最小化,其数学意义即最大化判别器分类训练样本和生成样本的正确率,另一方面需要修正生成器G,使值函数V最小化,也即使得D(G(z))D(G(z))最大化,其数学意义即生成器要尽量生成和训练样本非常相似的样本,这也正是GAN名字中Adversarial的由来。J牛提出了交替优化D和G(对D进行k步优化,对G进行1步优化)。

相关文章:

  • 2021-08-05
  • 2021-04-26
  • 2021-04-27
  • 2021-06-28
  • 2021-11-22
  • 2021-12-14
  • 2021-07-18
猜你喜欢
  • 2021-08-09
  • 2021-11-09
  • 2021-05-18
  • 2021-08-21
  • 2021-12-02
  • 2021-04-01
  • 2021-05-09
相关资源
相似解决方案