Advertisement

生成对抗网络(GAN)应用于图像分类

阅读量:

近年来,生成对抗网络(GAN)作为一种强大的深度学习框架,在图像处理等数据处理任务中展现出显著优势。传统深度学习模型依赖于显式的概率分布建模,而GAN则通过生成器和判别器的对抗训练机制直接生成与真实数据分布相似的样本。这种方法无需明确定义数据分布函数,在无监督学习中尤其高效。
在图像有监督分类问题中,GAN的应用主要分为两类:半监督分类方法和有监督分类方法。半监督方法通过将判别器输出层替换为softmax分类器实现对无标签数据的学习;而有监督方法则结合对抗网络与分割模型(如FCN),通过优化对抗网络的区分能力提升分割精度。这些技术为复杂场景下的图像分类提供了创新解决方案。

近年来,在数据处理领域中广泛应用了多种深度学习技术。这些技术不仅包括传统的机器学习方法,在图像识别、语音识别以及文本分析等多个领域都取得了显著成效。其中作为两类具有代表性的先进算法之一的是生成对抗网络(GAN),而另一类则是强化学习(RL)。值得注意的是强化学习则主要用于解决复杂决策问题,在实际应用中尤其表现出色的例子包括像DeepMind团队开发的AlphaGo系统这样的智能决策引擎。由于我的研究方向聚焦于基于有监督学习的图像分类任务因此本文将重点介绍生成对抗网络及其在网络分类方面的具体应用

生成对抗网络框架

生成对抗网络(Generative adversarial networks,简称为GAN)是2014年由Ian J. Goodfellow首先提出来的一种学习框架,说起Ian J. Goodfellow本人,可能大家印象不深刻,但他的老师正是“深度学习三巨头”之一的Yoshua Bengio(另外两位分别是Hinton和LeCun),值得一提的是,Theano深度学习框架也是由他们团队开发的,开启了符号计算的先河。关于GAN在机器学习领域的地位,在这里引用一段Lecun的评价,

Recent advancements in deep learning have sparked considerable interest. Among these developments, I believe that adversarial training stands out significantly. Not only has this method been widely recognized as a cornerstone of modern neural network architectures but it has also inspired numerous innovative approaches. Over the past decade, this foundational technique alongside its various developments represents one of the most compelling innovations within machine learning.

传统的生成模型都需要先定义一个概率分布的参数表达式,然后通过最大化似然函数来训练模型,比如深度玻尔兹曼机(RBM)。这些模型的梯度表达式展开式中通常含有期望项,导致很难得到准确解,一般需要近似,比如在RBM中,利用Markov chain 的收敛性,可以得到符合给定分布下的随机样本。为了克服求解准确性和计算复杂性的困难,J牛创造性的提出来了生成对抗网络。GAN模型不需要直接表示数据的似然函数,却可以生成与原始数据有相同分布的样本。
与常规的深度学习模型(比如cnn、dbn、rnn)不同,GAN模型采用了两个独立的神经网络,分别称为“generator”和“discriminator”,生成器用于根据输入噪声信号生成‘看上去和真实样本差不多’的高维样本,判别器用于区分生成器产生的样本和真实的训练样本(属于一个二分类问题)。其模型结构框架如下,

GANs基于一种对抗机制而非传统的优化问题,在其定义中包含两个相互竞争的目标函数:生成器的目标是最小化损失函数而判别器则致力于最大化之。作者进一步证明了GAN模型在训练过程中能够收敛至最优解状态。设x为样本数据分布,则生成器接收服从分布p(z)的噪声输入并映射至样本空间中的点;判别器则通过函数D(x)评估输入样本x是否来自真实数据集而非生成器创造的数据。GAN模型可被形式化为如下的对抗优化框架:从上述公式可知,在模型训练阶段需要交替调节判别器与生成器的学习参数以实现两者的平衡状态——一方面通过最大化判别器能力使其能够准确区分真实与虚假样本;另一方面则促使生成器不断逼近真实数据分布以模仿训练数据的特点。J牛提出了一种交替更新策略(即每次更新D时执行k步梯度下降),具体而言就是先对判别器进行k步优化再单独更新一次生成器参数,并在此基础上阐述了完整的训练流程细节

GAN在分类问题方面的应用

传统GAN架构主要用于解决无监督学习问题,在处理具有相似数据分布特征的数据样本时表现出色。当将其应用至分类任务时,则需要对生成器与判别器的结构进行相应优化设计。以下将介绍两种改进方案:"Improved Techniques for Training GANs"和"Semantic Segmentation using Adversarial Networks"。其中一种属于半监督学习框架,在这种方案下可以通过少量标注样例显著提升分类性能;另一种则是典型的有监督学习方法,在此情况下则要求对所有训练样例进行充分标注以保证训练效果。

半监督分类方法

采用半监督学习策略时,在原始GAN架构的基础上进行适度调整即可。具体而言,在discriminator模块中替换其输出层为一个softmax分类器结构。假设训练数据分为c个类别,则在训练GAN模型的过程中,在generator生成的数据上附加一个类别标签(即第c+1类),同时相应地增加softmax输出层的一个神经元用于识别这些"假数据"(即由generator生成的数据)。值得注意的是,在这种设置下,模型不仅可以利用标注数据进行训练(L_{supervised}),还能从未标注数据中生成并学习新的类别特征(L_{unsupervised}),因此被命名为"半监督"分类方法。定义损失函数如下:其中L_{unsupervised}是一个标准的GAN优化问题...

有监督分类方法

可知,在处理基于像素级别的有监督分类问题时(由于所使用的训练数据集类似于人脸识别数据集,在该场景下),GAN模型中的生成器部分几乎不起作用。作者所提出的网络架构主要包含两个关键模块:其中一个是专门用于对单张图像进行基于像素级别的分类任务的设计;另一个模块则被命名为对抗网络(Generative Adversarial Network, GAN),其核心功能是通过对抗训练机制区分标签图与生成的概率预测图;值得注意的是,在这一过程中引入对抗训练机制的目的在于使生成的概率预测结果能够更好地匹配真实标签分布的情况。具体的系统组成架构将在下文进行详细阐述。

将训练图像标记为\{x_{n}, y_{n}, n=1,...,N\}后,在对抗网络中引入参数\theta_{a}用于生成概率图a(x, y)。其中y表示真实标签图变量,在segmentation模型中使用参数\theta_{s}来计算预测值s_{x}。这种情况下损失函数L被定义为两个部分之和:第一部分是多分类交叉熵损失L_{mce}(y_1, y) = -\sum_{c} y_{1,c} \log y_c(其中y_1是预测的概率图),第二部分是二分类交叉熵损失L_{bce}(z1, z) = -[z \log z1 + (1-z)\log(1-z1)](这里z代表真实标签)。这种设计类似于生成对抗网络(GAN)中的联合优化框架,在该框架下我们交替更新两个模型:首先优化adversarial模型使其能够更好地区分生成的概率图与真实标签图;其次优化segmentation模型使其能更准确地重建对应的标签图。具体而言,在更新adversarial模型时我们旨在最小化其对概率分布判别能力的影响;而在更新segmentation模型时则旨在最小化其对生成概率分布与真实标签分布之间差异的敏感度。整个过程通过迭代优化两者的参数实现目标函数最小化

参考资料:

  • 生成对抗网络(GAN)理论基础:Ian J. Goodfellow博士所著。
  • 训练生成对抗网络的改进方法:Tim Salimans与Ian Goodfellow博士共同研究。
  • 利用对抗网络实现语义分割技术:Pauline Luc的研究成果。

全部评论 (0)

还没有任何评论哟~