基于迁移学习的多标签图像标注

2018-07-23 05:30秦莹华李菲菲
电子科技 2018年8期
关键词:铰链标签卷积

秦莹华,李菲菲,陈 虬

(上海理工大学 光电信息与计算机工程学院,上海 200093)

近年来,随着互联网的快速发展和移动设备的不断普及,海量的图像数据每天由各类数码产品制作,并快速在网络上传播。如何有效管理和检索这些数据成为一项亟需解决的问题。

自动图像标注是图像检索领域一项基本和富有挑战性的任务。它利用已标注图像集或其他可获得的信息自动学习语义概念空间与视觉特征空间的关系模型,并用此模型标注未知语义的图像,即它试图在图像的高层语义信息和底层特征之间建立一种映射关系,因此在一定程度上可以解决“语义鸿沟”问题。自动图像标注本质上是一个多标签学习问题,不同于单标签图像分类。图像分类中每张图像只含有一个标签,这与现实世界中事物不符。

过去很多方法致力于人工提取图像视觉特征来改善图像标注性能[1-2]。卷积神经网络在2012年大规模视觉识别挑战中取得了突破性成果[3],然而该方法仅考虑单标签分类。为了更自然地描述图像,采用卷积神经网络处理多标签图像就尤为重要。考虑到卷积神经网络需要大量的训练图像和收集大规模有标签数据集的困难,采用迁移学习的方法从ImageNet[4]分类任务中迁移已经训练好的中层参数到其他视觉识别任务中,例如Caltech256图像分类[5],场景识别[6]和Pascal VOC对象和场景分类任务[7]。

1 模型结构与算法

1.1 模型结构

文献[3]的CNNs结构包含超过六千万个参数,直接从几千张图像中学习这些参数是很困难的。本文的主要思想是将CNNs的中间层作为一个中级图像特征的通用提取器,它可以在源任务(ImageNet分类)中训练然后应用到目标任务(Corel5K图像标注),模型结构如图1所示。

图1 模型结构

图1采用文献[3]中AlexNet网络结构,其中C1-C2-C3-C4-C5表示前5层卷积层,fc6, fc7, fc8表示后三层全连接层。网络首先在源任务上训练,将训练得到的C1-fc7层参数迁移至目标任务。fc7层的输出为4096维向量,对于目标任务,该向量即为迁移得到的参数提取的中级图像特征。将fc7层输出的特征输入到fc8层,该层输出维度为260维,即对应Corel5K的260个标签。最后一层用多标签损失函数取代AlexNet中Softmax 损失,它用来评估预测值与真实值的误差,并通过反向传播降低误差以获得更好的分类效果。

1.2 多标签损失函数

文中采用两种损失函数,第一种是Sigmoid交叉熵损失,第二种是多标签铰链损失。

(1)Sigmoid交叉熵损失。Sigmoid函数形式如下

(1)

预测值和真实概率之间的交叉熵如下

(2)

其中yi∈{0,1}。

对该损失函数加入一个权重惩罚项,将该函数转化为一个严格凸函数,它能确保收敛并且获得全局最优解。

(2)多标签铰链损失。由SVM的原理可知,一个全连接层加上一个铰链损失等价于一个线性SVM。铰链损失本身是处理多分类问题,本文采用铰链损失处理多标签问题,将多标签学习转化为每个标签训练一个分类器的多个标签分类问题。

线性SVM可以写成如下形式

(3)

s.t.yi(wTxi+b)≥1-ξi

(4)

ξi≥0,i=1,2,…,m

(5)

这个二次规划问题可以转化为无约束优化问题,即求铰链损失函数最小化

(6)

2 实验和结果

2.1 数据集

Corel5K[8]是一个常见的多标签图像标注数据集,现已成为图像标注领域的基准数据集。该数据集共4 999张192 168的彩色图像,每张图像被人工标注为1至5个标签,平均为3.4个标签。该数据集共260个标签,每个标签包含图像数平均为58.6个,最多为1 004个。一般常用4 500张图像用于训练,余下499张图像用于测试。

2.2 评价方法

(1)准确率和召回率。为了分析标注性能,本文计算测试集中每一个标签的准确率和召回率。若一个标签实际包含n1张图像,在测试集中预测出图像数为n2其中预测正确的数量为n3(n3≤n2和n3≤n1),则

(7)

对测试集中每一个标签求平均值得到平均准确率,平均召回率;

(2)F1值。由准确率和召回率,得到F1

(8)

F1为准确率和召回率的调和平均数,其值越大,图像标注性能越好;

(3)标签多样性值N+。N+是指至少被一个测试图像所正确标注的标签数,即召回率大于零的标签数量。N+值越大,图像标注性能越好。

2.3 网络训练

代码的实现主要基于CAFFE(Convolutional Architecture for Fast Feature Embedding)框架[9],这套基于BSD许可包含C++库的框架是目前为止较好的卷积神经网络的实现。它含有Python和Matlab接口,并且能够调用GPU实现加速。由于该框架只支持单标签格式,需要改变源码来实现多标签格式输入。

预训练模型是文献[3]中AlexNet模型结构的实现,但有一些区别。首先,网络的输入尺寸为227 227 RGB图像而不是224 224。其次,网络采用单个GPU运算而不是采用两个并行GPU方式。它没有采用数据扩增并且将非0偏置初始化为0.1而不是1。该模型得到的校验集top-1精度为57.1%,top-5精度为80.2%。

Corel5K图像标注中使用的网络结构与预训练模型相同。将源任务中训练得到的C1…C5, fc6和fc7层参数迁移至目标任务然后固定,只训练fc8层。将fc8全连接层的权值采用高斯分布方式初始化,偏置初始化为0。fc8层权值和偏置的学习率分别设置为10和20。与其他方法相同,采用4500张图像用于训练,499张用于测试。为了判断学习状态,从训练集中随机选择500张图像作为校验集。将图像大小先调整为256 256然后裁剪成227 227图像块输入至CNNs。实验时采用一块12 GB内存的Nvidia Tesla K40c GPU。训练过程采用小批量梯度下降法(Mini-batch Gradient Descent),batch_size设置为10,初始学习率设置为0.0001,训练迭代9 000次(即20epoches),再将学习率降低10倍迭代4 500次(10epoches)。训练过程中训练集校验集损失函数变化趋势如下。

图2 Sigmoid交叉熵损失变化曲线

图3 多标签铰链损失变化曲线

图2表示以Sigmoid交叉熵损失作为损失函数的模型训练过程,图3表示以多标签铰链损失作为损失函数的模型训练过程。从图中可以看出训练开始时损失急剧下降而后缓慢下降,这是由于初始时学习率较大,参数很快趋于最优值。

2.4 实验结果

用训练得到的模型对测试集进行预测,提取fc8层输出值作为预测值。与其他方法相同,将测试集中预测值最高的前5个词作为标注词并且计算所有标签的平均准确率(P)、平均召回率(R)和F1值。将Sigmoid交叉熵损失(Cross-entropy loss)作为损失函数的方法命名为CNNs+SCEL, 将多标签铰链损失(Multi-label hinge loss)作为损失函数的方法命名为CNNs+MHL。将本文方法与一些经典方法和近两年表现优秀的方法对比如表1所示。

表1 Corel5K数据库方法对比

本文提出的CNNs+SCEL的方法平均准确率、平均召回率、F1值分别为0.46、0.64、0.531,CNNs+MHL的方法分别为0.45、0.61、0.515。从实验结果可以看出,本文得出的平均准确率、平均召回率、F1值均高于其他方法,但是标注多样性N+却不是很理想。这表明采用迁移学习和卷积神经网络的方法作为特征提取器,将多标签学习转化为针对每一个标签训练一个分类器的多个标签的分类问题的方法是可行的。平均准确率、平均召回率和F1值比较高说明对于训练集中图像数量较多的标签,模型几乎都能正确标注,标注多样性N+比较低说明对于训练集中图像数量少的标签则不能正确标注。这是由于Corel5K标签集不平衡,而卷积神经网络的训练需要大量的数据才能得到较好的结果。针对本文两种方法中CNNs+SCEL的结果要优于CNNs+MHL,这是由于Corel5K数据集的标签信息并不完全正确,异常点较多,模型的线性可分性不强。铰链损失的方法即线性SVM只考虑支持向量去学习分类器,而Sigmoid交叉熵损失即逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。所以若异常点较多的情况下, 首先采用Sigmoid交叉熵损失,该损失每个样本都有贡献,最大似然后会自动压制异常的贡献,线性SVM训练只需要支持向量,对异常比较敏感。

3 结束语

本文提出一种基于卷积神经网络和迁移学习的多标签图像标注算法。模型采用从ImageNet分类任务中迁移得到的参数。实验结果表明利用迁移学习的方法将卷积神经网络的中间层作为一个通用特征提取器的思想是可行的。实验采用两种多标签损失函数,与其他方法相比取得了不错的标注结果,说明将多标签学习转化为多个标签的分类问题是一种简单高效的处理方法。然而,仍然有一些方面值得改进与研究:

(1)使用更大规模的数据集。更大规模的数据集可以训练得到更好的参数并且不容易过拟合。由于卷积神经网络训练需要大量数据,直接从ImageNet分类任务中迁移得到的参数并不一定最好地表达目标任务,因此更大规模的数据集更能够发挥神经网络的优势;

(2)选择更好的损失函数。本文使用的方法是将多标签学习转化为多个标签的分类问题,该方法优点是简单高效,但是忽略了标签相关性;

(3)采用半监督或无监督方法。由于有标签图像资源有限,手工标注图像需要耗费大量人力物力,引进半监督或无监督方法只需要小部分的有标签图像就能获得很好的标注结果。

猜你喜欢
铰链标签卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于虚拟铰链打开机构的舱门提升机构研究
从滤波器理解卷积
球铰链防尘罩抱紧力优化
汽车连接器带铰链护壳产品的塑料模具设计改进
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
基于傅里叶域卷积表示的目标跟踪算法
标签化伤害了谁
科学家的标签