aihot  2017-06-16 22:15:59  深度学习 |   查看评论   
  深度学习已经在图像分类、检测、分割、高分辨率图像生成等诸多领域取得了突破性的成绩。但是它也存在一些问题。首先,它与传统的机器学习方法一样,通常假设训练数据与测试数据服从同样的分布,或者是在训练数据上的预测结果与在测试数据上的预测结果服从同样的分布。而实际上这两者存在一定的偏差,比如在测试数据上的预测准确率就通常比在训练数据上的要低,这就是过度拟合的问题。
 
  另一个问题是深度学习的模型(比如卷积神经网络)有时候并不能很好地学到训练数据中的一些特征。比如,在图像分割中,现有的模型通常对每个像素的类别进行预测,像素级别的准确率可能会很高,但是像素与像素之间的相互关系就容易被忽略,使得分割结果不够连续或者明显地使某一个物体在分割结果中的尺寸、形状与在金标准中的尺寸、形状差别较大。 
 
1, 对抗学习 
 
  对抗学习(adversarial learning)就是为了解决上述问题而被提出的一种方法。学习的过程可以看做是我们要得到一个模型(例如CNN),使得它在一个输入数据X上得到的输出结果Y_p尽可能与真实的结果Y(金标准)一致。在这个过程中使用一个鉴别器(discriminator),它可以识别出一个结果y到底是来自模型的预测值还是来自真实的结果。如果这个鉴别器的水平很高,而它又把Y_p和Y搞混了,无法分清它们之间的区别,那么就说明我们需要的模型具有很好的表达或者预测能力。本文通过最近的几篇文章来介绍它在图像分割和高分辨率图像生成中的应用。
 
2, 用于图像分割
 
  Semantic Segmentation using Adversarial Networks (arxiv, 25Nov 2016)这篇文章第一个将对抗网络(adversarial network)应用到图像分割中,该文章中的方法如下图。
对抗网络(adversarial network)
  左边是一个CNN的分割模型,右边是一个对抗网络。对抗网络的输入有两种情况,一是原始图像+金标准,二是原始图像+分割结果。它的输出是一个分类值(1代表它判断输入是第一种情况,0代表它判断输入是第二种情况)。代价函数定义为:
对抗网络代价函数
  其中θsθa分别是分割模型和对抗模型的参数。yn是金标准,s(xn)是分割结果。上式第一项是经典的分割模型的代价函数,例如交叉熵(cross entropy)即概率值的负对数。第二项和第三项是对抗模型的代价函数,由于希望对抗模型尽可能难以判别yn和ss(xn), 第二项的权重是-λ。
 
  训练过程中,交替训练对抗模型(θa)和分割模型(θs)。训练对抗模型的代价函数为:
对抗网络代价函数
  使该函数最小化,得到性能尽可能好的判别器,即对抗模型。训练分割模型的代价函数为:
训练分割模型的代价函数
  一方面使s(xn)与yn在像素级别尽可能接近,另一方面尽可能使判别器从整体上无法区分它们。下图是一个分割的结果,可见对抗模型得到的结果在空间上更加具有一致性。
训练分割模型的代价函数
  另外从训练过程中的性能上也可以看出,使用对抗训练,降低了过度拟合。
训练分割模型的代价函数
3,用于半监督学习
 
  An Adversarial Regularisation for Semi-Supervised Training of Structured Output Neural Networks(arxiv, 8 Feb 2017)这篇文章中使用对抗网络来做图像分割的半监督学习。半监督学习中一部分数据有标记,而另一部分数据无标记,可以在准备训练数据的过程中节省大量的人力物力。
 
  假设(xt,λt)是有标记的训练数据,xu是未标记的训练数据, 理论上分割结果fw(xt)与fw(xu)应该同分布,实际上由于x的维度太大而训练数据不足以表达它的所有变化,因此fw(xt)与fw(xu)存在一定偏差。该文中使用一个判别器δv(y)来得到y来自于有标记的训练数据的分割结果fw(xt)的概率,1-δv(y)作为y是来自于未标记的训练数据的分割结果fw(xu)的概率。 
 
  训练过程的代价函数为
  训练过程的代价函数
  C(w)是常规的基于标记数据的代价函数, Cadv(w)是基于未标记数据的代价函数,定义为
  未标记数据的代价函数
  该代价函数使分割算法在标记数据和未标记数据上得到尽可能一致的结果。整个算法可以理解成通过使用未标记数据,实现对分割网络的参数的规则化。
未标记数据的代价函数
  上图是在CamVid数据集上分别使用1/8, 1/4, 1/2 和1/1的标记数据进行训练的结果。相比于蓝线只使用标记数据进行训练,该方法得到了较大的性能提高,如红线所示。
 
4, 用于域适应
 
  FCNs in the Wild: Pixel-level Adversarial and Constraint-based Adaptation(arxiv, 8 Dec 2016 )这篇文章将对抗学习用到基于域适应的分割中。域适应是指将在一个数据集上A训练得到的模型用到与之类似的一个数据集B上,这两个数据集的数据分布有一定的偏移(distribution shift),也叫做域偏移(domain shift)。A 被称为源域 source domain,B被称为目标域 target domain。源域中的数据是有标记的,而目标域的数据没有标记,这种问题就被称为非监督域适应。该文章要解决的问题如下图所示:
对抗学习
  该文章中认为一个好的分割算法应该对图像是来自于源域还是目标域不敏感。具体而言就是从输入图像中提取的抽象特征不受域之间的差异影响,因此从源域中的图像提取的抽象特征与从目标域中的图像提取的抽象特征很接近。那么如果用一个判别器来判断这个抽象特征是来自于源域中的图像还是来自于目标域中的图像,这个判别器应该尽量无法判断出来。方法的示意图如下:
分割算法
  该文章认为有两个方面引起了域之间的偏移,一个是全局性的,比如不同天气状况下的街道场景,一个是与特定的类别相关的 ,比如不同国家城市之间的交通标志。 因此在代价函数中考虑了这两种情况:
深度对抗学习在图像分割和超分辨率中的应用
  其中第一项是通常的监督学习的代价函数。第二项是对抗学习的目标函数,该函数又包括两个最小化过程,一个是更新特征提取网络,使得从两个域中的图像提取的特征接近从而判别器无法区分,一个是更新判别器参数,是它能尽可能区分两个域中的图像的特征。Lmi(IT,PLS)是一个与特定类别有关的代价函数。其思想是利用从源域中的标记结果中统计出各个类别物体的尺寸范围,再用这些尺寸范围作为先验知识去限制目标域中图像的分割结果。
图像的分割结果
  上图是在Cityscapes数据集上的结果。实验中把训练集作为源域,验证集作为目标域,分别展示了只使用全局性的域适应(GA)和类别特异性域适应(CA)的结果。
 
5, 高分辨率图像重建
 
  Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network (arxiv, 21 Nov, 2016)这篇文章将对抗学习用于基于单幅图像的高分辨重建。基于深度学习的高分辨率图像重建已经取得了很好的效果,其方法是通过一系列低分辨率图像和与之对应的高分辨率图像作为训练数据,学习一个从低分辨率图像到高分辨率图像的映射函数,这个函数通过卷积神经网络来表示。
 
  传统的方法一般处理的是较小的放大倍数,当图像的放大倍数在4以上时,很容易使得到的结果显得过于平滑,而缺少一些细节上的真实感。这是因为传统的方法使用的代价函数一般是最小均方差(MSE),即
代价函数
  该代价函数使重建结果有较高的信噪比,但是缺少了高频信息,出现过度平滑的纹理。该文章中的方法提出的方法称为SRGAN, 它认为,应当使重建的高分辨率图像与真实的高分辨率图像无论是低层次的像素值上,还是高层次的抽象特征上,和整体概念和风格上,都应当接近。整体概念和风格如何来评估呢?可以使用一个判别器,判断一副高分辨率图像是由算法生成的还是真实的。如果一个判别器无法区分出来,那么由算法生成的图像就达到了以假乱真的效果。
 
  因此,该文章将代价函数改进为
代价函数
  第一部分是基于内容的代价函数,第二部分是基于对抗学习的代价函数。基于内容的代价函数除了上述像素空间的最小均方差代价函数以外,又包含了一个基于特征空间的最小均方差,该特征是利用VGG网络提取的图像高层次特征:
图像高层次特征
  对抗学习的代价函数是基于判别器输出的概率:
对抗学习的代价函数
  其中DθG()是一个图像属于真实的高分辨率图像的概率。GθG(ILR)是重建的高分辨率图像。该方法的实验结果如下
重建的高分辨率图像
  小结:对抗学习的概念就是引入一个判别器来解决不同数据域之间分布不一致的问题,通过使判别器无法区分两个不同域的数据,间接使它们属于同一个分布,从而作为一个规则化的方法去指导深度学习模型更新参数,达到更好的效果。

 

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自深度对抗学习在图像分割和超分辨率中的应用

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]