微信号:gh_ced81e1c850e

介绍:淘宝技术部官方微信公众账号,关注和分享最前沿的互联网技术和资讯.

深度学习及其在淘宝图像应用探讨

2014-06-13 17:34 淘宝技术部

深度学习是机器学习的一个分支,它的主要特点是通过多层次的学习而得到对于原始数据的不同抽象层度的表示,进而提高分类和预测等任务的准确性。换句话说,深度学习在分类与预测问题的求解具有显著的优势。

当前深度学习在语音识别和图像分类领域,相较传统方法有了非常大的提升,它已成为学术界炙手可热的课题,这在追求新技术的互联网行业表现的尤为突出。深度学习领域有4个鼎鼎大名的科学家,分别是Geoffrey Hinton (多伦多大学教授),Yann LeCun(纽约大学教授),Yoshua Bengio(蒙特利尔大学教授),Andrew Ng(斯坦福大学教授)。 2013年, Google公司聘请了 Geoffrey Hinton和他的两个研究生;同年,Facebook聘用了Yann LeCun;今年五月份,百度将Andrew Ng招致麾下。这些互联网公司争相引进深度学习方面的大牛,正是看到了深度学习在人工智能上应用前景。在阿里巴巴,大家也充分认识到这一趋势,并且做了很多工作,例如从事图像算法、语音算法、NLP、广告等方面的同学,都纷纷投入到使用深度学习的队伍中;已经在语音识别技术上已取得卓有成效的成果(M工作室),并且在图像技术、NLP等方面积极探索。

在淘宝技术部,互动平台图像算法组利用深度学习理论和技术,在图像分析方面进行研发。本文旨在为大家介绍我们目前使用的深度学习算法、工具和平台,以及结合淘宝的图像数据,在图像分析方向所做的一些实践工作。

深度学习技术简介及其应用突破

深度学习技术简介

所谓深度学习,可以简单地理解为是一种深层的神经网络。深层神经网络是在输入输出层之间,至少有三层隐含层的神经网络结果。同浅层神经网络一样,深层神经网络也是通过非线性传递对数据进行描述。不同于浅层(传统)神经网络,深层神经网络里增加的隐含层提高了其对数据进行抽象的能力,进而把神经网络的学习能力提高到了一个新的高度。 深层神经网络通常使用Back Propagation(BP)算法进行训练,权值更新采用Stochastic Gradient Descent算法。

2006年Hinton在其文章中指出从实际训练上怎样使用Restricted Boltzmann machine (RBM)对多层网络进行非监督的预训练,然后监督性的使用Back Propagation对多层网络进行微调。Hinton把RBM层叠在一起训练出权值,然后把这个权值当成是下一个RBM层的输入作为权值的初始值,利用传统的梯度下降法训练网络,在每个RBM层通过筛选得到较好的参数初始值,使得最后的结果更好。Hinton的工作在手写字符识别和人脸图像表述等方面取得超过以往方法的效果。从那以后,应用深度学习在人工智能的多个领域得到了突破性的结果。其中,在计算机视觉和语音识别方面,深度学习更是以其突出的性能,在短短几年时间内,达到并超过了过去积累优化了几十年的传统算法所能达到的性能,成为行业内新的技术标杆。

图像领域的突破

目前在计算机视觉领域,深度学习技术几乎渗透到了大部分的研究方向,主要包括图像分类识别、图像理解、场景分割、人脸识别、目标检测和光学字符识别等,本文主要选取了图像分类方向加以分析介绍。

图像分类(Image Classification)是指根据图像的视觉信息对该图像进行分类,例如通过对图像视觉内容的分析确定该图是否包含某个特定物体。它的一个重要的应用就是图像理解,我们可以通过该技术对某个很大的图像数据库进行分析和检索,找到想要的图像。

在传统方法中,人工设计的特征,例如SIFT或HOG,在物体检测和识别中获得了很多成功的应用,但是这些方法仅仅是描述图像底层的梯度信息,没有充分利用到中层的物体部件(object parts)特征或高层的语义特征。事实证明:通过人工设计一组特征去描述中层或高层语义特征是非常困难的,但是深度学习技术的出现为这个问题的解决带来了新的思路。利用深度学习技术,可以对大量带有类别信息的训练样本进行有监督学习。

不同于如图1所示的传统算法,深度学习没有使用人工设计的特征,而是使用由大量数据通过非监督训练得到特征,从而对图像进行描述,最后利用深度模型对新的图像进行分类预测,见图2。

图1:传统的图像分类方法示意图

图2:基于深度学习的图像分类示意图

在Imagenet 2012(ILSVRC2012)图像分类比赛中,Geoffrey Hinton带领学生利用Deep Learning取得了图像分类的第一名成绩(85%的正确率),这大幅超过同届比赛的其他对手的成绩,达到了当时的大规模图像分类算法的业界最高水平(在2011年的同一个比赛中第一名为成绩为74%;2010年为72%)。

语音识别领域突破

在语音识别领域过去的近期发展的近30年里,传统神经网络和Gaussian mixture models (GMMS)一直在该领域优化迭代,深度学习在短时间内突破性的提高了该方向业内技术水平。该方向一个标志性的理论介绍可参见文献【2】,该文章作者George Dahl更是在一次采访中自信地指出,“所有主要公司的语音识别产品都正在或即将使用我介绍的技术”。

谷歌的Now和苹果的Siri这两个业内最为知名的工业级语音识别产品,都是基于深度学习技术开发的。根据谷歌研究人员介绍,目前在Android上使用深度学习的语音算法得到的语音识别错误率比之前经过近30年积累迭代的传统经典算法(比如GMMs)要低25%(识别错误率越低,识别效果越好)。

深度学习相关工具

海量数据

目前在深度学习领域有比较多的实现或工具,其中比较重要的几个是Cuda-convnet、Caffe、Pylearn2、Torch7等。在做过详细测试分析后,我们挑选两个比较适用的已有工具作为研发起点。

Cuda-convnet

Cuda-convnet是基于C++/CUDA/Python实现的卷积神经网络(CNN)开源框架,外围使用Python调用,使用起来非常友好,使用者可以根据实际需求配置网络结构,训练过程中使用Back-propagation算法进行模型更新。

Cuda-Convnet所支持的深度神经网络层种类:

⊙ Full connect layer (MLP)

⊙ Convolution Layer

⊙ Local Connect Layer

⊙ Neurons (tanh, sigmoid, relu, etc)

⊙ Normalization Layer

⊙ Softmax layer

⊙ Logistic regression cost layer/Sum-of-squares cost layer

Caffe

Caffe和Cuda-Convnet类似,也是一个实现卷积神经网络的开源架构。与Cuda-Convnet相比,除了能够支持绝大多数Cuda-Convnet的功能外,Caffe还有以下不同之处:

⊙ 虽然Caffe开源比较晚,但在开源社区的更加受关注。新功能和新代码的贡献非常活跃,目前基本保持在每月更新一次版本的节奏,很多深度学习里新的进展会较快在Caffe里测试与集成;

⊙ Caffe的代码更加规范,其训练和测试执行效率是目前所有深度学习工具里最高的之一,并且代码符合google开发风格,使用Gtest、Glog等,google大牛Jeff Dean也有代码模块在其中使用;

⊙ 除了前两条,Caffe因为相对比较新,相比较Cuda-Convnet里支持的众多功能,Caffe目前还不能支持如Local Connection Layer, Multi-label training等。

阿里云异构计算平台

异构计算平台是阿里云核心系统研发部专用计算组构建的GPU及众核异构计算集群,用以协助集团内各个应用方,在深度神经网络,机器学习等各个计算密集型领域,进行预研、生产的平台。目前,我们的实验,包括训练和测试,都是在这个平台上进行。我们同时也参与了平台的部分建设工作。在此,感谢阿里云同学的协助!

深度学习在淘宝图像数据的应用实践

女装图像类目预测

女装作为淘宝和天猫平台的一大类目有其自身特色,买家和卖家更多的依赖图像去描述和选择商品,因此对女装图像分析有着实际的应用价值。其中类目预测是一个重要的功能,如图3所示,它的过程是用户上传一幅服饰类图像query,系统自动识别出服饰主体,并判别其所属的类目。

图3:女装类目预测

在我们的实验中,使用110万淘宝女装图象作为训练数据,以及5万校验图像数据和42万测试图像数据。淘宝女装线上数据覆盖27个二级类目,部分类目重叠较多,因此对其进行合并,最终形成分成17个类目,包括如连衣裙、衬衫、裤子、裙子、大码女装等,如图4所示。

图4:用于试验的淘宝女装17个类目

采用基于深度学习的图像分类方法训练女装分类的模型,主要过程包括:训练图像预处理、数据平衡化处理、使用一个经过调整的类似imagenet2012的结构,经过大约6天的训练(使用一块K20显卡),类目预测模型在校验图像数据集上收敛到了86%的准确度。为了测试该模型在实际使用中的表现,使用一个与训练集不同的42万张淘宝女装图像测试集作为测试集。测试结果如表1所示。

表1:女装类目预测的测试结果

在相同数据集上,我们现在获得的TOP1准确率较之前开发的基于local feature + BOW的传统算法,有较大提高。为了验证和演示类目预测的效果,提供了一个网页测试demo,其地址如下:http://10.125.1.152/test/algorithm_demo.html 欢迎大家测试。经测试我们的算法对网上图和实拍图都有不错的识别效果。图5给出两个预测结果示例。

图5:女装类目预测结果示例

性别分类

性别是人脸反映的一个重要信息,通过人脸图像实现性别自动分类是一个两类分类问题,对大型人脸数据库的检索和识别以及广告精准投放和商品智能推荐等具有着重要意义。基于人脸图像的性别识别技术的发展历史相对较短,一般认为起源于上个世纪90年代,但其技术的发展速度十分惊人,从1991年Golomb等人训练了全相连的二层神经元网络SEXNET,到2010年Taskeed Jabid等人利用LDP(Local Directional Pattern,局部定向模式)方法在FERET人脸图像库上取得了高达95.05%正确率,传统方法在性别分类问题上已经取得很大的成果。

深度学习方法相比较于传统方法,除了提取人脸的底层特征,还能挖掘出数据的高层语义信息,在人脸性别识别问题上有着天然的优势。我们训练深度学习模型使用了大约10万张人脸图像的训练数据,数据来源丰富,为了防止过拟合还对模型加入了fine-tuning的过程。

(a)人脸性别分类的深度模型结构

(b)性别分类系统流程

图6人脸性别识别系统

我们使用深度学习技术在人脸性别分类上取得了一定成果,网络模型结构见图6(a)。最终构建的系统在多个测试数据集合上测评准确率都超过90%,该模型具有很强的稳定性和泛化能力,性别分类系统流程见图6(b)。图7是该系统的测试结果示例,其中F和M分别代表女性和男性,数字表示判断概率。

图7人脸性别分类结果的示例

总结

经过一段时期的深度学习研发和应用实践,我们相信:深度学习在阿里巴巴的图像业务需求上,能够发挥重要的作用。我们会进一步推动深度学习在图像领域的应用和算法改进,目标是改善图像分析、搜索和识别的技术,推进集团相关业务的发展,欢迎大家在业务和技术上一起交流与合作。

参考文献

【1】Hinton, G. E., Osindero, S. and Teh, Y., A fast learning algorithm for deep belief nets. Neural Computation 18:1527-1554, 2006.

【2】Dahl G E, Yu D, Deng L, et al. Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition [J]. Audio, Speech, and Language Processing, IEEE Transactions on, 2012, 20(1): 30-42.

【3】长仁.阿里GPU及众核预研集群. http://www.alibabatech.org/articles/13762, 2014-02-25.

本文作者

通平、东翊、愚岩、直广


 
TaobaoTech 更多文章 【交流分享】多终端架构 一种基于Lucene的实时搜索方案 淘宝技术部世界杯算法大赛赛况 【学习分享】Liblinear之信赖域牛顿法 【转】来自苹果的编程语言——Swift简介
猜您喜欢 C#用链式方法表达循环嵌套(一) 测试设计方法(四):因果图方法 Objective-C开发者对Swift亮点的点评 \bConcurrency 专访|阿里巴巴资深数据分析师的成长之路