双线性模型在中国菜分类中的应用

2019-05-10 02:00段雪梅鲍天龙
小型微型计算机系统 2019年5期
关键词:菜品准确率卷积

段雪梅,朱 明,鲍天龙

(中国科学技术大学 信息科学技术学院,合肥 230000)

1 引 言

目前社会上的中式快餐店越来越多[10].随着深度学习和人工智能全面应用于实践,释放人力,机器自动进行结账可能很快就会成为现实.此外,如果能从每天的日常饮食中准确的知道菜品名称,从而能得到其营养成分对于我们的健康也是很有益的,但是如果仅靠人力每天进行标注菜品名称又是一件很费时费力的事.因此寻找一个更有效的中餐分类和自动检索方法是一个有意义的课题.

图1 炒空心菜和炒青菜Fig.1 Fried mater convolvulus and saute vegetable

针对菜品识别的研究,目前已经提出了一些比较优异的算法,Yang等人使用传统的机器学习方法寻找菜品的特征并结合svm进行分类[4,5,12,14],Martinel发现菜品特征在垂直结构上的一致性,并利用这种一致性进行菜品的识别[13],Xu等人利用了图像拍摄的位置信息[15,16]来丰富图像的特征,使得识别结果更加准确.随着深度学习的提出,有人提出利用深度学习进行菜品分类,Hassannejad等通过加深网络的深度进一步提高了准确率[6].但以上很多方法针对的菜品种类比较广泛,包括西餐中的汉堡,薯条等快餐以及沙拉等甜点[7],种类间区别度比较大.但对于中国菜来说,由于很多中国菜之间的高度相似性,有些菜品之间的差异仅存在与细微之处,例如炒大白菜与娃娃菜,炒青菜与油麦菜,芹菜肉丝与芹菜香干,炒空心菜和炒青菜,如图1所示.有的是因为菜品做法本身的高相似性,有的是因为配料间细微的不同,导致区分难度很大.传统的机器学习方法已经不足以将其进行有效的区分开来,因此,本文基于深度卷积神经网络,研究了一些新的网络结构和分类算法,将它们结合起来得到了更好的效果.

2 方法介绍

鉴于以外对中国菜分类的研究太少,现有的一些研究方法也只是使用了图像的传统特征结合普通的分类网络,效果不够明显.本文针对中国菜的特点,基于迁移学习,提出了一种新的网络结构和两阶段式训练方法.

首先考虑了两方面的因素,第一是由于菜品的种类较多,而一味地加深网络结构只会导致训练时间和测试时间很长,而且需要更大的训练数据量.第二是由于某些菜品间的相似性,导致所属类别的粒度更加精细,需要想办法提取出更为微小的特征.针对这两种情况,本文首先采用双线性模型[1]作为基础的模型并得到双线性特征更为紧凑的表达[11],后续通过一个大裕量的softmax函数对特征进行分类[3],通过加入一个裕量使得分类器的学习难度增大,从而得到更有区分度的特征.

2.1 卷积神经网络

卷积神经网络的基本结构由卷积层,非线性激活层,池化层构成.通常将一幅图像通过设定的卷积核进行卷积,然后通过一个激活函数,再通过池化层,对图像进行子抽样,在保留了大部分特征的同时又减少了参数冗余数量.最后将提取出的特征经过全连接层,根据损失函数的梯度变化利用反向传播算法更新网络权值和偏置.

2.2 双线性模型

2.2.1 传统双线性模型

双线性模型(bilinear cnn model)[1]由两个并联的CNN模型构成.可以用四元组来表达.B=(fA,fB,P,C),其中,B表示双线性函数,fA,fB分别表示两个网络的特征提取函数,P为下采样函数,C为分类函数.双线性模型就是计算输入图像I两个特征之间的矩阵外积,将图像在位置l处的特征进行叉乘组合,即:

bilinear(l,I,fA,fB)=fA(l,I)TfB(l,I)

(1)

两个特征的维度D必须相同.再用求和池化函数或最大池化来综合不同位置的特征,得到一个全局双线性特征.

(2)

选择这两个池化函数的目的之一也是为了消除特征位置的信息,将特征变成无序的.因为对于中国菜来说,局部特征的位置区域是没有规律的.

最后将双线性特征经过符号平方根变换、并增加l2标准化,之后再输入分类器完成分类任务.

图2 双线性模型Fig.2 Bilinear cnn model

对于本文的中国菜数据集来说,只有类别信息,很难再人工进行一些局部信息的标注从而实现强监督分类方法[17],而对于公式(2)生成的双线性特征,L表示位置,由于特征的位置维度被积分掉了,因此会得到跟位置无关的双线性特征.另外,外积导致特征的维度D增大为原来的平方.

可以解释为,网络A的作用是对中国菜进行定位,即完成局部区域检测工作,而另一个网络B则是用来对网络A检测到的局部位置进行特征提取.如图2所示.两个网络相互协调作用,来完成物体、局部区域的检测与特征提取.因此相较于只有一个网络的结构来说得到的特征是更丰富,更细致的.

2.2.2 压缩双线性池化

对于图2的模型来说,虽然双线性特征能更好的表征一个图像,但是,即使是普通的VGG网络,最后一层参数维度就可能高达上百万量级,对计算和存储的要求太大.不仅训练起来非常的困难,对后续研究也造成了很大的不便.于是本文采用了Gao等人提出的compact bilinear pooling[2](以下简称cbp),对双线性特征进行多项式核化表示,使用了tensor sketch[11]和Random Maclaurin投影算法将维度降到了几千维,大大优化了网络的结构,减少了计算的时间,并且保持了网络良好的可区分性.

B(X),B(Y)=⟨⟩

(3)

可见最后可以简化为一个二阶多项式核,用k(x,y)表示,由2.1节可知,B(X)的维度为C2.

此时可以寻找与k(x,y)相似的另一个映射φ(x),维度为d,且d≪C2,可以通过tensor sketch[11]和random maclaurin两种方法得到,且满足

〈φ(x),φ(y)〉≈k(x,y)

(4)

此时降维到d后的内积和约等于原来C2维的内积,从而:

B(X),B(Y)⟨xs,yu⟩2≈

(5)

这里的C(X)也就是compact bilinear表示,几乎具有与原始双线性特征完全一样的表征能力,但维度大大减小,只有仅仅几千维.

2.3 大裕量softmax损失函数(large margin softmax loss)

交叉熵损失函数结合softmax分类函数是很多卷积神经网络的最后一个组成部分,不仅在计算上方便,而且收敛速度快,在很多情况下都取得了很好的效果.在这里将最后一个全连接层、softmax函数、交叉熵损失函数三者的结合简称为softmax loss.

当定义第i个输入特征Xi以及它的标签yi时,softmax loss记为:

(6)

然而,当前的softmax loss并没有强调类内的紧凑性,以及类间的分离性.对于中国菜来说,某些菜品间的高度相似性使得它们所产生的双线性特征也非常的接近,从而使得类与类之间的间距非常小.于是后来wen等人提出了center loss[8],通过优化每个batch中所有样本离样本中心的平方和来减小类内距离,从而提高分类质量.center loss的定义如下:

(7)

xi表示全连接层之前的特征,cyi表示每一类的中心,会在每一轮训练中进行更新,主要目的是希望类内距离越来越小.

后来liu提出了一个大裕量的softmax损失函数[3](large margin softmax loss,以下表格中简称为L-softmax),通过增加一个裕量,来加大同种类别的学习难度,显式的促进了同种类别特征间的相似性以及不同种类别特征间的分离性,在很多数据集上都取得了比softmax loss更好的效果.

‖W1‖‖x‖cos(θ1)>‖W2‖‖x‖cos(θ2)

(8)

从而能得到x来自类别1的正确结果.如果在这里增加一个正整数变量m,从而在损失函数里产生一个决策裕量,使得上述不等式能够得到更加严格的约束,如下:

‖W1‖‖x‖cos(θ1)>‖W1‖‖x‖
cos(mθ1)>‖W2‖‖x‖cos(θ2)

(9)

从而得到Large margin softmax loss的定义如下:

(10)

(11)

当m越大时,分类的边界越大,学习难度也越高.因此加大了同类别学习的难度,使得类间距离更大,对于特征的可区别性变得更强了.同时由于损失函数复杂度的增加,减少了模型的过拟合.但是并不是说m取值越大越好,当m超过了某一个阈值,分类器会因为学习难度太大而产生更差的分类特征.通常m取值不超过4,m等于1时相当于是原始的softmax函数,此时学习难度是最小的.

本文将大裕量损失函数与改进的双线性模型结合,并采用一种两阶段的训练方式,用在中国菜分类上,证明了其比原始的softmax loss以及center loss都能取得更好的效果.

3 实验结果与分析

3.1 数据集

本文采用了2017年一个新的中国菜数据集[4],一共有208类.这里简称为Chinesefood-208.训练集平均每一类有700张图片,总共有14万张.测试集平均每一类有100张图片,总共有20253张.为了后续研究的实用性,我从中选了生活中常见的101个菜,组成另外一个数据集,称为Chinesefood-101.

3.2 训练方法与实验结果

在实际的训练中,由于数据集和设备的限制,很难从头开始训练一个网络,于是本文采用了迁移学习的思想,用ImageNet训练好的网络模型来初始化前面卷积层的网络参数,完整的结构模型如图3所示.

本文分别用vgg16和vgg19-BN对上述两个数据集进行了训练,数据预处理部分采取随机翻转,先缩放到512×512再随机裁剪到448×448,vgg16添加了dropout层,vgg19添加了batchnorm层.实验均在caffe框架下进行训练与测试.为了增加网络的泛化性,给训练集的图片随机改变了亮度.首先是几个对比实验的训练.

图3 完整模型结构Fig.3 Integrated model structure

在利用centerloss作为损失函数进行训练时,为了使模型能更快的收敛,我们给softmax loss和centerloss赋予一个相同量级的权重.由表1、表3中的结果可知,增加了centerloss的模型准确率低于原始的利用softmax作为损失函数的模型.原因可能在于centerloss对类间差距较大的特征效果比较好,如人脸数据,而由于菜品之间相似度比较大因此只是减小了类内距离还不够,难以取得很好的效果.

表1 用vgg16训练得到的准确率Table 1 Accuracy matrix using vgg16-net

表2 特定菜品的准确率变化Table 2 Accuracy changes on some specific kinds

在使用压缩的双线性模型进行训练时,以448×448的图像作为输入,为了使模型能更好的收敛,先固定前面所有层的参数只训练最后一层全连接层,初始学习率设为1,每20个轮次学习率缩小10倍,接着再整体调优,初始学习率设为0.01.由表1、表3可以看出,调优后的双线性模型明显优于普通的深度卷积模型.在利用大裕量softmax loss作为损失函数进行训练时,裕量越大,同类别学习的难度也越大.实验结果也容易得出并不是margin越大学习效果越好,可能难度到了一定程度分类器就很难完成了.在本实验中取margin=3的效果比较好,margin=4的时候模型很难收敛.并且为了使模型能够更快且更容易收敛,在公式(10)中用式:

来替换掉‖Wyi‖‖xi‖ψ(θyi),加入一部分softmax loss来减小分类器后期学习的难度,从而帮助收敛.初始学习率设为0.0001.由表1、表3以及图4也可以看出cnn+L-softmax loss的效果不如cnn+cbp.这里也可以说明通常对网络结构的修改比损失函数的修改对分类结果的影响更大.由于增大了学习的难度,因此会比使用普通的softmax收敛的更慢一些.如图4所示,D比A、F比E都要上升的更慢一些.

表3 用vgg19(BN)训练得到的准确率Table 3 Accuracy matrix using vgg19(BN)-net

注:A-H分别表示每个模型的简称,cbp表示compact bilinear pooling,L-softmax loss表示large margin softmax loss

最后结合训练双线性模型与大裕量softmax loss进行训练时,为了模型能更好的收敛,采用了一个两阶段的训练方法.先训练cnn+L-softmax loss,再用这个训练好的模型去初始化前者前面的卷积层.综合表1-表3和图4可以看出cnn+cbp+L-softmax相较其他前面几个模型效果可以达到最大化,准确率更高.D、E均使用了A训练好的模型进行参数初始化,因此D、E前期的准确率上升的更快.

图4 四种模型训练Chinesefood-208的准确率与迭代次数的关系Table 4 Relationship between accuracy and number of iterations of 4 models

在数据集的原文献[9]中,作者使用ResNet152 + DenseNet (121 + 169 + 201) + VGG19-BN,五个模型进行概率加权可以得到81.43%的准确率,但其中有四个网络都是超过100层,时间和效率上都要求很高.而本文只使用了相较之下更轻量级的vgg19,进行端到端的训练便可以得到几乎更好的结果,而在时间和效率上都远远更优.与作者的另一个网络ResNet (18 + 34 + 50 + 152),四个不同层的残差网络进行概率平均相比,81.5%的准确率也是要明显优于79.19%的.

4 结束语

本文利用双线性模型加宽网络结构,得到更为丰富的特征,并对原始的softmax损失函数进行改进,通过加入一个裕量来加大同种类别学习的难度来提高分类质量.将原始图片提取双线性特征并通过大裕量softmax函数来进行端到端的训练,进而完成分类任务.相较于原始的卷积神经网络,在准确率和效率方面都取得了更好的效果.并且没有对原菜品进行更多复杂的标记,具有更大的应用价值.

猜你喜欢
菜品准确率卷积
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
迷惑菜品又来了
如何加强菜品加工过程中的卫生管理