前言
近幾年人工智能迎來發(fā)展高峰,越來越多的人開始意識到,機(jī)器可以通過學(xué)習(xí)擁有智能,進(jìn)而取代一部分人類工作,這促成了人工智能的技術(shù)研究達(dá)到空前的熱度。深度學(xué)習(xí)便是目前主流的研究領(lǐng)域,并被認(rèn)為是最具研究前景和發(fā)展?jié)摿Φ姆较颉?/p>
深度學(xué)習(xí)的研究動機(jī)是建立可模仿人腦進(jìn)行學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)兩種,目前主流的深度學(xué)習(xí)框架包括:TensorFlow、Caffe、Theano、MXNet、Marvin、Torch等等。下面選擇其中4種框架進(jìn)行對比,分別為TensorFlow、Caffe、Theano和MXNet,并介紹基于深度學(xué)習(xí)的圖像識別在美團(tuán)酒旅業(yè)務(wù)中的應(yīng)用實(shí)踐以及美團(tuán)云GPU云主機(jī)在其中發(fā)揮的作用。
不同深度學(xué)習(xí)框架的對比
TensorFlow是谷歌開源的一款深度學(xué)習(xí)框架,目前應(yīng)用最為廣泛,支持圖像、文字、語音的識別,自然語言處理等功能,可以說是一種通用型學(xué)習(xí)框架;Theano支持手寫字識別、圖像分類、自然語言處理等功能,但是比TensorFlow速度要快;Caffe在計(jì)算機(jī)視覺領(lǐng)域表現(xiàn)突出;MXNet是上述幾種框架中擴(kuò)展性最好的,支持CNN(卷積神經(jīng)網(wǎng)絡(luò))、RNN(遞歸神經(jīng)網(wǎng)絡(luò))、LSTM(長短期記憶網(wǎng)絡(luò)),并且也能夠支持多種功能,亞馬遜就選擇了MXNet作為其深度學(xué)習(xí)框架。
下面通過語言、速度、靈活性、適用模型、上手難度等方面對比四種框架。
比較項(xiàng)TensorFlowCaffeTheanoMXNet
語言Python/C++/Java/GO/R/Haskell/cudaC++/Python/Matlab/cudaC++/cudaPython/C++/R/Scala/Julia/Matlab/ Java/cuda
速度中等快速中等快速
靈活性好一般好好
適用模型CNN/RNNCNNCNN/RNNCNN/RNN/LSTM
上手難易程度難中等易中等
(表1)
(圖1)
從表1中的綜合對比來看,這四種框架各有優(yōu)劣,MXNet綜合能力更全面。從圖1中可以看出單卡GPU處理下,MXNet的loss是這四種框架中最低的,所用時間也最短。
TensorFlow在性能上和其他框架相比劣勢比較明顯,但靈活性很高,支持各種復(fù)雜的網(wǎng)絡(luò)模型,方便配置新的算法和環(huán)境并且支持可視化;
Caffe在圖片處理上的速度很快,用K40 GPU處理圖片可以達(dá)到2ms/張的速度,并且在學(xué)術(shù)及工業(yè)領(lǐng)域有很多可以借鑒的項(xiàng)目;
Theano支持語言較少,其他方面表現(xiàn)都還不錯,是一種適合學(xué)術(shù)研究的學(xué)習(xí)框架。
在美團(tuán)酒旅業(yè)務(wù)場景中,美團(tuán)云提供預(yù)裝了TensorFlow框架的GPU云主機(jī)來進(jìn)行圖像識別訓(xùn)練。
基于深度學(xué)習(xí)的圖像識別在酒旅業(yè)務(wù)中的應(yīng)用
深度學(xué)習(xí)需要大規(guī)模數(shù)據(jù)的運(yùn)算來訓(xùn)練模型,其性能主要受GPU浮點(diǎn)運(yùn)算能力的影響,所以選擇合適的GPU是提升訓(xùn)練效率的重中之重。
選擇GPU主要考慮三方面因素:浮點(diǎn)運(yùn)算能力、功耗和成本。一般情況下,GPU的浮點(diǎn)計(jì)算能力與其功耗成正比,另外現(xiàn)在GPU的更新?lián)Q代速度比較快,所以大規(guī)模堆置高性能機(jī)器可能會造成一定程度的資源浪費(fèi)。
美團(tuán)云提供的GPU云主機(jī)搭載了NVIDIA Tesla M60 GPU,預(yù)裝了TensorFlow 1.1-GPU框架和Keras 2.0.4框架。M60可提供最高4096個并行處理核心,16GB的GDDR5顯存及9.7TFlops 的單精度峰值性能。選擇M60也是綜合考量了性能、功耗以及成本三個方面的結(jié)果,美團(tuán)酒旅圖像識別的算法訓(xùn)練所選用的就是預(yù)裝了TensorFlow 1.1-GPU框架的M60 GPU云主機(jī)。
在酒旅的業(yè)務(wù)場景中,身份信息驗(yàn)證、機(jī)票驗(yàn)證、在線值機(jī)、驗(yàn)證碼驗(yàn)證等都可以利用圖像識別尤其是OCR識別技術(shù)來支持系統(tǒng)自動識別用戶信息,簡化用戶操作流程,并提高信息錄入的速度和準(zhǔn)確度。
驗(yàn)證識別中的主要流程包括:去噪點(diǎn)、去色、切片、模板對比、輸出5個環(huán)節(jié),因此在基于深度學(xué)習(xí)的OCR識別中,美團(tuán)酒旅團(tuán)隊(duì)選擇了CNN(Convolutional Neural Network)+LSTM(Long Short-Term Memory)+CTC(Connectionist temporal classification)的組合算法方案:
——CNN即卷積神經(jīng)網(wǎng)絡(luò),包括卷積層和池層,是一種前饋神經(jīng)網(wǎng)絡(luò),CNN在大規(guī)模圖像處理中表現(xiàn)出色,因此用CNN來進(jìn)行圖像特征的提取;
——LSTM是遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的一種,即時間遞歸神經(jīng)網(wǎng)絡(luò),適合處理和預(yù)測時間序列中間隔和延遲相對較長的重要事件,因此采用LSTM來提取時序關(guān)系最為合適;
——CTC是一種基于神經(jīng)網(wǎng)絡(luò)的時序分類,可以實(shí)現(xiàn)一個輸入序列一個輸出序列就可以完成訓(xùn)練。因?yàn)樵谳敵鲩L度固定的情況下,選擇引入CTC來預(yù)測輸出。
(圖2:算法模型)
基于此混合算法的模型訓(xùn)練,識別精度目前可以達(dá)到單次識別準(zhǔn)確率90%以上,5次識別準(zhǔn)確率99%以上,對于宋體、楷書等文字識別的準(zhǔn)確率可以達(dá)到80%以上。隨著模型和算法的優(yōu)化,準(zhǔn)確率還將不斷提升。
結(jié)語
除了在酒旅業(yè)務(wù)場景中應(yīng)用圖像識別之外,美團(tuán)點(diǎn)評在自然語言處理、人臉識別等多個領(lǐng)域都有所探索,美團(tuán)云GPU云主機(jī)為上述領(lǐng)域的研究提供了訓(xùn)練支撐,幫助加速訓(xùn)練過程,完善算法。
目前,美團(tuán)云主要提供單機(jī)單卡的GPU云主機(jī),未來還將研究單機(jī)單卡、單機(jī)多卡與多機(jī)多卡等方式之間的性能及成本差異,提供更符合用戶需求的GPU計(jì)算服務(wù)。
此外,美團(tuán)云于近日上線了深度學(xué)習(xí)平臺,并開放了人臉識別、OCR識別等AI應(yīng)用,提供一站式AI服務(wù)。
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!