薛天坤
摘 要:卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一類(lèi)人工神經(jīng)網(wǎng)絡(luò),對(duì)于處理復(fù)雜的人工智能問(wèn)題展現(xiàn)了高效的特性,而對(duì)于微表情這類(lèi)持續(xù)時(shí)間短,動(dòng)作幅度小的模式識(shí)別提供了新契機(jī)。本文闡述了CNN在微表情模式識(shí)別上的應(yīng)用,進(jìn)行了不同構(gòu)建模型對(duì)該任務(wù)的特性分析,并開(kāi)展了CNN在CPU下的優(yōu)化形式的特征分析。這包括了對(duì)整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的見(jiàn)解、卷積內(nèi)在算法的強(qiáng)度、不同的訓(xùn)練方式對(duì)于網(wǎng)絡(luò)影響、其可擴(kuò)展的特性以及運(yùn)行的動(dòng)態(tài)特性。在特征分析中,我們給出了自動(dòng)網(wǎng)絡(luò)架構(gòu)優(yōu)化,這包括了高效的并行執(zhí)行和兩個(gè)卷積核傳播器,并且利用了此種卷積網(wǎng)絡(luò)在微表情應(yīng)用上展現(xiàn)了較好的結(jié)果。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);深度學(xué)習(xí);微表情識(shí)別
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)志碼:A
0 引言
微表情是當(dāng)人受到某種情緒影響時(shí)做出的一種下意識(shí)動(dòng)作,它反映了人最真實(shí)的感情,常常使人在不知不覺(jué)中暴露自己的內(nèi)在想法,從而讓謊言無(wú)處可逃,它是一種非常有效的非語(yǔ)言線(xiàn)索.一些了解測(cè)謊原理的人有可能很容易就能經(jīng)過(guò)測(cè)謊儀的考驗(yàn),但他們?cè)诮?jīng)過(guò)微表情檢測(cè)時(shí),往往束手無(wú)策。
傳統(tǒng)方法對(duì)微表情識(shí)別率低,圖片預(yù)處理復(fù)雜。而深度學(xué)習(xí)能夠完成對(duì)數(shù)據(jù)的抽象,將底層特征組合映射到高層特征,在滿(mǎn)足可分性的同時(shí)具有更強(qiáng)的表征能力; CNN作為一種常見(jiàn)的深度學(xué)習(xí)結(jié)構(gòu),是前沿的識(shí)別任務(wù)中常用的一種方法。隨著大量訓(xùn)練數(shù)據(jù)的應(yīng)用以及計(jì)算機(jī)運(yùn)算能力的提高,CNN處理問(wèn)題的結(jié)果顯得十分理想。CNN能自主進(jìn)行特征提取以及識(shí)別精確性高且速度快,可以滿(mǎn)足實(shí)時(shí)性的要求。
CNN計(jì)算是密集的,特別是面對(duì)具有挑戰(zhàn)性任務(wù)。例如我們每次計(jì)算會(huì)有數(shù)以?xún)|計(jì)的浮點(diǎn)數(shù)計(jì)算,給我們帶來(lái)極大計(jì)算量,每次訓(xùn)練需要迭代多次,因而可能完成整個(gè)過(guò)程需要幾天或者一周。本文通過(guò)不同的計(jì)算方式計(jì)算,不同的訓(xùn)練模式測(cè)試,尋找最高效的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);并且采取了并行CPU運(yùn)行方式,Stencil-核和Sparse-核分析CNNs高性能的執(zhí)行方式,比較分析CNN的可擴(kuò)展性能、輸出特性、計(jì)算強(qiáng)度特性。
1 傳統(tǒng)方法
目前已經(jīng)提出了多種應(yīng)用于微表情識(shí)別的有效方法,如光流法,SVM、BP、CNN等。BP算法是一種局部搜索的優(yōu)化算法,但它要解決復(fù)雜函數(shù)的全局最優(yōu)解,因此效率低;Vapnik等人在多年研究統(tǒng)計(jì)學(xué)習(xí)理論的基礎(chǔ)上對(duì)線(xiàn)性分類(lèi)器提出了一種新設(shè)計(jì)準(zhǔn)則,支持向量機(jī)。支持向量機(jī)具有很好的推廣能力。但是SVM計(jì)算量過(guò)大,分類(lèi)時(shí)間越長(zhǎng)。而一張表情圖像的樣本數(shù)量常常數(shù)以萬(wàn)計(jì),因此它一般不能滿(mǎn)足實(shí)時(shí)性的要求;光流法應(yīng)用于微表情識(shí)別,該方法能夠成功地捕獲微小表情變化、探測(cè)和區(qū)分宏表情和微表情。但值得注意的是,基于光流的方法需要一個(gè)恒定的光照條件,光流法計(jì)算量大,耗時(shí)長(zhǎng),在對(duì)實(shí)時(shí)性要求苛刻的情況下并不適用??傊畟鹘y(tǒng)神經(jīng)網(wǎng)絡(luò)缺陷在于它們是基于啟發(fā)式特征提取的方法,需要設(shè)計(jì)者具備足夠的先驗(yàn)知識(shí),提取的特征往往是提取在研究對(duì)象中比較感興趣的部分,具有片面性,損失了大量的信息。
2 卷積神經(jīng)網(wǎng)絡(luò)
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),是對(duì)于輸入的浮點(diǎn)數(shù)據(jù)陣列傳遞到每一層之中,層與層之間通過(guò)全連接權(quán)值相乘累加,再通過(guò)相應(yīng)的非線(xiàn)性函數(shù)得到輸出結(jié)果。卷積神經(jīng)網(wǎng)絡(luò)建立在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上。其與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不同之處在于,CNN每一層只和小區(qū)域相連接,被分為一組一組特征圖,所有特征圖對(duì)應(yīng)相同輸入。由于使用該網(wǎng)絡(luò)不需要對(duì)原始圖像進(jìn)行復(fù)雜的預(yù)處理,所以目前已在字符識(shí)別、圖像識(shí)別、表情分類(lèi)等領(lǐng)域廣泛應(yīng)用。它通過(guò)3種方式使網(wǎng)絡(luò)學(xué)習(xí)到的特征更具有魯棒性:局部感受野、權(quán)值共享和下采樣。
3 實(shí)驗(yàn)設(shè)計(jì)
3.1 BP與SGD
在反向傳播算法提出之前人們應(yīng)該想到了使用SGD學(xué)習(xí)模型,也想到了一些辦法求解網(wǎng)絡(luò)模型的偏導(dǎo)數(shù),但這些算法求解效率比較低,所以提出反向傳播算法來(lái)更高效的計(jì)算偏導(dǎo)數(shù)。反向傳播利用鏈?zhǔn)椒▌t,極大地加速了學(xué)習(xí)速度。
梯度下降(GD)是最小化損失函數(shù)的一種常用方法。隨機(jī)梯度下降(SGD)通過(guò)每個(gè)樣本來(lái)迭代更新一次。如果是樣本量很大的情況(例如幾十萬(wàn)),對(duì)比批量梯度下降,迭代一次需要用到十幾萬(wàn)訓(xùn)練樣本,一次迭代不可能最優(yōu),如果迭代10次的話(huà)就需要遍歷訓(xùn)練樣本10次。
3.2 對(duì)每層特征的分析
下面通過(guò)對(duì)一張微表情圖像通過(guò)不同數(shù)量卷積池化層得到的輸出圖像進(jìn)行特征分析與對(duì)比分析。經(jīng)過(guò)多次卷積、池化,得到了高級(jí)特征要點(diǎn)。這說(shuō)明卷積池化結(jié)構(gòu)對(duì)微表情特征提取是有效的,成功測(cè)試了卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于微表情特征提取時(shí)的高效性。
3.3 交叉訓(xùn)練與非交叉訓(xùn)練
在利用反向傳播對(duì)CNN的卷積核權(quán)重等進(jìn)行訓(xùn)練時(shí),一般基于兩種方法,交叉訓(xùn)練與非交叉訓(xùn)練。非交叉訓(xùn)練即在反向訓(xùn)練時(shí),一部分?jǐn)?shù)據(jù)只用來(lái)訓(xùn)練,另一部分?jǐn)?shù)據(jù)只用來(lái)測(cè)試;而交叉訓(xùn)練則是數(shù)據(jù)中有一部分既用來(lái)訓(xùn)練,又用來(lái)測(cè)試。下面通過(guò)圖像來(lái)展示交叉訓(xùn)練的優(yōu)勢(shì)。
3.4 卷積神經(jīng)網(wǎng)絡(luò)最佳層數(shù)尋找
對(duì)于一般的卷積神經(jīng)網(wǎng)絡(luò),隨著卷積層數(shù)的增加,網(wǎng)絡(luò)復(fù)雜度增大,意味著最終提取出的數(shù)據(jù)會(huì)更加抽象和高級(jí),能夠完成更大規(guī)模的學(xué)習(xí),對(duì)原始圖像識(shí)別的準(zhǔn)確率更高。若要增加層數(shù)使網(wǎng)絡(luò)更復(fù)雜,增加隱層的數(shù)目和單純的增加隱層神經(jīng)元的個(gè)數(shù)都可達(dá)到目的,但增加隱層的數(shù)目比增加隱層神經(jīng)元數(shù)目更加有效,因?yàn)樵黾与[層數(shù)目不僅增加了擁有激活函數(shù)的神經(jīng)元個(gè)數(shù),還增加了激活函數(shù)嵌套的層數(shù);但是,隨著層數(shù)增加,所需的卷積核權(quán)重,也就是所需的訓(xùn)練參數(shù)變多,這需要更長(zhǎng)訓(xùn)練時(shí)間,甚至?xí)褂?jì)算復(fù)雜化,降低正確率。針對(duì)這個(gè)矛盾的問(wèn)題,下面進(jìn)行實(shí)驗(yàn),通過(guò)比較隨層數(shù)增多,識(shí)別錯(cuò)誤率的變化情況以及所需訓(xùn)練時(shí)間長(zhǎng)短,試圖尋找最優(yōu)層數(shù)方案。
表1設(shè)計(jì)了四組實(shí)驗(yàn)對(duì)照,分別代表4種復(fù)雜程度不同的網(wǎng)絡(luò)結(jié)構(gòu),前兩組都有3個(gè)卷積層和3個(gè)池化層,但兩組每層卷積核幅數(shù)不同;后兩組都有兩個(gè)卷積層和兩個(gè)池化層,兩組每層卷積核幅數(shù)也不同。對(duì)比各組實(shí)驗(yàn)結(jié)果不難看出,最優(yōu)的神經(jīng)網(wǎng)絡(luò)模型是第一組。而且也可以發(fā)現(xiàn):過(guò)于簡(jiǎn)單的模型,因?yàn)閰?shù)較少,無(wú)法擬合訓(xùn)練數(shù)據(jù);過(guò)于復(fù)雜的模型,因?yàn)閰?shù)太多,容易過(guò)度擬合訓(xùn)練數(shù)據(jù),降低泛化能力。
我們?cè)倏聪乱粋€(gè)小實(shí)驗(yàn)的結(jié)果,如圖1所示,虛線(xiàn)代表了出現(xiàn)錯(cuò)誤的個(gè)數(shù),通過(guò)觀察其走勢(shì),我們發(fā)現(xiàn),當(dāng)層數(shù)達(dá)到5層~10層中某一層時(shí),隨著訓(xùn)練時(shí)間增加,識(shí)別錯(cuò)誤的概率減小得越來(lái)越慢,最后甚至不再減小。說(shuō)明層數(shù)增加到這一層時(shí),已經(jīng)達(dá)到了較高正確率,且該正確率幾乎不再隨層數(shù)增加而變化,那么這時(shí)再試圖通過(guò)增加層數(shù)來(lái)提高正確率,就沒(méi)有意義了。
4.5 卷積加速
通過(guò)了GEMM-IN-Parallel,通過(guò)多核提高了卷積計(jì)算在硬件上的可擴(kuò)展特性,實(shí)現(xiàn)了多工作單線(xiàn)程工作,實(shí)現(xiàn)了并行的運(yùn)算方式,每個(gè)核心之間是相互獨(dú)立的。我們分析了每個(gè)核心數(shù)的并行特性,增加了核的數(shù)量,觀察計(jì)算伸縮性能的變化。表明了隨著核增加計(jì)算性能的變化,表明了隨著核增加計(jì)算加速情況。圖1是沒(méi)加速地隨著核增加計(jì)算性能比較。
結(jié)語(yǔ)
本文首先比較了深度學(xué)習(xí)中卷積神經(jīng)網(wǎng)絡(luò)相對(duì)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)在微表情識(shí)別特征提取的優(yōu)勢(shì),即通過(guò)權(quán)值共享、局部感受野、下采樣過(guò)程使特征提取有更高的魯棒性和正確率。
利用了基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),對(duì)深度學(xué)習(xí)在微表情識(shí)別領(lǐng)域進(jìn)行了探索和實(shí)驗(yàn),主要基于4個(gè)方面對(duì)算法進(jìn)行討論和認(rèn)知:(1)BP和SGD算法優(yōu)勢(shì)簡(jiǎn)述;(2)通過(guò)比較交叉訓(xùn)練和非交叉訓(xùn)練,展示了交叉訓(xùn)練的優(yōu)勢(shì);(3)構(gòu)建不同規(guī)模、不同復(fù)雜程度的CNN模型進(jìn)行訓(xùn)練;(4)實(shí)驗(yàn)通過(guò)加入兩個(gè)不同的計(jì)算核提高了計(jì)算速率并保證了計(jì)算正確率。實(shí)驗(yàn)結(jié)果表明,相比于傳統(tǒng)算法,本文的方法對(duì)微表情識(shí)別這一任務(wù)有更優(yōu)秀的表現(xiàn)。本文中CNN模型高度適用于一幀幀圖像的識(shí)別,但對(duì)于較長(zhǎng)的視頻識(shí)別能力弱,也就是說(shuō),CNN對(duì)于短至幾微秒的微表情識(shí)別水平高,但遇到持續(xù)時(shí)間較長(zhǎng)的微表情或動(dòng)作則表現(xiàn)不優(yōu)秀。
參考文獻(xiàn)
[1]劉宇灝.微表情識(shí)別的理論和方法研究[D].江蘇:東南大學(xué),2016.
[2]賁晛燁,楊明強(qiáng),張鵬,等.微表情自動(dòng)識(shí)別綜述[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2014,26(9):1385-1395.
[3]施徐敢.基于深度學(xué)習(xí)的人臉表情識(shí)別[D].浙江:浙江理工大學(xué),2015.
[4]牛新亞.基于深度學(xué)習(xí)的人臉表情識(shí)別研究[D].廣東:華南理工大學(xué),2016.
[5]陶勤勤.基于卷積神經(jīng)網(wǎng)絡(luò)和改進(jìn)支持向量機(jī)的人臉檢測(cè)[D].安徽:合肥工業(yè)大學(xué),2016.
[6]唐爽.基于深度神經(jīng)網(wǎng)絡(luò)的微表情識(shí)別[J].電子技術(shù)與軟件工程,2017(3):93-95.
[7]羅翔云,周曉慧,付克博.基于深度學(xué)習(xí)的人臉表情識(shí)別[J].工業(yè)控制計(jì)算機(jī),2017,30(5):92-93.