基于数据均衡的增进式深度自动图像标注

图像标注是图像检索与图像理解的关键步骤.它利用已标注图像集学习语义概念与视觉特征的关系模型, 并用此模型给无标注的图像加上能够反映图像内容的语义关键词.早期自动图像标注的研究主要采用概率统计的方法.比如, “词同现”模型[1]利用网格分割方法将图像分割成子图像单元, 并建立每一类图像单元和它所对应的关键词的概率分布, 通过图像单元预测关键词.翻译模型[2]对分割后的图像区域进行聚类, 构造视觉关键词词汇表, 从而将图像的标注问题看作是从图像视觉关键词到语义关键词的翻译过程.相关模型[3-5]认为...


图像标注是图像检索与图像理解的关键步骤.它利用已标注图像集学习语义概念与视觉特征的关系模型, 并用此模型给无标注的图像加上能够反映图像内容的语义关键词.早期自动图像标注的研究主要采用概率统计的方法.比如, “词同现”模型[1]利用网格分割方法将图像分割成子图像单元, 并建立每一类图像单元和它所对应的关键词的概率分布, 通过图像单元预测关键词.翻译模型[2]对分割后的图像区域进行聚类, 构造视觉关键词词汇表, 从而将图像的标注问题看作是从图像视觉关键词到语义关键词的翻译过程.相关模型[3-5]认为同一关键词的视觉特征具有一致性, 图像可以被分割成一些带有一定语义含义的局部区域, 并通过建立视觉关键词与语义关键词的联合概率分布进行标注.这类方法虽然可以很方便地扩展到大数据集, 但总体标注效果不够理想. 近几年, 图像标注的研究主要集中在两类方法:基于机器学习的标注方法和基于图的标注方法.文献[6, 7]采用KNN的思想, 通过计算图像间的视觉相似度来获得相似度最高的k幅图, 并用标签传播算法获取关键词.Lu等人[8]利用支持向量机(SVM)训练多类分类器, 将图像的底层特征映射为高层语义模型特征, 并用核函数方法完成标注过程, 相比普通底层特征, 该方法提升了自动标注的综合效果.Qiu等人[9]使用支持向量机(SVM)对部分可确定区域赋予语义标签, 并利用区域位置关系帮助标注未知区域.Wang等人[10]构建结合特征图和标签图的双向图, 并用随机游走算法产生图像到顶点的相关性, 该模型不仅可用于图像标注, 也可用于语义图像检索.Gao等人[11]利用训练集中的隐含信息(比如, 部分标签和多种特征信息)学习最优图结构, 从而精确地建立数据点间的关系, 大幅提升了标注的平均准确率.Tian等人[12]针对数据集的弱标签性提出一种直推式标签填充算法来构造局部语义邻域, 并用多标签语义嵌入的领域最大边际学习算法提升标注效果.Amiri等人[13]根据每种特征的视觉形态构建特殊的子图, 再将子图联结起来形成超级图, 最后用超级图进行图像标注.此外, 矩阵和张量的分解理论也被引入到图像标注的问题中来:Kalayeh等人[14]提出了加权多视图非负矩阵分解的图像标注方法.利用不同特征间潜在的信息构建系数矩阵来解决特征融合不灵活问题, 使标注模型扩展训练数据成为可能.Tariq等人[15]将张量引入到图像标注模型中, 利用张量分解来解决图像上下文的非监督的特征独立量化问题, 并结合上下文先验知识来预测图像标签, 实验结果验证了该方法的有效性. 上述方法虽然在理论和效果等不同层面上取得了进展, 但总体而言, 这些方法还是围绕于传统的分类、回归等浅层结构学习算法展开研究, 利用这些方法处理图像标注任务依然存在如下主要问题. 1) 复杂度较高, 标注效率低下.如, 基于KNN模型[7]的标注方法不仅需要两两计算训练集中图像的相似度, 还要计算每一张测试图像与所有训练图像的相似度, 标注效率低下; 基于图模型[10, 11, 13]的标注方法需要构造复杂的图结构, 结点间相关性的度量方式多种多样, 且增加结点需要大量的遍历操作, 较难应用在真实图像环境中.基于矩阵分解[14, 15]的标注方法需要根据训练样本数构建矩阵分解模型, 计算复杂度随样本数的增加而呈非线性增长, 难以处理大规模数据. 2) 模型鲁棒性较弱, 难以有效训练不平衡数据.如, 基于SVM模型[8, 9]的标注方法需要根据类标签规模训练成百甚至上千个分类器, 整体标注效果依赖于每个分类器的效果, 因图像标注任务的标签分布极不均衡, 导致每个分类器分类效果差异较大, 极大地影响了整体标注效果; 文献[12]虽然提出了一种改善弱标签的算法, 但该方法存在两点不足:(1) 直推式算法填充的标签有可能是不正确的标签, 在此基础上进行标注, 有时反而会影响标注效果; (2) 算法执行过程需要构造数据集的特征矩阵来计算, 复杂度较高, 难以应用在真实图像环境中. 3) 对于数据不平衡问题, 缺乏有效的应对策略, 导致整体标注效果受限.传统的图像标注方法采用单一的图像标注模型, 因图像标注数据集中标签所拥有的训练样本数差异很大, 导致训练好的模型预测未知图像时, 对于出现频次多的标签, 容易获得很高的预测值; 而对于出现频次少的标签, 则容易获得很低的预测值.因此, 用单一的标注过程预测所有图像会导致低频图像的预测结果会被高频图像的预测结果覆盖. 对于第1个问题, 我们提出用栈式自动编码器(stacked auto-encoder, 简称SAE)训练一个多标签分类器, 训练好后即可对新图像进行快速标注, 以解决传统方法需要大量计算视觉相似度或大规模矩阵运算的问题.该模型在权重更新的训练过程中可以对训练样本进行分块训练, 从而提高训练效率.关于栈式自动编码器的工作过程, 本文第2节给予详细介绍. 对于第2个和第3个问题, 即训练数据极不平衡导致标注效果不理想的问题, 我们从模型内和模型外两个角度进行改善:对于模型本身, 我们提出一种增强训练低频样本的模型(B-SAE), 并在此模型的基础上提出一种分组训练B-SAE模型的鲁棒平衡栈式自动编码器算法(RB-SAE), 较好地改善了低频标签的标注效果并得到稳定的标注结果.对于模型本身的改进, 即B-SAE模型和RB-SAE算法, 本文第3节进行详细介绍; 对于模型外, 即标注策略上, 我们改变传统的一个过程标注所有未知图像的思路, 提出一种较好的预测中低频标签的语义传播算法(SP), 标注过程中, 先利用训练集标签分布信息判别待测图像的高低词频属性, 再根据待测图像的不同属性选择不同的标注过程, 从而改善不平衡数据集对标注过程的影响, 提升整体标注效果, 本文第4节对该标注框架, 即基于属性判别的标注策略(ADA)进行详细说明. 除上述章节外, 本文第1节介绍深度学习的背景及深度学习在图像领域的其他问题上的应用.第5节为实验, 包括实验设置和实验结果分析.第6节对本文进行总结. 1 相关工作 深度神经网络包含多组非线性隐层, 可以在输入和输出之间学习非常复杂的关系.然而, 在输入和输出之间的非线性映射容易陷入局部最优, 并且很难通过后向传播算法达到收敛状态[16].为了克服深度神经网络的学习问题, Hinton等人[17]最早提出了基于受限玻尔兹曼机(restrict Boltzmann machine, 简称RBM)的非监督的逐层贪心训练算法, 通过定义输入层和隐层的概率分布, 并用多次迭代的求解方式来减小模型能量, 使网络达到稳定状态, 在字符识别问题上取得很好的效果.随后, 深度学习模型出现了多种变形结构, 比如, 深度信念网络(deep belief net, 简称DBN)[18]、卷积神经网络(convolution neural network, 简称CNN)[19]和自动编码器SAE[20]等.DBN利用“先验互补”信息消除对信念网络推理造成困难的解释距离的影响, 并使用变形的唤醒休眠算法进行慢速调优, 得到一个深层的产生式模型, 该模型的分类效果比同时期最好的判别模型更好.CNN利用卷积和采样的方法训练深层模型, 并用权值共享的方式大大减少了网络参数, 在图像识别问题上, 取得比RBM更好的效果. 深度学习除了在传统图像分类和识别任务上取得惊人的效果外, 近几年, 许多研究人员也将深度学习算法应用在图像领域的其他问题上, 比如, 场景识别, Zhou[21]等人用深度学习模型进行图像对象识别, 再根据对象上下文来识别场景.Pinheiro[22]等人提出一种不依赖图像分割和指定特征的递归卷积神经网络的场景分割方法, 对每一个像素点使用合理大小的上下文块进行输入, 进而得到场景类别的归属.图像分割, Dan等人[23]利用深度人工神经网络作为像素级分类器, 对电子显微镜图像中的细胞薄膜进行分割.以每一个像素点为中心的方形领域内的像素值来预测各个像素的标签(细胞薄膜或非细胞薄膜).Luo等人[24]使用深度信念网络训练人脸各个成分(眼睛、鼻子、嘴等)的识别器, 再利用深度自动编码器将识别出的人脸成分映射成标签图, 最后再用归一化分割方法完成人脸分割.研究人员还试图将深度学习理论应用于图像标注中, Ryan等人[25]利用深度学习模型将图像的像素级原始特征进行多层深度表达, 免去了工程上的特征提取及特征选择, 并用TagPro[7]算法验证了该方法的有效性.Wu等人[26]分别将图像和网页中文本标签作为实例集, 构建用于弱监督多实例学习的深度模型, 在图像分类和单一对象的图像标注中取得比普通神经网络更好的效果. 根据上述研究, 虽然深度学习在图像分类、图像识别、场景识别、图像分割等模式识别与计算机视觉领域得到了成功的应用, 但鲜有直接将深度学习应用在图像标注问题上.文献[25]仅将深度模型用于图像标注的预处理, 文献[26]仅实现单一对象的图像标注, 因此, 本文提出直接用深度学习解决多对象多标签的复杂图像标注问题. DBN和CNN这两个模型在标签较少、特征简单、特征完整的识别任务中可以取得较好的效果, 而图像标注问题标签众多、图像特征复杂、每张图像包含多个类别标签、每张图像的类别标签数不等极大地影响了DBN和CNN的应用效果.而SAE网络, 更加注重特征间的近似表达, 容易调整模型将复杂的输入表达为理想的输出并应用于特定情形, 比如, 降噪自动编码器(DAE)[20], 对SAE的输入添加适当的噪声, 将带有噪声的特征表达为原始的完整特征, 提升了SAE模型的泛化能力.又因为SAE的分类效果与DBN、CNN相当, 因此, 针对传统浅层模型存在泛化能力弱和难以收敛到最佳值等问题, 本文选用SAE模型解决图像标注任务. 2 传统自动编码器 我们将图像标注任务当作多标签分类问题, 图像特征作为模型的输入, 图像标签作为监督信息.首先用自动编码器AE逐层预训练权值, 然后将得到的权值赋给深度神经网络进行初始化, 最后再整体调优完成模型训练. 2.1 问题定义 用$X=\{{{x}_{1}},{{x}_{2}},...,{{x}_{N}}\}$, ${{x}_{i}}\in {{\mathbb{R}}^{d}}$表示N幅图像, $Y=\{{{y}_{1}},{{y}_{2}},...,{{y}_{M}}\}$表示M个关键词.图像标注任务可以表示为图像和关键词对$P=\{({{x}_{1}},{{Y}_{1}}),({{x}_{2}},{{Y}_{2}}),...,({{x}_{N}},{{Y}_{N}})\}$, ${{Y}_{i}}\subseteq Y$.为了讨论方便, 我们将${{Y}_{i}}$表示成M维向量${{Y}_{i}}\in {{\{0,1\}}^{M}},$在图像关键词${{Y}^{j}}$中, ${{Y}_{i}}^{j}=1$表示第i幅图像${{x}_{i}}$标注了关键词${{y}_{j}},$而${{Y}_{i}}^{j}=0$表示未标注关键词${{y}_{j}}.$ 2.2 栈式自动编码器SAE 传统的神经网络用随机初始参数来调整整个网络, 而深度学习分为两个阶段:逐层非监督预训练和整体调优, 如图 1所示.第1个阶段, 图像特征x用非监督学习模型AE学习第1层参数${{\theta }_{1}}$, 当第1层AE训练好后, ${{\theta }_{1}}$用于产生隐层${{h}^{1}}$的输出, 并作为第2个AE模型的输入, 像学习${{\theta }_{1}}$一样, 逐层学到${{\theta }_{2}},{{\theta }_{3}},...,{{\theta }_{L}}.$在第2个阶段, 深度神经网络用学习到的参数${{\theta }_{1}},{{\theta }_{2}},...,{{\theta }_{L}}$进行初始化, 并用反向传播算法优化整个网络.最终优化的参数可以写成$\theta _{1}^{*},$ $\theta _{2}^{*},...,\theta _{L}^{*},$表示在预训练参数${{\theta }_{1}},{{\theta }_{2}},...,{{\theta }_{L}}$的基础上调优后的结果.一般来说, 通过AE预训练的深度神经网络被称为栈式自动编码器(SAE). Fig. 1 Work process of the SAE 图 1 SAE工作过程 AE模型由两部分组成, 编码器${{f}_{\theta }}$和解码器${{g}_{{{\theta }'}}},$如图 2所示.编码器${{f}_{\theta }}$将输入图像x转换为隐层表达h, 解码器${{g}_{{{\theta }'}}}$将x重构为和x维度一致的向量${x}',$并用损失函数$L(x,{x}')$来优化重构误差. Fig. 2 Work principle of an AE 图 2 AE工作原理 ${{f}_{\theta }}$表达形式如下: ${{f}_{\theta }}(x)=\sigma (W\centerdot x+b)$ (1) 其中, $\theta =\{W,b\},$W为网络权重, 满足${W}'={{W}^{T}},$为偏置向量, $\sigma (x)=1/(1+{{\operatorname{e}}^{(-x)}})$为激活函数. ${{g}_{{{\theta }'}}}$表达形式如下: ${{g}_{{{\theta }'}}}(h)=\left\{ \begin{align} & \sigma ({W}'\centerdot h+{b}'),\quad \ \,x\in [0,1] \\ & {W}'\centerdot h+{b}',\quad \quad \quad x\in \mathbb{R} \\ \end{align} \right.$ (2) 其中, ${\theta }'=\{{W}',{b}'\}.$ AE模型学习一个函数使输出${x}'={{g}_{\theta '}}({{f}_{\theta }}(x))$和x近似.我们定义损失函数为$L(x,{x}')={{(x-{x}')}^{2}},$则该模型可通过最小化损失函数进行学习. ${{\theta }^{*}},{{{\theta }'}^{*}}=\underset{\theta ,{\theta }'}{\mathop{\arg \min }}\,\frac{1}{N}\sum\limits_{i=1}^{N}{L({{x}_{i}},{{g}_{\theta '}}({{f}_{\theta }}({{x}_{i}})))}$ (3) 假设用于图像标注的SAE模型有L层, 用序号$l\in \{1,...,L\}$表示.用${{h}^{l}}$表示第l层的输出向量(${{h}^{0}}=x$表示输入, ${{h}^{L}}$表示输出).${{W}^{l}}$和${{b}^{l}}$表示第l层的网络权重和偏置.根据前面所述, $\{{{W}^{l}},{{b}^{l}}\},$$l\in \{1,...,L\}$使用AE逐层预训练.SAE的前馈过程可表述如下: ${{h}^{l+1}}=\sigma ({{W}^{l+1}}{{h}^{l}}+{{b}^{l+1}}),\ l\in \{0,...,L-1\}$ (4) 整个模型用后向传播算法调优: ${{\theta }^{*}}=\underset{\theta }{\mathop{\arg \min }}\,\sum\limits_{i=1}^{N}{L({{F}_{\theta }}({{x}_{i}}),{{Y}_{i}})}$ (5) 其中, ${{F}_{\theta }}(x)={{\sigma }_{{{\theta }_{L}}}}(...({{\sigma }_{{{\theta }_{1}}}}(x)))$是多个AE模型的合成函数, 而${{\theta }_{l}}$为参数$\{{{W}^{l}},{{b}^{l}}\},$$l\in \{1,...,L\},$损失函数定义为$L(x,y)={{(x-y)}^{2}}.$ 当模型训练好后, SAE的最后一层${{h}^{L}}$的输出即为预测图像的关键词的可能性分布D.通过对分布D排名得到图像的预测关键词${{Y}^{*}}.$ 3 基于数据均衡的自动编码器 用传统栈式自动编码器(SAE)模型处理图像标注问题是有效的, 但总体效果不够理想, 主要有两个原因:(1) 数据不平衡, 一部分标签出现次数多, 训练充分; 而另一部分标签出现次数少, 训练不充分, 导致低频标签准确率比高频标签准确率低很多; (2) 单个SAE模型参数多, 标注效果易随参数变化而变化, 鲁棒性差, 很难在实际中得到应用.为了让模型更好地训练不平衡数据, 我们提出平衡栈式自动编码器(B-SAE), 并在B-SAE基础上提出鲁棒平衡栈式自动编码器算法(RB-SAE)以提升整个模型的鲁棒性. 3.1 平衡栈式自动编码器(balanced and stacked auto-encoder, 简称B-SAE) 由于低频标签F1值低的一个重要原因是训练不充分, 因此, 我们希望SAE可以加重对样本的训练, 以提升整个模型的泛化能力, 降噪自动编码器(DAE)[20]可以在一定程度上提升模型的泛化能力, 但该方法有一定局限性:(1) 以一定概率将特征向量上的某些维度的值强制置为0, 并没有真正改变特征向量, 难以达到加重训练的效果; (2) 不能针对某些特定样本, 比如, 包含较多低频标签的样本, 进行针对性的训练.为此, 我们提出平衡式自动编码器(B-AE)模型, 如图 3所示, $\mathit{\Phi }(x)$表示让模型在训练过程中对训练样本进行判断, 若样本x包含低频标签的个数多于k个, 则对该样本添加适当的噪声.$\mathit{\Gamma }(x)$表示对样本x的训练强度, 若该样本所包含标签的出现次数低于一定阈值, 则增加它的训练次数. Fig. 3 Comparison between the traditional AE and the B-AE 图 3 传统AE和B-AE对比 这样, 等式(3) 可以调整为如下形式: ${{\theta }^{*}},{{{\theta }'}^{*}}=\underset{\theta ,{\theta }'}{\mathop{\arg \min }}\,\frac{1}{N}\sum\limits_{i=1}^{N}{\left\{ \frac{1}{\mathit{\Gamma }({{x}_{i}})}\sum\limits_{j=1}^{\mathit{\Gamma }({{x}_{i}})}{L(\mathit{\Phi }({{x}_{i}}),{{g}_{{{\theta }'}}}({{f}_{\theta }}(\mathit{\Phi }({{x}_{i}}))))} \right\}}$ (6) 接下来, 我们说明$\mathit{\Gamma }({{x}_{i}})$和$\mathit{\Phi }({{x}_{i}})$是如何定义的. 令向量$C=({{c}_{1}},{{c}_{2}},...,{{c}_{M}}),$${{c}_{i}}\in {{\mathbb{Z}}^{+}}$表示关键词${{y}_{i}}$在训练集P中出现的次数, $\mathit{\Pi }=\frac{1}{M}\sum\limits_{j=1}^{M}{{{c}_{j}}}$表示关键词的平均出现次数.这样, 我们可以得到一个向量, 表示第i幅图像${{x}_{i}}$的每个关键词$Y_{i}^{j},j\in \{1,2,...,M\}$在训练集中出现的次数${{Y}_{C,i}}=C*{{Y}_{i}}$(*表示两个向量对应点相乘得到一个新向量).从而得到在图像${{x}_{i}}$中出现次数最低的关键词为${{\mathit{\Lambda }}_{{{x}_{i}}}}=\underset{j}{\mathop{\min }}\,(Y_{C,i}^{j}),$于是得到式子$\mathit{\Gamma }({{x}_{i}})$和$\mathit{\Phi }({{x}_{i}})$分别为 $\mathit{\Gamma }({{x}_{i}})=\left\{ \begin{align} & \alpha \centerdot \frac{\mathit{\Pi }}{{{\mathit{\Lambda }}_{{{x}_{i}}}}}=\alpha \centerdot \frac{\frac{1}{M}\sum\limits_{j=1}^{M}{{{c}_{j}}}}{\underset{j}{\mathop{\min }}\,(Y_{C,i}^{j})},\rm{ }{{\mathit{\Lambda }}_{{{x}_{i}}}}\rm{}=\beta \centerdot \mathit{\Pi } \\ & 1,\rm{ \quad \quad \quad \quad \quad Others} \\ \end{align} \right.$ (7) 其中, α和β为常系数, β用于确定哪些样本需要加重训练, α用于控制需要加重训练的样本的训练强度. $\mathit{\Phi }({{x}_{i}})=\left\{ \begin{align} & \chi \centerdot \left( \frac{1}{d}\sum\limits_{j=1}^{d}{x_{i}^{j}} \right)\centerdot Ran(\cdot ),\rm{ }{{\mathit{\Lambda }}_{{{x}_{i}}}}\rm{}=\beta \centerdot \mathit{\Pi } \\ & {{x}_{i}},\rm{ \quad \quad \quad \quad \quad Others} \\ \end{align} \right.$ (8) 其中, β和式(7) 中的β是一致的, $\chi $为常系数, 用于控制噪声添加的强度, $d$为图像${{x}_{i}}$特征的维度, $x_{i}^{j}$表示图像${{x}_{i}}$第j个维度的值, $Ran(\cdot )$为随机向量函数, 该向量的维度和${{x}_{i}}$一致, 每个维度的值是随机的, 并且随机值的取值分布服从$N(0,1)$分布或服从$U[0,1]$分布. 与传统SAE模型类似, 得到预训练权值后用后向传播算法进行调优, 但调优过程会对特定样本(含低频标签的个数多于k个)加重训练, 整个模型的优化等式(5) 变为 ${{\theta }^{*}}=\underset{\theta }{\mathop{\arg \min }}\,\sum\limits_{i=1}^{N}{\sum\limits_{j=1}^{\mathit{\Gamma }({{x}_{i}})}{L({{F}_{\theta }}(\mathit{\Phi }({{x}_{i}})),{{Y}_{i}})}}$ (9) 根据上述描述的方法可知, 对于任意一幅图像${{x}_{i}},$若${{x}_{i}}$包含多于阈值个数的低频标签, 则平衡栈式自动编码器(B-SAE)在迭代训练时, 会给${{x}_{i}}$添加噪声加重训练, 隐式地扩充了低频标签数据集, 从而提升低频词的${{F}_{1}}$值. 3.2 鲁棒平衡栈式自动编码器算法(robust balanced and stacked auto-encoder, 简称RB-SAE) 通过实验, 我们验证了改进后的平衡栈式自动编码器(B-SAE)较好地提高了低频词的${{F}_{1}}$值, 但整个B-SAE模型较为复杂, 需要调整的参数很多(比如, 隐层神经元个数的确定、随机函数$Ran(\cdot )$的选择、迭代次数的控制等), 每个参数的设置都会对结果产生很大影响, 坏的情况甚至让整个模型失效.为了提高模型的鲁棒性, 我们提出了一种适合图像标注的鲁棒平衡栈式自动编码器算法(RB-SAE), 算法的主要过程如图 4所示, 第1步, 输入训练图像特征, 并按序分组训练子B-SAE模型; 第2步, 对每一组内的各个B-SAE计算分类误差率, 得到各组分类误差率最小的$\text{B-SA}{{\text{E}}^{t}}$模型; 第3步, 根据分类误差率对各组间的$\text{B-SA}{{\text{E}}^{t}}$计算权重, 并组合成一个带权B-SAE模型; 第4步, 将待测图像输入组合后的带权B-SAE模型; 第5步, 输出预测分布D, 并对分布D排名得到预测结果. Fig. 4 Workflow of the RB-SAE algorithm 图 4 RB-SAE算法工作流程 算法按不同的加噪方式划分不同的组, 每组内根据不同的隐层神经元个数划分子模型$\text{B-SAE}_{k}^{t}$, t表示模型B-SAE采用第t种加噪方式, k表示第k个子B-SAE模型设置的隐层神经元个数.为了计算组内$\text{B-SAE}_{k}^{t}$的分类误差率以及组间模型$\text{B-SA}{{\text{E}}^{t}}$的权重, 我们需对训练数据设置权值, 初始权值设置如下: $W=({{w}_{11}},...,{{w}_{1i}},...,{{w}_{1N}}),{{w}_{1i}}=\frac{1}{N},i=1,2,...,N$ (10) 这样, $\text{B-SAE}_{k}^{t}$的分类误差率可按下式计算: $e_{k}^{t}=\sum\limits_{i=1}^{N}{{{w}_{ti}}\centerdot Sgn(\text{B-SAE}_{k}^{t}({{x}_{i}})\ne {{Y}_{i}})}$ (11) 其中, $Sgn(x)=\left\{ \begin{align} & 1,x=\text{true} \\ & 0,x=\text{false} \\ \end{align} \right.,$$\text{B-SAE}_{k}^{t}({{x}_{i}})\ne {{Y}_{i}}$表示的意思为, 假设图像${{x}_{i}}$的真实标签集${{Y}_{i}}$包含c个关键词, 并通过模型$\text{B-SAE}_{k}^{t}$预测得到标签集${{Y}_{i}}^{*}$的个数也为c个, 如果${{Y}_{i}}={{Y}_{i}}^{*},$则$\text{B-SAE}_{k}^{t}({{x}_{i}})\ne {{Y}_{i}}$为false, 否则为true. 根据组内所有子$\text{B-SAE}_{k}^{t}$模型的分类误差率, 我们可以得到该组分类误差率最低的模型$\text{B-SA}{{\text{E}}^{t}}$和对应的分类误差率${{e}^{t}},\text{B-SA}{{\text{E}}^{t}}$的权重可按如下方式计算: ${{\alpha }^{t}}=\frac{1}{2}\log \frac{1-{{e}^{t}}}{{{e}^{t}}}$ (12) 当第t组的模型训练完后, 我们需要更新训练数据的权值, 以便更好地获得下一组模型的权重, 更新训练数据权值的方式如下: ${{W}_{t+1}}=\{{{w}_{t+1,1}},...,{{w}_{t+1,i}},...,{{w}_{t+1,N}}\},{{w}_{t+1,i}}=\frac{{{w}_{ti}}\centerdot {{\text{e}}^{(-{{\alpha }^{t}}\centerdot {{Y}_{i}}\centerdot \text{B-SA}{{\text{E}}^{t}}({{x}_{i}}))}}}{\sum\limits_{i=1}^{N}{{{w}_{ti}}\centerdot {{\text{e}}^{(-{{\alpha }^{t}}\centerdot {{Y}_{i}}\centerdot \text{B-SA}{{\text{E}}^{t}}({{x}_{i}}))}}}},i=1,2,...,N$ (13) 当所有组都训练完毕后, 我们就可以得到如下关键词预测分布: $D=\sum\limits_{t=1}^{T}{{{\alpha }^{t}}\centerdot \text{B-SA}{{\text{E}}^{t}}(x)}$ (14) 根据算法的执行过程, 我们可以知道, 分组训练模型后, 算法会选取组内效果最好的子模型, 并对选取出来的组间子模型计算权重, 保证好的模型可以获得较大的权重, 较差的模型获得较小的权重, 从而提升整个模型的鲁棒性. 4 基于数据均衡的标注策略 虽然我们提出了在模型内加重训练低频标签的平衡栈式自动编码器模型(B-SAE), 并在B-SAE的基础上提出了鲁棒平衡栈式自动编码器算法(RB-SAE), 在一定程度上提升了低频标签的F1值, 但仍然难以改变中低频标签训练不足的本质, 中低频标签的F1值依旧较低, 从而影响了整个模型的标注效果.为此, 我们提出一种基于数据均衡的标注策略, 首先为测试图像构造一个局部均衡数据集, 然后再用此数据集判别该图像的属性(高频图像或低频图像).若为高频图像, 则执行RB-SAE算法进行预测; 若为低频图像, 则利用局部均衡数据集以语义传播的方式进行预测, 从而提升整个模型的标注效果. 4.1 局部数据均衡与语义传播(semantic propagation, 简称SP) 传统的标签传播算法[6, 7]将整个训练集作为训练的数据集, 对于每一幅测试图像I, 从训练集中获取相似度最高的k幅图, k幅图中出现次数多的标签最可能传递给测试图像I.由于图像标注数据集的标签分布极不均衡, 这类方法存在如下问题:(1) 若从训练集中获取数量较少的k幅图, 则较难覆盖到所有标签(图像标注问题的标签规模较大), 导致部分正确的标签不在k幅图内, 因此, 这部分标签肯定无法被准确预测到, 从而影响到整体标注效果; (2) 若从训练集中获取数量较大的k幅图, 因为训练集标签不均, k幅图中的标签肯定也不均, 导致数据集中的高频标签在k幅图中也为高频标签, 使得这部分标签更容易传递给测试图像, 而另一部分标签(中低频)的标注结果容易被高频标签覆盖. 为了解决上述两个问题, 我们构建一种理想的局部均衡数据集, 要求该数据集覆盖所有标签且每个标签的出现频次一致.为此, 我们划分每一个标签所包含的所有图像为一个语义组(不同语义组间允许有相同的图像), 对于每一幅测试图像I, 从每一个语义组中选取n幅和图像I视觉相似度最高的图像构造子训练集, 并且把每一幅选出来的图像看成一个图像对象, 仅表示一个语义概念, 即其所在语义组的语义概念.因此, 图像I的子训练集包含所有关键词, 并且每个关键词的出现频次一致, 得到了局部均衡数据集.基于此数据集, 我们提出一种语义传播算法, 具体实现描述如下: 令$G=\{({{y}_{1}},{{X}_{1}}),({{y}_{2}},{{X}_{2}}),...,({{y}_{M}},{{X}_{M}})\},{{X}_{i}}\subseteq X$表示每一个关键词和该关键词所包含的所有图像, ${{X}_{i}}$和${{X}_{j}}$中的图像可重复, $i,j\in \{1,...,M\},i\ne j.$我们用条件概率$P(x|{{y}_{i}})$建立给定关键词${{y}_{i}}\in Y$的图像x的特征分布.这样, 我们将图像标注转化为求解后验概率的问题: $P({{y}_{i}}|x)=\frac{P(x|{{y}_{i}})P({{y}_{i}})}{P(x)}$ (15) 其中, $P({{y}_{i}})$和$P(x)$为先验概率, 取固定值. 因此, 对于测试图像I, 它的最佳标签可以这样得到: ${{y}^{*}}=\arg \underset{i}{\mathop{\max }}\,P({{y}_{i}}|I)$ (16) 令${{G}_{i}}=({{y}_{i}},{{X}_{i}}),$对于测试图像I, 我们从${{G}_{i}}$中的${{X}_{i}}$中挑选n幅和I视觉距离最近的图像构成子集${{G}_{I,i}}\subseteq {{G}_{i}}.$每一个集合${{G}_{I,i}}$是图像I对应于标签${{y}_{i}}$的语义组.一旦${{G}_{I,i}}$确定后, 我们将它们合并为一个集合${{G}_{I}}=\{{{G}_{I,1}}\cup ...\cup {{G}_{I,M}}\},$各${{G}_{I,i}}$间的关键词不同, 但可以有相同的图像.通过这一方法, 我们得到一个针对图像I的局部均衡数据集${{G}_{I}}\subseteq G.$这样就容易知道, 在集合${{G}_{I}}$中的每一个关键词都将出现n次(${{G}_{I,i}}$中的图像数少于n的情况除外).我们定义给定标签${{y}_{k}}\in Y$的图像I的后验概率为 $P(I|{{y}_{k}})=\sum\limits_{({{y}_{i}},{{X}_{i}})\in {{G}_{I}}}{{{\theta }_{I,{{x}_{i}}}}\centerdot P({{y}_{k}}|{{x}_{i}})}$ (17) 其中, $P({{y}_{k}}|{{x}_{i}})\in \{0,1\}$表示当图像${{x}_{i}}$所在语义组${{G}_{I,i}}$的语义概念等于标签${{y}_{k}}$时为1, 否则为0;${{\theta }_{I,{{x}_{i}}}}$表示图像${{x}_{i}}$的权重, 按如下方式计算: ${{\theta }_{I,{{x}_{i}}}}=\frac{{{\operatorname{e}}^{(-Dis(I,{{x}_{i}}))}}-{{\operatorname{e}}^{(Dis(I,{{x}_{i}}))}}}{{{\operatorname{e}}^{(-Dis(I,{{x}_{i}}))}}+{{\operatorname{e}}^{(Dis(I,{{x}_{i}}))}}}+1.0$ (18) 其中, $Dis(I,{{x}_{i}})$表示图像I和${{x}_{i}}$之间的距离, 距离的计算采用文献[7]中的方法. 由公式(17) 可知, 若局部均衡数据集中的图像${{x}_{i}}$和图像I的相似度越高, 则图像${{x}_{i}}$的语义传递给图像I的可能性就越大, 将公式(17) 代入公式(15) 和公式(16) 即可得到未知图像I的预测标签. 4.2 属性判别的标注策略(attribute discrimination annotation, 简称ADA) 上一节提出的语义传播算法通过构造局部均衡数据集改善了传统标签传播算法难以覆盖所有标签以及中低频标签难以被预测的问题, 提升了中低频标签的预测可能性.然而, 由于训练集中中低频标签的训练样本数极其有限, 导致我们提出的鲁棒平衡栈式自动编码器算法(RB-SAE)对中低频标签的预测能力仍不够理想, 因此, 利用语义传播算法能够较好预测中低频标签的准确率这一优势, 在局部均衡数据集的基础上, 我们提出一种判别测试图像属性的图像标注方法, 以提升整个模型的标注效果. 基于属性判别的标注过程如图 5所示.第1步, 根据每一个关键词对训练集划分语义组, 每一个关键词包含的所有图像构成一个语义组; 第2步和第3步, 构造测试图像的局部均衡数据集, 即, 根据输入的测试图像从每一个语义组中获取指定数量且视觉上距离最近的图像构成局部均衡数据集, 每一幅图像仅表示一个语义概念; 第4步, 训练鲁棒平衡栈式自动编码器模型(RB-SAE), 首先训练平衡栈式自动编码器模型(B-SAE), 然后再在B-SAE基础上加入RB-SAE算法来完成模型的训练; 第5步和第6步, 分别从语义组和局部均衡数据集获得全局词频信息和局部词频信息(根据测试图像从局部均衡数据集中选取指定数量且视觉相似度最高的图像, 再从中统计词频信息), 用于判别测试图像的属性; 第7步, 对全局高频词信息和局部高频词信息取交集, 交集个数大于阈值, 则判定测试图像的属性为高频, 反之为中低频; 若测试图像的判别结果为高频, 则进入第8步, 将测试图像输入RB-SAE模型, 得到输出结果; 若测试图像的判别结果为中低频, 则进入第10步, 通过语义传播算法从局部均衡数据集中获取标签. Fig. 5 Workflow of the image annotation based on attribute discrimination (ADA) 图 5 基于属性判别的图像标注(ADA)流程 基于属性判别标注策略的理论, 详细描述如下. 对于一幅测试图像I, 构造标签出现次数均匀的局部均衡数据集${{G}_{I}},$再从${{G}_{I}}$取m幅和I距离最近的图像${{\tilde{G}}_{I}}=\{({{y}_{1}},{{\tilde{X}}_{1}}),({{y}_{2}},{{\tilde{X}}_{2}}),...,({{y}_{M}},{{\tilde{X}}_{M}})\},{{\tilde{X}}_{i}}\subseteq {{X}_{i}},$需要注意的是, ${{\tilde{X}}_{i}}$可能为∅(因为从${{G}_{I}}$中取出的m幅图像可能都不包含在${{\tilde{X}}_{i}}$中), 且$\tilde{X}=\{{{\tilde{X}}_{1}}\cup ...\cup {{\tilde{X}}_{M}}\}$包含的图像幅数为m.又因为从集合C中, 我们可以知道哪些关键词属于高频关键词, 哪些属于低频关键词.因此, 结合集合C, 我们可以从${{\tilde{G}}_{I}}$中知道, 在与图像I距离最近的m幅图像中, 属于高词频图像和中词频图像的比例分别是多少.为了讨论方便, 我们将${{\tilde{X}}_{i}}$表示成N维向量${{\tilde{X}}_{i}}\in {{\{0,1\}}^{N}},$当$\tilde{X}_{i}^{j}=1$时, 表示${{\tilde{X}}_{i}}$包含图像${{x}_{j}},$当$\tilde{X}_{i}^{j}=0$时, 表示${{\tilde{X}}_{i}}$不包含图像${{x}_{j}}.$这样, 我们可以通过下式求得图像的预测分布D. $D=\left\{ \begin{align} & \sum\limits_{t=1}^{T}{{{\alpha }^{t}}\centerdot \text{B-SA}{{\text{E}}^{t}}(x)},\text{ }\left( \sum\limits_{({{y}_{i}},{{{\tilde{X}}}_{i}})\in {{{\tilde{G}}}_{I}}}{\phi ({{y}_{i}})\centerdot \varphi ({{{\tilde{X}}}_{i}})} \right)\ge \varepsilon \\ & P({{y}_{k}}|x),\text{Others} \\ \end{align} \right.$ (19) 其中, $\sum\limits_{t=1}^{T}{{{\alpha }^{t}}\centerdot \text{B-SA}{{\text{E}}^{t}}(x)}$对应公式(14), $P({{y}_{k}}|x)\propto P(x|{{y}_{k}})=\sum\limits_{({{y}_{i}},{{X}_{i}})\in {{G}_{I}}}{{{\theta }_{I,{{x}_{i}}}}\centerdot P({{y}_{k}}|{{x}_{i}})}$对应公式(15), ε为常系数, 用于控制图像I的属性的判别, $\phi ({{y}_{i}})$用于判定在集合P中哪些关键词属于高频关键词, 哪些不属于, 定义如下: $\phi ({{y}_{i}})=\left\{ \begin{align} & 1,\text{ }{{c}_{i}}\ge \eta \centerdot \frac{1}{M}\sum\limits_{j=1}^{M}{{{c}_{j}}} \\ & 0,\text{Others} \\ \end{align} \right.$ (20) η为常系数, 当$\phi ({{y}_{i}})=1$时, 表示${{y}_{i}}$在P中为高频关键词, 当$\phi ({{y}_{i}})=0$时, 则相反. $\varphi ({{\tilde{X}}_{i}})$用于判定在集合${{\tilde{G}}_{I}}$中哪些关键词属于高频关键词, 哪些不属于, 定义如下: $\varphi ({{\tilde{X}}_{i}})=\left\{ \begin{align} & 1,\text{ }\sum\limits_{j=1}^{N}{\tilde{X}_{i}^{j}}\ge \tau \centerdot \left( \frac{1}{M}\sum\limits_{i=1}^{M}{\sum\limits_{j=1}^{N}{\tilde{X}_{i}^{j}}} \right) \\ & 0,\text{Others} \\ \end{align} \right.$ (21) τ为常系数, 当$\varphi ({{\tilde{X}}_{i}})=1$时, 表示${{y}_{i}}$在${{\tilde{G}}_{I}}$中为高频关键词, 当$\varphi ({{\tilde{X}}_{i}})=0$时, 则相反. 由此可知, 若在与图像I距离最近的m个邻居中, 含高频词的邻居超过了一定的比例, 则图像I的预测结果由$\sum\limits_{t=1}^{T}{{{\alpha }^{t}}\centerdot \text{B-SA}{{\text{E}}^{t}}(x)}$决定, 反之, 图像I的预测结果由$\sum\limits_{({{y}_{i}},{{X}_{i}})\in {{G}_{I}}}{{{\theta }_{I,{{x}_{i}}}}\centerdot P({{y}_{k}}|{{x}_{i}})}$决定. 5 实验 这一部分, 我们验证基于数据均衡的自动编码器(包含B-SAE和RB-SAE算法)和基于数据均衡的标注策略中的属性判别标注模型(ADA)在3个数据集上的效果.首先, 详细介绍我们所使用的数据集、图像特征和评价标准.其次, 展示每一种方法的实验结果并作简要分析.最后, 将我们的模型和目前效果较好的几个图像标注模型进行比较, 并展示了一些图像的实际标注例子. 5.1 实验设置 5.1.1 数据集 我们使用图像标注领域广泛使用的3个公共数据集:Corel5k、Espgame和Iaprtc12.Corel5k是图像标注最常用的数据集, 已成为图像标注的基准, 包含5 000幅自然风光和日常生活照片.Espgame数据集由20 770幅类别广泛的图像构成, 比如, 商标、绘图和个人照片, 这些图像从在线交互式游戏的任务中获取.Iaprtc12数据集由19 627幅图像构成, 涵盖了运动、行为、人、动物、城市、风景和当代人生活的其他方面, 很多关键词是从图像中的标语或字幕中获取的.详细的数据信息见表 1. Table 1 Information on the three public datasets 表 1 3个公共数据集的信息 5.1.2 图像特征 我们使用与文献[7]中相似的图像特征, 该特征是由局部特征和全局特征组合而成的.局部特征包含Sift和Hue描述符, 并通过多尺度网格和Harris拉普拉斯兴趣点两种方式获取.全局特征包含RGB、HSV和LAB这3个颜色空间上的直方图, 以及Gist特征.为了对图像的空间信息进行编码, 还对每一幅图像水平3等分后提取除了Gist以外的所有特征. 对于栈式自动编码器(SAE)模型(包含普通SAE、平衡栈式自动编码器模型(B-SAE)和鲁棒平衡栈式编码器算法(RB-SAE)), 我们使用DenseHue、DenseHueV3H1、DenseSift、Gist、HarrisHue、HarrisHueV3H1和HarrisSift这7种特征, 共计3 312维.对于构建局部均衡数据集和实现语义传播算法, 我们使用全部15种特征, 图像间视觉相似度的计算也采用文献[7]中的方法, 即, ${{L}_{1}}$距离用于计算颜色直方图, ${{L}_{2}}$距离用于计算Gist特征, ${{\chi }^{2}}$距离用于计算Sift和Hue特征. 5.1.3 评价指标 我们采用与文献[7]相同的评价标准.首先, 对所有测试图像标注5个相关关键词.其次, 为每一个关键词yj计算准确率${{P}^{j}}$和召回率${{R}^{j}},j\in \{1,...,M\},$具体计算公式为 ${{P}^{j}}=\frac{Precision({{y}_{j}})}{\Pr ediction({{y}_{j}})},{{R}^{j}}=\frac{Precision({{y}_{j}})}{Ground({{y}_{j}})}$ (22) 其中, $Precision({{y}_{j}})$为关键词yj的准确预测次数, $Prediction({{y}_{j}})$为关键词yj的预测次数, $Ground({{y}_{j}})$为关键词yj的真实标注次数.最后, 对所有关键词的准确率和召回率求平均值, 分别记为P和R. $P=\frac{1}{M}\sum\limits_{j=1}^{M}{{{P}^{j}}},R=\frac{1}{M}\sum\limits_{j=1}^{M}{{{R}^{j}}}$ (23) 我们还对P和R计算F1值, 用以反映P和R的平衡性(P过小或R过小都会使F1变小), 并记录至少准确预测过1次的关键词个数N+, 用以反映整个数据集中有多少关键词被准确预测过, 有多少未被准确预测过, F1和N+分别按如下方式计算: ${{F}_{1}}=\frac{2\centerdot P\centerdot R}{P+R},{{N}^{+}}=\sum\limits_{j=1}^{M}{Sgn({{R}^{j}})}$ (24) 其中, $Sgn(x)=\left\{ \begin{align} & 1,x>0 \\ & 0,x=0 \\ \end{align} \right..$ 5.2 实验结果 对于栈式自动编码器(SAE)模型(包含普通SAE、平衡栈式自动编码器(B-SAE)和鲁棒平衡栈式自动编码器算法(RB-SAE)), 我们都设计4层的网络结构(这里的4层是指包含特征层和标签层的层数, 原因在第5.2.1节中说明), 层与层之间的网络权值, 用各自对应的编码器进行预训练, 最后再整体调优.各模型中的参数较多, 我们设置不同的参数进行实验, 取实验效果最好时所设定的参数作为以下实验结果的参数. 5.2.1 SAE层数的选择 图像标注的3个公共数据集相比大数据集而言属于小规模数据集, Corel5k数据集的训练图像数仅为4 500张, 而Espgame和Iaprtc12两个数据集的训练图像数也才18 000张左右, 因此, 为了防止过拟合, 我们对SAE模型设计相对少的层数进行实验以指导本文提出的其他类SAE模型(包含B-SAE和RB-SAE)的结构设计.从表 2可以看出, 设计4层的SAE网络结构效果最好, 传统的3层神经网络因模型表达能力较弱导致标注效果受限.随着层数的增加, 模型复杂度也随之增加, 出现了一定程度的过拟合现象, 标注效果反而减弱了, 小数据集Corel5k上的准确率下降得较为明显.因4层SAE网络结构较适合处理图像标注问题, 所以本文提出的B-SAE和RB-SAE模型都采用4层网络结构. Table 2 Experimental results obtained from different number of the SAE layers 表 2 不同SAE层数得到的实验结果 5.2.2 B-SAE的有效性 B-SAE是针对数据不平衡问题以模型本身作为出发点而提出的.该模型使传统SAE模型拥有训练不平衡数据的能力, 从而提升了低频标签的${{F}_{1}}$值.需要设定4个参数α、β、$\chi $和$Ran(\cdot ),$α和β取固定值, 分别为1和0.5, 我们在3个数据集上设置不同的$\chi $(噪声强度)和$Ran(\cdot )$(随机向量函数, 其中, Gaussian表示随机向量每一维的取值服从$N(0,1)$分布, Uniform表示取值服从$U[0,1]$分布)进行测试, 结果见表 3. Table 3 Results of the B-SAE model with different parameters 表 3 不同参数的B-SAE模型的测试结果 根据表 3, 我们取各数据集得到的最好结果(加粗部分)作为以下分析的数据. 我们将3个数据集划分高频标签和低频标签进行统计(高频标签是指标签的出现频次高于所有标签的平均出现频次, 低频标签则相反), 并计算高、低频标签的F1值和N+.从表 4中我们可以知道, 3个数据集的低频标签数占总标签数的比例将近75%, 而高频仅占25%.相比普通SAE, B-SAE在3个数据集上低频标签的平均F1值分别提升了50.4%、21.2%和15.5%, 低频标签至少准确预测1次的关键词个数N+分别增加了16、20和15个.对于训练数据较少的Corel5k数据集, 高频标签的平均F1值和N+也得到改善. Table 4 Comparison of predicting high and low frequency labels between SAE and B-SAE 表 4 SAE和B-SAE预测高低频标签的对比 表 4仅从整体上统计了SAE和B-SAE的效果, 我们又从更细的角度进行统计, 即对每个数据集上的低频关键词统计F1值, 具体情况如图 6~图 8所示. Fig. 6 F1 value of the low frequency labels of SAE and B-SAE on Corel5k 图 6 在Corel5k上测试SAE和B-SAE预测低频标签的F1值 Fig. 7 F1 value of the low frequency labels of SAE and B-SAE on Espgame 图 7 在Espgame上测试SAE和B-SAE预测低频标签的F1值 Fig. 8 F1 value of the low frequency labels of SAE and B-SAE on Iaprtc12 图 8 在Iaprtc12上测试SAE和B-SAE预测低频标签的F1值 在图 6~图 8中, 我们分别从3个数据集上抽出20个低频关键词(均低于平均关键词出现频次), 粉色条状图对应左纵轴, 代表标签的出现频次, 蓝色和紫色折线图对应右纵轴, 分别代表模型SAE的F1值和模型B-SAE的F1值.3个数据集上的数据表明, B-SAE提升了低频标签的F1值, 对于一些在SAE模型上未准确预测的词, 在B-SAE模型上也得到了预测. 5.2.3 RB-SAE算法的有效性 RB-SAE算法是在B-SAE模型基础上, 针对单个B-SAE标注结果不稳定、容易随参数变动的问题, 而提出的改善算法, 从而提升B-SAE的鲁棒性.为了说明单个B-SAE模型存在不稳定现象并验证该模型的效果, 我们分4组进行测试, $Ran(\cdot )$产生的随机向量的分量取值服从$N(0,1)$分布和$U[0,1]$分布.每种加噪方式又设置两个χ参数, 1.2和1.5.组内又分3个子B-SAE模型, 依次设置隐层神经元个数为450、500和550.总共12个子模型, 参数设定见表 5. Table 5 Parameter settings for testing the RB-SAE algorithm 表 5 测试RB-SAE算法的参数设定 使用上述12个B-SAE子模型的参数设定, 分别在3个数据集上的执行过程如图 9~图 11所示. Fig. 9 Results of the RB-SAE algorithm on Corel5k 图 9 在Corel5k上测试RB-SAE算法 Fig. 10 Results of the RB-SAE algorithm on Espgame 图 10 在Espgame上测试RB-SAE算法 Fig. 11 Results of the RB-SAE algorithm on Iaprtc12 图 11 在Iaprtc12上测试RB-SAE算法 在图 9~图 11中, 粉色折线图对应左纵轴, 代表子模型至少准确预测1次的关键词个数N+, 紫色折线图对应右纵轴, 代表子模型的F1值, 每个图的最后一列为执行RB-SAE算法后得到的结果.从图中我们可以看出, 参数设定不同, 单个B-SAE模型得到的数据结果不稳定, 要么N+高一点, F1值低一点(如图 10中的B-SAE(2/3), N+较高但F1值较低); 要么F1高一点, N+低一点(如图 11中的B-SAE(1/1), F1值较高但N+较低), 通过执行RB-SAE算法后, N+和F1值都可以取到相对较为稳定的结果. 为了方便对比SAE系列模型的整体效果, 我们把3个模型的结果记录在表 6中.SAE为传统栈式自动编码器.B-SAE为本文提出的平衡栈式自动编码器, 这里数据对应于表 3中加粗的部分.RB-SAE为本文提出的鲁棒平衡栈式自动编码器算法, 所给出的数据对应于图 9~图 11的执行结果, 即每个图的最后一列. Table 6 Comparison of three auto-encoder models 表 6 3个自动编码器模型的测试对比 5.2.4 ADA的实验效果 ADA是针对数据集不平衡问题, 以模型外, 即标注过程, 作为出发点提出来的一种根据测试图像的高低频属性来选择标注过程的标注策略.为了说明该标注框架的合理性, 我们对仅用鲁棒平衡栈式自动编码器算法(RB-SAE)和仅用语义传播算法(SP)的结果进行对比, 发现大多数高频标签用RB-SAE得到的F1值比用SP算法得到的F1值要高, 而中低频标签用SP算法得到的F1值比用RB-SAE得到的F1值要高, 我们分别在3个数据集上取20个关键词进行统计, 其中10个为高频词, 另外10个为低频词, 具体情况如图 12~图 14所示. Fig. 12 F1 value of the high and low frequency labels on Corel5k computed by RB-SAE and SP 图 12 在Corel5k上测试RB-SAE和SP预测高低词频标签F1值 Fig. 13 F1 value of the high and low frequency labels on Espgame computed by RB-SAE and SP 图 13 在Espgame上测试RB-SAE和SP预测高低词频标签F1值 Fig. 14 F1 value of the high and low frequency labels on Iaprtc12 computed by RB-SAE and SP 图 14 在Iaprtc12上测试RB-SAE和SP预测高低词频标签F1值 我们把提出的模型和一些经典模型以及近几年效果较好的模型在3个数据集上进行比较, 从表 7可以看出, 我们的模型的效果大幅超过了一些经典模型, 且比得上目前较好的模型.由于属性判别标注模型(ADA)综合了鲁棒自动编码器算法(RB-SAE)可以较好地预测高频属性图像和语义传播算法(SP)可以较好地预测中低频属性图像的特点(如图 12~图 14所示), 使得整体标注效果得到较大提升, 在数据集Corel5k和Iaprtc12上得到的F1值是最好的.又由于局部均衡数据集平衡了高频标签和低频标签的出现频次, 增大了低频标签被预测的可能性, 因此至少准确预测1次的关键词个数N+得到很大提升, 在3个数据集上分别达到172、251和280个, 大幅超过其他模型.在3个数据集上, 我们的模型的准确率P和召回率R也均达到当前较好水平, 说明我们提出的ADA模型是有效的. Table 7 Comparison between the ADA model and other models 表 7 本文ADA模型与其他模型的对比 5.2.5 结果展示 下文所给出的表 8中的9幅图是本文提出的ADA模型的标注实例.在图像自动标注结果一列中, 我们用黑色加粗的字体表示自动标注结果与人工标注结果相同, 而使用斜体字体的关键词表示可以描述图像的内容, 但是并没有被人工标注出来.在这里, 我们并没有选择完全被标注正确的那些图像, 而是选择了部分能够比较好地反映本文模型特点的一些图像.从图中可以看出, 本文一些图的标注结果虽然与原始图像上的人工标注结果有区别, 但却是对原始图像标注结果的有益补充, 能够更加准确地描述图像的语义信息.例如, 第1幅图像的人工标注并未将clouds这一关键词给标注上, 而从图像的场景来看, clouds显然要作为一个重要的关键词来描述该幅图像的场景.在第2幅图像中, 从人的视觉角度分析, 显然用sea这个关键词相比原始图像中的water更有说服力, 并且原始图像中也疏漏了beach等从图像中可以直接得到的关键词.此外, 在对抽象概念old, area等的描述上, 原始图像中的信息并不能对其进行准确的描述, 或者说, 单从人的视觉角度出发, 无法从图像上得到这些信息.因此, 这也从另一个角度说明了人工标注存在的一些问题, 可能存在漏标注, 并且不同人对同一幅图像的认识也存在一定的主观差异.同一幅图像, 不同的人可能给出不同的标注结果. Table 8 Annotation instances of the ADA model 表 8 本文ADA模型的标注实例 6 总结 本文将栈式自动编码器(SAE)应用于图像标注任务, 改善了传统的基于浅层机器学习模型标注效率低下、模型泛化能力弱等问题, 并针对图像标注数据不平衡问题提出了两种解决方案:(1) 对于模型本身, 我们提出了平衡栈式自动编码器(B-SAE)模型, 该模型可以针对特定样本进行增强训练, 解决了传统模型难以有效训练不平衡数据的问题, 有效提升了低频标签的F1值, 并在B-SAE的基础上提出鲁棒平衡栈式自动编码器算法(RB-SAE), 有效地解决了B-SAE模型本身不稳定的问题, 并得到稳定的标注结果; (2) 对于标注过程, 我们以待测图像作为出发点, 首先为每一幅待测图像构造局部均衡数据集, 并在此数据集上实现了一种有效提升中低频标签标注效果的语义传播算法(SP); 然后通过判定待测图像的高低频属性来分步标注未知图像(ADA).一方面, 用RB-SAE算法标注高频图像; 另一方面, 用SP算法标注中低频图像, 标注过程取长补短, 提升了整个模型的标注效果, 3个数据集上的实验验证了我们方法的有效性.此外, 如何让标注模型更好地解决弱对象、背景信息、水印等噪声干扰问题是下一步的主要研究内容.

相关资讯