多标签分类(一) | CNN-RNN: A Unified Framework for Multi-label Image Classification
CNN-RNN:一种统一的多标签图像分类框架
文章是2017 CVPR的,主要用于多标签图像分类
摘要
尽管卷积神经网络(CNNs)在单标签图像分类任务中取得了显著的性能优势,在现实世界场景中面临多标签挑战时却表现出局限性:许多现实世界中的图像包含多个相互关联的标签信息,在这种复杂背景下仅靠独立处理每个类别无法充分捕捉各类别间的语义关联关系。基于此,在本文研究中我们提出了一种新的深度学习框架:递归神经网络与卷积神经网络的有效结合能够更好地建模图像与标签之间的深层依赖关系。通过与卷积神经网络(CNNs)结合使用并设计一个统一的学习架构以同时考虑图像特征提取与多标签信息表示之间的相互作用机制:该联合模型不仅能够有效整合两类任务的信息处理能力还能实现两者的协同优化以提升整体性能水平
一、介绍
任何现实世界中的图像都可以通过多个标签进行标注。由于一幅图像通常包含丰富的语义信息-对象、部件、场景、动作及它们间的互动或属性等-其有效的理解和利用成为提升模型性能的关键所在。丰富语义信息及其相互关系的建模是图像理解的关键所在,在此基础之上多标签分类任务倍受关注。近年来深度卷积神经网络在单标签图像分类领域取得了突破性进展-证明端到端学习框架的有效性(端到端指输入直接对应输出)-为此启发我们开始探索构建一种统一的多标签图像分类框架
针对将CNN扩展至多标签分类的传统方法-即将其转化为若干个独立的单标签分类问题并通过排序损失或交叉熵损失进行训练-我们发现现有技术存在显著缺陷:当单独处理各个类别时-这些方法无法捕捉多个类别间的相互依赖性(现有技术体系的局限性)
以往研究表明多类标记问题往往具有较强的标记共现特性:例如在许多场景中可见的是天空与云并存而水与汽车几乎从不同时出现

图1展示了从2012年分类数据集ImageNet中随机选取的三幅图像。第二行显示对应的标签注释。对于每个图像,在ImageNet数据集中只有一个标签(即飞机,大比利牛斯山脉,射箭)被注释。然而,每个图像实际上包含多个标签,如第三行所示。
最后,许多标签有着重叠的意思,如catcat和kittenkitten意思几乎一样并且经常可以互换,利用语义冗余不仅可以降低计算成本,而且可以提高泛化能力,因为语义重复的标签可以获得更多的训练数据。
标签语义冗余可以通过联合图像/标签嵌入来利用,可以通过规范相关分析,度量学习或学习排名方法来学习。联合图像/标签嵌入将每个标签或图像映射为联合低维欧几里德空间中的嵌入向量,以使语义相似标签的嵌入彼此接近,并且并且在同一空间内,每个图像的嵌入应与其相关标签的嵌入位置接近。联合嵌入模型可以利用标签语义冗余,因为它本质上共享语义相似标签的分类参数,但是,在大部分的这些模型当中,标签共现依赖关系在很大程度上被忽略。
本文提出了一种统一的多标签图像分类CNN-RNN框架,该框架以端到端方式有效地学习了语义冗余和共现依赖关系,所提模型的框架如图2所示。多标签RNN模型学习联合的低维图像标签嵌入以对图像和标签之间的语义相关性进行建模,图像嵌入向量由深层CNN生成,而每个标签都有其自己的标签嵌入向量。通过使用长期短期记忆递归神经元对低维空间中的高阶标签共现依赖性进行建模,从而将标签上下文信息保持在其内部记忆状态中。RNN框架按有序预测路径顺序计算多标签预测的概率,其中可以基于图像嵌入和递归神经元的输出来计算每个时间步长的标签先验概率(先验概率是指根据以往经验和分析得到的概率,可以根据之前获得的标签和图像来获得下一次的标签),在预测期间,可以使用波束搜索算法 大致找到概率最高的多标签预测。本文提出的CNN-RNN框架是一个统一的框架,结合了联合图像/标签嵌入和标签共现模型的优点,并且可以端到端的方式进行训练。

图2描述了CNN-RNN架构在多标签图像分类中的应用。该架构构建联合嵌入空间模型来表征图像标签间的关联性和相互依赖关系。首先接收一张图片输入后经VGG网络提取其特征表示;随后将这些特征节点投射到联合嵌入空间中;同时将所有标签同样投射到此空间中进行建模;其中红点代表类别节点的投影点;蓝点代表图像特征向量;而黑点则表示各时间步向量与递归单元输出向量的总合投影点。递归单元依次连接关节嵌入空间中的节点来进行共现依存关系的建模;并在每个时间步长计算对应标签的概率值时使用当前图像特征与前一时刻递归单元输出向量的信息来进行预测更新操作:每个时间步长都会生成一个神经元状态并将其与当前时刻的图像特征结合在一起;最终通过寻找当前状态向量与各类别投影点之间的最小欧氏距离来确定最终分类结果:初始时刻没有已知类别信息(即全零独热编码);后续则根据预测结果逐步引入最大置信度的类别信息作为输入数据
2、相关工作
图像分类的发展得益于大规模的手标记数据集(如ImageNet)的构建以及深度卷积神经网络(CNN)的进步。将深度CNN扩展至多标签分类领域取得了显著性能提升效果。通过深度卷积排序优化了top-k排序目标函数,并赋予正样本更高的损失权重以减少误判风险。Hypotheses-CNN-Pooling采用最大池化机制整合多个假设区域提议的预测结果。这些方法在很大程度上独立处理每个标签特征而忽视了标签间的相互依赖关系**(即标签的相关性建模不足)** 。
多标签分类问题可以通过学习联合图像与标签嵌入空间来解决。多视图规范相关性分析作为一种三向规范技术,在图像、标签及语义三者间建立潜在共同空间表示**(其优势在于有效捕捉语义冗余信息但缺乏对复杂共现模式的有效建模能力)** 。
针对现有方法中存在的局限性已提出多种解决方案:例如基于递归神经元的学习框架能够有效建模高阶标签相关性关系并实现计算效率优化;基于LSTM架构设计的序列模型则成功建立了长期时间依赖关系模型且其在实际应用中表现优异**(证明了基于LSTM的RNN模型在捕捉长程依存关系方面具有显著优势)** 。
3、方法
为了研究高阶标签之间的相关性问题,在本研究中我们采用了基于长短期记忆(LSTM)神经元的周期性神经元作为核心工具,并已被证明为有效解决长期依赖问题的强健模型。
3.1 长-短期记忆网络(LSTM)
RNN 属于一种神经网络体系结构,在处理序列数据时通过内部的状态来反映序列的信息。其工作原理可被看作是对隐马尔可夫模型的一种扩展,在这种模型中系统能够捕捉到长期依赖关系并进行预测。LSTM作为一种特殊的RNN架构,在其神经元之间增加了三个关键机制:遗忘门、输入门以及输出门。这些机制分别负责控制信息的保留、接收以及传递过程,在帮助模型学习长距离依赖的同时也简化了优化步骤。具体来说:
- 忘记门(forget gate)通过判断是否需要舍弃当前状态来实现信息筛选;
- 输入门(input gate)则用来判断是否接收新的输入信息;
- 输出门(output gate)则决定当前状态如何传递出去。
这些机制不仅使得LSTM能够按顺序学习长距离依赖关系,并且在传播信号时避免了梯度消失或爆炸的问题。

在本文中,在LSTM网络第t时刻的输入由前一时刻的状态h_{t-1}以及标签x_t的嵌入表示组成(后续会详细讲解)。随后通过遗忘门和输入门对h_{t-1}的状态进行更新以生成h_t的状态。接着通过输出门从h_t中提取并传递所需的信息o_t作为递归神经网络的整体输出结果。整个递归神经网络所使用的激活函数为Relu。步骤一(遗忘门f_t):

在时间步tt时,决定从细胞状态rt−1r_{t-1}中丢弃的信息。此门读取上一个时间步的隐藏层状态r(t−1)r(t-1)以及在此时间步所对应的标签嵌入wk(t)w_{k}(t),此时采用ReLU激活函数来将数值规范到0-1之间(0表示完全舍弃,1表示完全保留),UfrU_{f_{r}}对应的则是权重.
∙\bullet步骤二(输入门iti_{t}):

为了确定如何选择以特定的方式存储于细胞的状态中新的信息内容,则需要首先确定哪些值将被更新为此门机制通过读取t-1时刻的隐藏层状态r(t-1)以及每个时间步对应的标签来进行激活过程

接下来需要构建一个新的候选值向量xtx_{t},该向量作为输入将与上一步骤中的门限操作保持一致

在这一过程中需要对细胞执行遗忘操作以及更新操作,在这一阶段中我们首先将前一时刻的细胞状态 r_t−1 更新为当前时刻的细胞状态 r_t. 在这一过程中我们需要先通过旧的状态信息 r(t−1) 与遗忘门 f_t 的点积运算来去除那些不需要保留的信息 然后利用输入特征 x_t 和当前状态下获取的状态 i_t 进行点积运算以获取需要补充的状态信息 最后将这些计算得到的结果相加汇总后即可得到新的细胞状态. 同时 我们还需要根据输出门 o_t 来生成最终的记忆内容.

根据当前细胞状态r(r)t, 决定输出的内容是什么。在此过程中, 激活函数的作用是判断并决定细胞状态下哪些部分会被传递出去。数学表达式表示为: o(r)t = r(r)t ⋅ o_t, 其中o_t代表当前时刻的状态信息。随后, 经过更新后的细胞状态信息rt与当前时刻的输出门ot进行点乘运算以生成最终的输出ot, 并将原始的细胞状态信息rt继续传递至下一个时间步骤。
3.2模型
针对多标签分类问题的研究,在本研究中我们构建了一个创新性的网络神经网络体系结构(CNN-RNN),如图4所示:该体系由两大模块构成:首先,在输入图像的基础上运用CNN模块提取出图像语义特征表示;其次,在结合输入标签信息的基础上运用RNN模块建模分析图像与各标签之间的关联性和相互依存性

图4 介绍了提出的多标签分类RNN模型的结构。首先输入一张图片通过ConvNet网络输出图片表示I,同时标签以独热向量的形式通过标签嵌入映射到低维空间中的 wk(t)w_{k}(t),然后在每一个时间步输入wk(t)w_{k}(t)以及上一个隐藏层状态状态r(t−1)r(t-1),最后RNN网络输出o(t)o(t),然后将图像表示I和RNN输出o(t)o(t)共同通过映射层映射到低维空间获得x(t)x(t)再通过预测层来获得预测标签的概率,将最大的那个作为输出。
我们将多标签预测分解为有序预测路径,例如,标签“斑马”和“大象”可以分解为(“斑马”,“大象”)或(“大象”,“斑马”)。预测路径的概率可以由RNN网络计算。 图像,标签和递归表示被投影到相同的低维空间,以对图像-文本关系以及标签冗余进行建模。RNN模型被用作该空间中标签共现依赖性的紧凑而强大的表示形式。它在每个时间步都嵌入了预测标签,并保持隐藏状态以对标签共现信息建模。给定先前预测的标签,可以根据图像和周期性嵌入的点积来计算目前标签的先验概率。可以将给定预测路径中给定先前标签中的每个标签的先验概率乘积来获得预测路径的概率。
一个标签kk可以被表示为一个独热向量ek=[0,...0,1,0,...,0]e_{k}=[0,...0,1,0,...,0],其中第kk个位置用1表示,其余位置用0代替。标签嵌入可以通过将独热向量与标签嵌入矩阵UlU_{l}相乘得到。标签 kk的标签嵌入实际上就是标签嵌入矩阵UlU_{l}的第kk行

wkw_{k}在大多数情况下其维度远低于标签总数,这也就意味着wkw_{k}已经被映射至一个低维的空间之中。递归层通过对先前预测出的标签进行嵌入操作,并通过对非线性函数在其内部循环状态中建模共现依存关系

其中r(t)和o(t)分别表示递归层在时间步长t处的隐藏状态和输出,w_k(t)是第k个标签在预测序列中的标签嵌入,ho(⋅)则代表非线性RNN变换器函数

其中UoxU_{o}{x}和UIxU_{I}{x}分别代表递归图层输出与图像表示对应的投影矩阵,在这种情况下两者的列数均与同一维度上的标签嵌入矩阵UlU_{l}相匹配。观察可知,在此设定下xtx_{t}实际上代表了联合空间中的特定点——即图像特征与输出状态结合后所得出的结果信息;而o(t)o(t)则表示在时间步t时的状态输出结果;II作为卷积神经网络模型提取出的图像表征信息在此过程中扮演着关键角色。
综上所述,在本研究框架中我们采用了一种基于低维空间编码的方法来处理原始数据:具体而言是将原始label通过 UlU_{l} 进行映射编码至较低维度的空间中;同时对每个时间步RNN 输出以及原始图像表征均通过相应的投影操作将其映射至同一目标空间中。
随后我们可以采用 UlU_{l}^T 乘以 xtx_{t} 的方式来计算两者之间的相似度得分:

通过归一化处理得分的方式利用softmax算法能够得到预测的概率分布然后选取具有最高概率的那个标签并将其传递给下一个RNN单元
3.3 推理
该算法中所指的"预测路径"代表为一个标签序列(l₁,l₂,…, l_N),其中基于图像II以及之前预测的标签序列{l₁,…, l_{t-1}}的信息,在此基础上可以推导出每个后续标签的概率值;递归神经网络(RNN)则通过寻找能够最大化先验概率的预测路径来推导多个后续标签。

该公式的目标是确定各个标签的输出顺序。即是在图像I的特征下计算各标签的概率最大值;并采用波束搜索算法生成最优预测序列。如图5所示,波束搜索算法并不采用贪心策略依次预测单个标签;而是在每一个时间步长t时选取可能性最高的n条中间路径S(t)作为候选序列。

图5 展示了一个波束大小为N=2的波束搜索算法的具体应用实例。该算法通过在每个时间步长中保留一系列中间路径并逐步添加这些中间路径的标签来确定概率最高的N条最佳路径。例如,在第一步中选择两条具体路径Cat和Person后,在第二步中又分别找到了概率最高的两条子路经,并以此类推直至最终抵达终点位置时才会形成一条完整而有效的完整路线

在时间步t处,我们识别出共有M条潜在选择性通道。随后,在时间步t + 1处,通过将前K个最高概率标签分配给每条中间通道P_I(T),从而生成K×K条新的候选序列。其中概率最高的K条新序列成为当前时间步的中间候选项。当一条序列以结束符结束时(即标记为END),它会被加入候选序列集合C中。波束搜索算法设定了解码分支终止的标准:当当前解码分支的概率低于所有其他候选项时,则停止扩展该分支。这表明我们无法找到比现有候选项更高的概率。
4. 实验
在我们的实验中,基于16层VGG网络的Caffe深度学习框架ImageNet 2012分类挑战数据集[5]进行了预训练。我们将标签嵌入层的维度设定为64,并将LSTM RNN层的规模设置为512。在所有的投影层中,默认配置下采用了0.0001的权重衰减率、0.9的动量参数以及50%的Dropout率(随机移除神经元的比例)。
4.1实验
通过生成一系列候选分类结果并用作分类评估标准,在每个图像中提取包含前k个最高-ranked的标签集合,并对提取出的结果与其实际存在的分类结果进行对比分析。其中计算其准确率即为正确标注数量与总提取数量的比例;计算其召回率则等于正确标注数量与所有真实存在的数量的比例。
4.2 NUSWIDE
NUS-WIDE数据集是由一个网络图像数据集构成的,在这个集合中包含了来自Flickr平台丰富且多样的标注信息。经过去除了噪声类和其他罕见类别后的过滤处理后仅保留了数量为一千的独特标签。这些图片被人工标注者细致地分类为 eighty-one 核心主题如动物植物建筑等不同类别。图 6 左侧展示了这两个不同类别标签集合的实际标注情况与预测结果之间的差异

在约81个标签中所附的注释质量较高,在约1,000个标签中所附的注释质量较差。从图6可以看出,在分类问题中存在不同类型的问题实例:一方面能够发现具有相同语义的不同概念(如云与云朵);另一方面则会遇到完全不相关的概念(如摄影师);此外还有一些过于笼统的概念(如美)。
4.3 标签嵌入
除了能够生成多个标签外

图9展示了通过标签嵌入wkw_{k}与图像嵌入UIxIU_{I}^{x}{I}在NUS-WIDE 1000标签数据集上计算得到的图像最近邻居标签的结果。在联合嵌入空间内,图像与其对应的语义相关联的最近邻居标签具有显著关联性。进一步发现,在分类模型预测结果中排名最高的tag(即classification)与其相关的近邻tag(如KNN算法所展示)相比,在具体化程度上通常更为细致。例如,在实际应用中,“hawk”和“glacier”等近邻tag相较于较为宽泛的“bird”与“landscape”类tag更能具体区分场景细节
4.4 注意力机制
研究基于CNN-RNN架构的不同标签注意力变化现象具有有趣的研究价值。 通过图10展示了具有反卷积网络的RNN多标签模型注意力机制的可视化分析。对于输入图像,在每个时间步上,RNN多标签模型关注的区域是通过反卷积网络从softmax层的所有标签节点生成合成图像并取其平均值得出的结果。 该示意图展示的真实类别为'大象'与'斑马'(注:此处并未采用真实类别进行可视化分析)。 初步观察发现,在初始状态下, 模型对整体图像表现出较高的关注度, 并成功识别出'大象'这一类别特征(注: 这里未采用真实类别进行可视化分析)。 当识别到'大象'后, 在后续阶段, 模型将注意力转移至'斑马'区域并完成识别过程(注: 这里未采用真实类别进行可视化分析)。 可视化结果显示, 尽管RNN框架未能直接学习明确的关注点分配机制, 但在面对不同对象分类任务时仍能通过动态调整关注位置来实现较为准确的结果

图10展示了RNN多标记框架中注意力机制的可视化结果。 这幅图像包含两个真实标签:"大象"和"斑马"。左下角的位置反映了模型初始状态下的注意力分布,在右下角的位置则展示了预测"大象"后的注意力分布情况。
5.总结
我们提出了一种用于多标签图像分类的统一深度学习架构。这种创新性架构整合了卷积神经网络(CNN)与循环神经网络(RNN),在共同的空间中建模标签间的相互依存关系。其核心创新在于结合了联合图像-标签嵌入方法与基于标记协同的学习机制的优势,在多个基准数据集上进行了评估后发现,在预测不同类别时展现出显著的优势。
