【论文学习】Combination of ResNet and Center Loss Based Metric Learning for Handwritten Chinese Character


Combination of ResNet and Center Loss Based Metric Learning for Handwritten Chinese Character Recognition

  • 刊物:ICDAR 2017
  • 作者:Ruyu Zhang, Qingqing Wang, Yue Lu,East China Normal University
  • 内容:OCR,metric learning,手写中文识别

Abstract

几个概念学习

Handwritten Chinese Character Recognition,HCCR

测量学习,Metric Learning

度量(Metric)的定义 :

在数学中,一个度量(或距离函数)是一个定义集合中元素之间距离的函数。一个具有度量的集合被称为度量空间。

很多的算法越来越依赖于在输入空间给定的好的度量。例如K-means、K近邻方法、SVM等算法需要给定好的度量来反映数据间存在的一些重要关系。这一问题在无监督的方法(如聚类)中尤为明显。 例如如果我们的目标是识别人脸,那么就需要构建一个距离函数去强化合适的特征(如发色,脸型等);而如果我们的目标是识别姿势,那么就需要构建一个捕获姿势相似度的距离函数。为了处理各种各样的特征相似度,我们可以在特定的任务通过选择合适的特征并手动构建距离函数。然而这种方法会需要很大的人工投入,也可能对数据的改变非常不鲁棒。度量学习作为一个理想的替代,可以根据不同的任务来自主学习出针对某个特定任务的度量距离函数。

​ ——摘自《度量学习 (Metric Learning)》

Center Loss

center loss来自ECCV2016的一篇论文:A Discriminative Feature Learning Approach for Deep Face Recognition。
center loss的思想就是,从特征描述上,让类内距离尽可能的小,让类间距离尽可能的大 .
center loss的实现很简单,计算每个样本和该类中心的欧式距离。
center loss在人脸识别中,被大家认定为是十分work有trick .

center loss 公式:

Lc=12i=1m||xicyi||22

center loss的公式LC。cyi表示第yi个类别的特征中心,xi表示全连接层之前的特征。实际使用的时候,m表示mini-batch的大小。因此这个公式就是希望一个batch中的每个样本的feature离feature 的中心的距离的平方和要越小越好,也就是类内距离要越小越好。这就是center loss。

——摘自《损失函数改进之Center Loss》

Center loss的原理主要是在softmax loss的基础上,通过对训练集的每个类别在特征空间分别维护一个类中心,在训练过程,增加样本经过网络映射后在特征空间与类中心的距离约束,从而兼顾了类内聚合与类间分离。

在Cifar10和Cifar100上测试过Center Loss,发现效果并不是很好,准确率明显低于单独的Softmax;在Mnist上测试加上Center Loss的Softmax好于单独的Softmax;所以个人理解之所以Center Loss是针对人脸识别的Loss是有原因的,个人认为人脸的中心性更强一些,也就是说一个人的所有脸取平均值之后的人脸我们还是可以辨识是不是这个人,所以Center Loss才能发挥作用

——摘自《知乎:如何评价ECCV2016中提出的center loss》

ps:个人认为这种求中心点距离,增加类内聚合和类间分离的方法想法挺好,但可能求中心点的策略还过于简单,很依赖于样本的分布。


研究表明,由于更多的数据样本类间和类内信息被捕获,度量学习可以帮助深度网络取得很大的性能提升。而Center Loss是一种有强有力的度量学习方案。本文使用基于center loss的度量学习提升深度网络在HCCR上的表现,结合ResNet,准确率达到97.03%,远高于其他没有采用度量学习的深度网络。


Introduction

HCCR面临的困难

  • 字库太繁杂
  • 手写风格迥异
  • 复杂的字体结构
  • 容易混淆的形状相似性

目前已有两类HCCR方法,传统方式和基于深度学习的方法。

传统方法通常由3步组成:

  • shape normalization,形状标准化,主要是解决字体方向、大小、光强度等问题,是一个重要的预处理过程,通常会减少类内的形状差异。
  • feature extraction,特征提取,人工设计的特征的质量直接决定了最终识别的性能。目前gradient direction feature(梯度方向特征)以其对方向和宽度变化的灵敏性而成为最优的人工特征。
  • classification,分类,目前由许许多多种优秀的分类器,传统分类方法种MQDF是目前在HCCR问题上最好的分类器。

深度学习的方法

  • 《Multi-column deep neural networks for offline handwritten Chinese character classification》,IJCNN 2015,首次将CNN引入HCCR邻域,在ICDAR2013上取得94.472%的成绩
  • 近年来,研究人员开始结合深度网络和传统方法,比如
    • 传统人工特征+Deep Network特征提取及分类。用人工提取的梯度特征作为输入,和原始的输入图像一起作为网络的输入送入网络学习。
    • DL提取特征+传统分类器:用Deep Networks提取特征,然后采用如MQDF的传统分类器进行分类任务。

度量学习增强的深度学习方法

通常深度网络常在最后的output layer上采用softmax function进行分类,这同时忽略了类间和类内的关键信息(思想的哲学:不同类一定有其差异性,相同类一定有其相似性)。早在1994年Bromley等人就提出了将度量学习结合深度网络。《Handwritten chinese character recognition by joint classification and similarity ranking》,ICFHR 2016,Cheng等人第一次将度量学习增强的深度网络引入到HCCR领域,在ICDAR 2013的离线HCCR数据集上取得了97.07%的准确率,它们采用的是GoogLeNet+ResNet + Triplet Loss的方案。

Triplet Loss是一种度量学习策略,通过triplet loss function实现,每一次训练的输入是一个三元组,包含两个相同类和一个其他类的样本,然后训练中最小化类内距离,最大化类间距离。但是选择合适的三元组样本是一件困难的事,选择不当,可能不利于loss收敛。

因此,本文引入center loss做为度量学习方案。该loss是计算当前样本和其类中心的距离,从而不需要输入三元组样本对。

本文引入了center loss的度量学习来处理HCCR问题,并且研究了其效果,具体模型为RestNet+center loss,在ICDAR-2013数据集上展开实验。取得了可比拟采用复杂度量学习方案Triplet Loss和更为复杂的网络结构GoogLeNet+ResNet的效果。

ps:从introduction可以看出,本文其实并没有太大创新性,将已有的方案的loss function改变,且没有取得更好的结果(观察后面的实验结果发现准确率略低于Triplet loss+GoogLeNet+ResNet),实验着重证明在ICDAR2013数据集上,center loss能大幅提高ResNet的性能。


Proposed Network

本文采用的网络是何凯明团队提出的ResNet,采用RestNet-50,不同于标准的ResNet,本文在最后一个hidden layer后增加了center loss模块,这样整个网络的梯度参数由卷积的softmax loss和center loss共同调节更新。显然,两者的权重不同,设置参数lambda控制比例。本文采用一般的随机梯度下降优化方法。网络结构如下图所示
【论文学习】Combination of ResNet and Center Loss Based Metric Learning for Handwritten Chinese Character

ResNet

通常越深的网络提取的特征相比浅层网络性能更好,但是随着深度的增加,训练中会出现梯度消失和梯度爆炸现象。何凯明针对这种情况提出了ResNet,本文使用50层的ResNet。

Center Loss

本文是首次将center loss引入HCCR问题,我们尝试了这种新的混合的网络提高准确性同时减少计算复杂度。

center loss不需要复杂的样本单元组合(对比Triplet Loss就知道了),重点关注类内联系。center loss仅在最后一个隐层计算。使用f(x)代表最后一个隐层提取出来的深度(网络)特征,则center loss function公式如下:

Lcen=12i=1N||f(xi)cyi||22

上式中cy表示第y个类的深度特征的中心,它会随着不同的训练批次改变,N是batch size。中心的修改通过对应类的特征的均值来计算,所以中心会随着每一次迭代而修改。

整个网络的loss functon如下

L=lCLS+λLcen

上式中前者Lcls表示softmax loss,用来区分不同类的图片,后者Lcen表示center loss,作用于同类图片。超参数lambda控制两者的权重,小的lambda会降低center loss的影响,大的lambda可能造成网络训练中不可收敛。

softmax loss对参数的偏导不再赘述,这里给出center loss对cy的偏导,用于参数的更新:

Lcency=1N+1i=1N(cyif(xi))·1{i=y}

cyi表示第i个样本所属的类的特征中心,f(xi)表示第i个样本的特征,后面的1{i=y}是一个指示函数,类似于符号函数,当第i个样本得到的label等于真实label的时候函数值为1,否则为0,表示仅当正确分类的时候才存在center loss。算法步骤如下

【论文学习】Combination of ResNet and Center Loss Based Metric Learning for Handwritten Chinese Character


Experiments

Datasets

采用离线的HCCR数据集,训练集为HWDB1.0和HWDB1.1,测试集由第12届ICDAR手写中文识别竞赛提供。每个类有720个训练样本,60个测试样本。

Pre-processing and experiments setting

没有数据增强或数据白化(?),仅做了resize,将输入图片大小固定到120x120,全局归一化到0均值和单位方差。实验使用Caffe,GTX TITAN X GPU。采用SGD优化算法,mini-batch size为32,ResNet的momentum为0.9,weight decay为0.0005,初始学习率为0.01,在预训练好的ResNet上fine-tune。

Results

center loss实验

【论文学习】Combination of ResNet and Center Loss Based Metric Learning for Handwritten Chinese Character

与其他方法的对比实验
【论文学习】Combination of ResNet and Center Loss Based Metric Learning for Handwritten Chinese Character