王凱,何宏,殷靜
(1.湖南工程學(xué)院,湖南 湘潭 411104;2.南通大學(xué),江蘇 南通 226000)
微表情概念最早由心理學(xué)家提出,即使人主動(dòng)控制自己面部表情隱藏內(nèi)心真實(shí)情感,心理學(xué)家也可通過觀察面部肌肉下意識(shí)的細(xì)微運(yùn)動(dòng)并結(jié)合面部編碼系統(tǒng)判斷其真實(shí)情感。因此,微表情被認(rèn)為是人刻意隱藏和壓抑自己真情實(shí)感時(shí)出現(xiàn)的時(shí)間短暫、動(dòng)作快速且幅度微小的無意識(shí)表情。由于微表情持續(xù)時(shí)間短、表情幅度小、不易于觀察等特點(diǎn),即使是經(jīng)過針對(duì)性訓(xùn)練的心理學(xué)從業(yè)人員對(duì)于微表情的識(shí)別和判斷也處于較低水平。
本文將LeNet卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于微表情識(shí)別中,提出了一種改進(jìn)型的LeNet卷積神經(jīng)網(wǎng)絡(luò)算法,在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法中的卷積層與池化層中加入全連接層與輸出層,直接計(jì)算誤差函數(shù),更新算法權(quán)值,使用Relu函數(shù)來代替sigmod函數(shù)作為激活函數(shù),并且在神經(jīng)網(wǎng)絡(luò)中引入隨機(jī)失活法(Dropout),消除過擬合現(xiàn)象,提升神經(jīng)網(wǎng)絡(luò)算法精度。
LeNet-5卷積神經(jīng)網(wǎng)絡(luò)作為基網(wǎng)來提取表情特征,其結(jié)構(gòu)包含有3個(gè)卷積層、2個(gè)池化層和2個(gè)全連接層。除輸入層以外,基網(wǎng)的每層都包含不同數(shù)量的訓(xùn)練參數(shù),數(shù)據(jù)先經(jīng)過兩次卷積層到池化層,再經(jīng)過全連接層。
LeNet網(wǎng)絡(luò)結(jié)構(gòu)中,C1,C3和C5層為卷積層,S2和S4為池化層,其中C1中包含6張28×28大小的特征圖,C3中包含6張10×10大小的特征圖,C5中包含120張1×1大小的特征圖;S2和S4中各包含6張14×14與16張5×5大小的特征圖;F6為全連接層,包含84個(gè)神經(jīng)元。
卷積層是深度卷積神經(jīng)網(wǎng)絡(luò)的重要部分,通過卷積層的運(yùn)算,提取出圖片中包含的許多不同特征值,進(jìn)而通過神經(jīng)網(wǎng)絡(luò)中的多層卷積來進(jìn)一步學(xué)習(xí)特征,主要負(fù)責(zé)進(jìn)行圖像特征的提取,卷積的計(jì)算公式:
池化層的作用是將卷積層中提取的特征進(jìn)行降維,使用特定的濾波器和步長(zhǎng)對(duì)卷積出的像素值進(jìn)行切割獲取,減小特征矩陣的大小,降低運(yùn)算時(shí)間。池化有最大池化和均值池化兩種方法,最大池化是將卷積圖像區(qū)域的像素值取最大值,均值池化則是將卷積圖像區(qū)域的像素取均值。
池化的計(jì)算公式:
神經(jīng)網(wǎng)絡(luò)解決多分類問題時(shí)一般設(shè)置n個(gè)輸出,其中輸出的數(shù)量個(gè)數(shù)即為模型的種類,每對(duì)應(yīng)一個(gè)輸入,模型都會(huì)相較應(yīng)的給出一個(gè)n維的數(shù)組,數(shù)組的每個(gè)維度就是模型的每個(gè)類別。
Softmax公式如下所示
在公式(3)中,i表示類別索引,Zj則為分類器前層輸出單元的輸出,n代表了總的類別個(gè)數(shù)。
本文研究傳統(tǒng)的Lenet-5神經(jīng)網(wǎng)絡(luò),根據(jù)傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)做出改進(jìn),在卷積層后添加一個(gè)臨時(shí)全連接層,得到臨時(shí)輸出層,與真實(shí)標(biāo)簽進(jìn)行比較,計(jì)算得到誤差函數(shù),進(jìn)行回調(diào)到輸入層間的權(quán)值。
當(dāng)圖片輸入時(shí),通過改進(jìn)的神經(jīng)網(wǎng)絡(luò),在數(shù)據(jù)量較小的情況下,因?yàn)樵诰矸e層加入了全連接層與輸出層,相較傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),能夠得到更多次的誤差函數(shù),再通過更多次的權(quán)值調(diào)整,使得誤差率能夠更快的收斂,各層間的權(quán)值可以更快的穩(wěn)定。
原Lenet-5神經(jīng)網(wǎng)絡(luò)選用的激活函數(shù)是sigmod,而sigmod函數(shù)具有缺少通用性的問題,所以對(duì)卷積層中的激活函數(shù)進(jìn)行了改進(jìn),選擇Relu函數(shù)作為激活函數(shù),它能阻止負(fù)信號(hào)通過,將所有小于0的值使用0代替,使得激活函數(shù)的導(dǎo)數(shù)的正數(shù)部分為1。相對(duì)于Sigmoid 的冪運(yùn)算需要大量的計(jì)算,Relu函數(shù)只有線性關(guān)系,可以提升收斂速度可以都很大程度提升計(jì)算速度。Relu公式如下:
在神經(jīng)網(wǎng)絡(luò)中引入隨機(jī)失活法(Dropout)。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)的時(shí)候經(jīng)常會(huì)遇到過擬合的問題,過擬合具體表現(xiàn)在:模型在訓(xùn)練數(shù)據(jù)上損失函數(shù)較小,預(yù)測(cè)準(zhǔn)確率較高;但是,在測(cè)試數(shù)據(jù)上損失函數(shù)比較大,預(yù)測(cè)準(zhǔn)確率較低,與預(yù)期結(jié)果產(chǎn)生較大偏差。使用隨機(jī)失活法,在深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,對(duì)于神經(jīng)網(wǎng)絡(luò)中的單元,按照一定的概率將其暫時(shí)從網(wǎng)絡(luò)中丟棄,減少隱層節(jié)點(diǎn)間的相互作用,方便參數(shù)的更新,來達(dá)到消除過擬合的現(xiàn)象。
本文的實(shí)驗(yàn)環(huán)境的具體配置為:GPU為GTX-1080Ti,16GB內(nèi)存,Python3.7編程語言,操作系統(tǒng)是windows10,以及TensorFlow深度學(xué)習(xí)平臺(tái)。
本文所采用的數(shù)據(jù)集為Fer2013數(shù)據(jù)集。Fer2013數(shù)據(jù)集中包含了28709張訓(xùn)練圖,3589張公開測(cè)試圖和3589張私有測(cè)試圖。所有的數(shù)據(jù)圖都是12×12的灰度圖。其數(shù)據(jù)集中一共包含生氣、厭惡、恐懼、開心、傷心、驚訝和自然這7種人臉面部微表情,涉及了大多數(shù)情況下出現(xiàn)的微表情,數(shù)據(jù)泛用性高。
本文為了對(duì)比改進(jìn)后神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)之間的差別,所使用的訓(xùn)練集和測(cè)試集均為Fer2013數(shù)據(jù)集,優(yōu)化函數(shù)為AdaBound算法,學(xué)習(xí)率設(shè)置為0.1,動(dòng)量為0.9,β1設(shè)為0.9,β2設(shè)為0.999。
根據(jù)圖1與圖2的數(shù)據(jù)顯示,傳統(tǒng)的LeNet-5神經(jīng)網(wǎng)絡(luò)和改進(jìn)后的LeNet-5神經(jīng)網(wǎng)絡(luò)在經(jīng)歷了700個(gè)訓(xùn)練周期后,損失函數(shù)值都有了較大的降低,準(zhǔn)確率也有了明顯的提升。由于改進(jìn)后的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)較傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得復(fù)雜,所以在訓(xùn)練的初期,改進(jìn)后的神經(jīng)網(wǎng)絡(luò)的損失值比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的損失值大,但當(dāng)訓(xùn)練周期達(dá)到150后,兩者的損失值都相互接近。而在準(zhǔn)確率方面,改進(jìn)后的LeNet-5神經(jīng)網(wǎng)絡(luò)不管訓(xùn)練周期的多少都相較于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)有了較大的提升。
圖1 傳統(tǒng)網(wǎng)絡(luò)與改進(jìn)后網(wǎng)絡(luò)的準(zhǔn)確率
圖2 傳統(tǒng)網(wǎng)絡(luò)與改進(jìn)后網(wǎng)絡(luò)的損失值
本文選取一位測(cè)試人員的100張表情圖片進(jìn)行測(cè)試,截取統(tǒng)計(jì)出測(cè)試人員出現(xiàn)的所有微表情,如圖3所示。
圖3 微表情種類
從圖3的檢測(cè)結(jié)果可以看出,本文提出的改進(jìn)的LeNet-5神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)能較為準(zhǔn)確地檢測(cè)出視頻中出現(xiàn)的微表情的類型,其中微表情顯示為生氣的有17張,厭惡的有12張,恐懼的有9張,開心的有16張,驚訝的有22張,自然的有24張,擁有較為滿意的檢測(cè)結(jié)果。
本文提出了一種改進(jìn)的LeNet-5卷積神經(jīng)網(wǎng)絡(luò),在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法中的卷積層與池化層中加入臨時(shí)的全連接層與輸出層,優(yōu)化了激活函數(shù),使用Relu函數(shù)來代替sigmod函數(shù)作為激活函數(shù),并且在卷積神經(jīng)網(wǎng)絡(luò)中引入隨機(jī)失活法(Dropout),消除過擬合現(xiàn)象,提升神經(jīng)網(wǎng)絡(luò)算法精度。從實(shí)驗(yàn)結(jié)果來看,改進(jìn)后的模型在微表情識(shí)別精度方面擁有較大的提升,但是,也存在一些不足,后續(xù)我們將進(jìn)一步研究提升其運(yùn)行速率。