基于Swish激活函數的人臉情緒識別研究
王靈矯,李乾,郭華
(湘潭大學 信息工程學院,湖南 湘潭 411105)
摘要:激活函數的選取對深度學習模型的性能有著重要的影響。根據傳統激活函數與新型Swish激活函數的優缺點,將Swish函數引入深度學習模型,提出了一種改進的反向傳播算法,并在卷積神經網絡系統中使用多層小尺寸卷積模塊提取細化特征,構建了人臉情緒識別深度學習模型Swish-FER-CNNs。實驗結果表明,新模型相對于現存模型的準確率提高了4.02%。
關鍵詞:激活函數;反向傳播;卷積神經網絡;深度學習;計算機視覺
中圖分類號: TP393 文獻標識碼: A
A research on face emotion recognition based on Swish activation function
Wang Ling-jiao, Li Qian, Guo Hua
(College of Information Engineering, Xiangtan University, Hunan 411105,China)
Abstract: The selection of activation function has an important impact on the performance of deep learning model. According to the advantages and disadvantages of the traditional activation function and the new Swish activation function, Swish function is introduced into the deep learning model, and an improved back propagation algorithm is proposed. A multi-layer small-size convolution module is used to extract refinement features in the convolution neural network system, and a deep learning model Swish-FER-CNNs for face emotion recognition is constructed finally. The experimental results show that the accuracy of the new model is improved by 4.02% compared with the existing model.
Key words: activation function; back propagation; convolutional neural network; deep learning; computer vision
1 引言
人類通過眼睛感知光信息洞悉世界,情緒是人類溝通的一個重要組成部分,影響人類的交流。準確分析人臉情緒,對深入理解人類行為至關重要。在文獻[1]中,Giannopoulos等人已經提出了使用卷積神經網絡的方法分析人臉情緒。
卷積神經網絡系統主要由卷積層、池化層、激活函數、全連接層、分類函數等多部分組成[2],組成的方式不同導致網絡模型的性能差異顯著。經典的AlexNet深度學習模型使用5層卷積層、3層全連接層、ReLU激活函數等聯接構成的網絡,在ImageNet分類上準確率提高顯著[3],但參數較多、計算負載大,在人臉情緒識別數據集上有過擬合的問題。Jeon[4]在AlexNet的基礎上進行了結構精簡,成功的將其引入人臉情緒識別領域,但網絡層數較淺,模型擬性能較弱,識別準確率不高。
卷積神經網絡自學習機制的關鍵是反向傳播算法,系統產生的誤差通過網絡結構向底層傳播,調節系統自身參數[5]。激活函數[6]作為反向傳播算法中重要的組成部分,表示神經元潛在動作可能的抽象映射,影響系統性能。ReLU激活函數[7]是多段線性函數,加強了模型的非線性并且可以提高模型的收斂速度。但當時,ReLU的輸出皆為0,導致模型無法迭代,出現神經元死亡和均值偏移問題。之后,Maas提出的L-ReLU激活函數在一定程度上解決了這些問題,但在x<0時為線性函數,對輸入噪聲的魯棒性較差[8]。文獻[9]中提出的P-ReLU與L-ReLU相似,不同之處在于當x<0時,斜率為系統學習所得,函數性能提高,但仍未解決對輸入噪聲魯棒性較差的問題。
為更好地擬合數據與系統模型,本文結合Swish激活函數,改進反向傳播算法,解決了魯棒性較差的問題,同時改善了神經元死亡和均值偏移問題。針對AlexNet和Jeon的深度模型(簡稱Jeon’s)網絡層數較淺、參數較多等不足,加深了神經網絡層數并使用更小的卷積核,便于感知細化特征,提出了Swish-FER-CNNs情緒識別模型,提高了識別準確率。
2 基于卷積神經網絡的情緒識別模型
卷積神經網絡使用卷積層提取圖像特征,以池化層簡化參數,提高計算效率。采用多層卷積和池化級聯能進一步感知和提取圖像特征,獲取高維特征并使用全連接層將學習到的隱式特征映射到樣本標記空間,最后通過softmax分類器進行分類,得到分類標簽,具體模型如圖1所示。
圖1 情緒識別模型原理圖
3 Swish-FER-CNNs情緒識別模型
Swish-FER-CNNs情緒識別模型結合激活函數Swish噪聲魯棒性較強等優良特性,提出改進的反向傳播算法參與模型迭代,并針對Jeon’s深度學習模型的局限性,采取加深系統網絡層數、細化卷積尺寸的方式,提取更細密的感受野信息,以提高模型識別準確率。
3.1 改進的反向傳播算法
反向傳播算法是調整網絡模型的參數更迭的依據。已知輸入通過前向傳播得到,產生的誤差為代價函數。來自代價函數的信息通過模型向后傳播,用于計算梯度。反向傳播算法是一種計算微積分中鏈式法則的算法,分別是兩個實數集合間的映射函數,令為激活函數,,則鏈式法則為:
(1)
上式可反映上層網絡輸出,受下層網絡輸出的影響而變化的數學關系。又有,故的選取對于深度學習網絡的迭代性能有較大影響。下文通過對Swish激活函數進行性能分析,提出了一種改進的反向傳播算法。
3.1.1 Swish激活函數
本文中使用的Swish激活函數的定義如下:
(2)
其中,為常數。函數圖像如圖2所示。
圖2 Swish激活函數
當時,Swish激活函數的一階導數易于計算,利于模型訓練。當時,與ReLU函數相比,Swish函數既能夠均衡正負軸比重,減緩了均值偏移現象,又由于它無硬飽和性,避免了神經元死亡現象;與L-ReLU函數相比,Swish函數是非線性的,具有軟飽和性,魯棒性更好;與P-ReLU相比,Swish函數不需要計算參數,減少了計算量。因此, Swish激活函數的性能優于ReLU、L-ReLU和P-ReLU 函數。
3.1.2 Swish-FER-CNNs中的反向傳播算法
反向傳播算法可廣泛應用于深度學習梯度計算,其中包含前饋傳播和后饋傳播兩部分。激活函數是算法的重要組成部分。使用激活函數的前饋傳播模型可表示為:
(3)
其中表示節點,是所有父節點的集合,表示激活函數映射操作。
總而言之,反向傳播算法中激活函數影響模型的計算量,Swish激活函數對噪聲魯棒性較強,計算復雜度較低,從而提高反向傳播算法性能。
改進的反向傳播算法使用表示第層隱含層輸出值,表示激活函數的輸入值,包含所有參數(權值和偏置),為正則式,為總代價函數,表示當前位置梯度,表示梯度的更迭矢量,表示矩陣點積。算法對于每一層都生成了對激活函數輸入值的梯度,從輸出層向后計算梯度一直到第一個隱含層,生成的梯度可視為指導每層輸出該如何調整以減小模型誤差的依據,再根據以上產生的梯度可以計算得到對每層參數的梯度,從而實現代價函數向后傳播,詳細算法如下所示。
改進的反向傳播算法: |
|
3.2 Swish-FER-CNNs網絡模型
為適應Kaggle數據48*48灰度圖像,并進一步提高模型性能,本文優化了網絡結構,與改進的反向傳播算法相結合,構建了Swish-FER-CNNs深度學習模型。改進的網絡結構如表1所示。
表1 Swish-FER-CNNs網絡結構
type |
kernel |
stride |
pad |
output |
dropput |
input |
|
|
|
42*42*1 |
|
convolution1 |
3*3 |
1 |
1 |
42*42*16 |
|
convolution2 |
3*3 |
1 |
1 |
42*42*32 |
|
pooling1 |
3*3 |
2 |
|
20*20*32 |
|
convolution3 |
4*4 |
1 |
1 |
20*20*32 |
|
pooling2 |
3*3 |
2 |
|
10*10*32 |
|
convolution4 |
3*3 |
1 |
1 |
10*10*32 |
|
convolution5 |
3*3 |
1 |
1 |
10*10*64 |
|
pooling3 |
3*3 |
2 |
|
3*3*64 |
|
full-connected1 |
|
|
|
1*1*2048 |
0.45 |
full-connected2 |
|
|
|
1*1*1024 |
0.45 |
output |
|
|
|
1*1*7 |
|
相比Jeon的深度學習模型,Swish-FER-CNNs網絡模型多次使用了級聯的兩層3*3的卷積層替代Jeon使用的5*5卷積層,加深了網絡的層數,尺寸較小的過濾器可提取細化的特征,每層卷積后均激發Swish函數,使整體網絡的激活函數頻數增加,網絡的非線性擬合能力增強。
4 數據集
實驗采用的數據集為kaggle人臉情緒識別數據集——fer2013,該數據集由Pieere和Aaron在ICML2013研討會上發布,共由35887張人臉情緒圖片組成。其中,生氣的表情有4953張,厭惡547張,恐懼5121張,高興8989張,悲傷6077張,驚訝4002張,中性6198張。數據集由三個部分組成,第一部分為訓練集,包含28709張圖片。第二部分為驗證集,包含3589張圖片。第三部分為測試集,包含3589張圖片。
5實驗分析
實驗使用caffe[10]的深度學習框架,操作系統為ubuntu16.04,GPU為GTX1050Ti。訓練的學習率為0.001,動量為0.9,學習策略為SGD。Swish-FER-CNNs模型開始迭代后,測試準確率開始逐步增加,測試誤差逐步下降,之后趨于平穩,這說明模型的準確率達到模型的飽和狀態,訓練迭代次數選擇合理。訓練完成后,測試集準確率達到74.76%,測試誤差收斂到0.3168。訓練圖如下所示:
圖3 訓練準確率
圖4 訓練損失函數
采用訓練好的模型對測試數據集進行識別分類,7類表情的測試準確率使用公式計算:
(4)
其中表示各類情緒的識別準確率,表示第類中正確識別的個數,表示錯誤識別的個數,Swish-FER-CNNs學習模型對各類情緒識別的準確率如表2所示。
表2 Swish-FER-CNNs模型情緒識別準確率混淆矩陣
Swish-FER-CNNs |
Angry |
Disgust |
Fear |
Happy |
Sad |
Suprise |
Neutral |
Angry |
65.33 |
1.01 |
7.29 |
4.49 |
15.29 |
1.52 |
5.07 |
Disgust |
20.67 |
71.41 |
1.03 |
0.00 |
1.91 |
1.90 |
3.07 |
Fear |
9.1 |
1.15 |
53.31 |
1.80 |
19.01 |
7.05 |
8.59 |
Happy |
1.60 |
0.00 |
1.02 |
92.88 |
1.22 |
0.40 |
2.88 |
Sad |
6.0 |
0.00 |
1.02 |
5.01 |
68.42 |
0.73 |
18.82 |
Surprise |
2.10 |
0.00 |
8.01 |
1.92 |
1.92 |
85.75 |
0.30 |
Neutral |
2.01 |
0.90 |
1.50 |
7.50 |
12.11 |
12.10 |
73.02 |
由于kaggle數據集中各類別的情緒樣本不均勻,導致各類樣本在模型中的學習數據量不一致。因此,各個類別的分類效果不同。
將Jeon’s深度學習模型分別采用ReLU、L-ReLU、P-ReLU和Swish激活函數,與本文的Swish-FER-CNNs深度學習模型進行對比,結果如圖5所示。
圖5 各模型的測試混淆矩陣精度
如圖所示,分別使用ReLU、L-ReLU、P-ReLU、Swish激活函數,模型識別準確率依前述順序依次遞增。改進后的Swish-FER-CNNs深度模型,相較于使用Swish激活函數的Jeon’s深度學習模型,取得了更高的識別準確率。
為更直接地分析模型的性能,采用準確率ACC表示模型在測試集中識別的準確率,如下所示:
(5)
測試集中的人臉情緒分為種類別,采用表示某個類別中正確識別情緒的個數,表示該類別錯誤識別的個數。各方法識別情緒的準確率如表3所示。
表3 各方法識別準確率
模型 |
測試集的準確率 |
相較ReLU+Jeon’s準確率提高度 |
ReLU+Jeon’s |
70.74% |
-- |
L-ReLU+Jeon’s |
70.88% |
+0.14% |
P-ReLU+Jeon’s |
70.99% |
+0.25% |
Swish+Jeon’s |
73.54% |
+2.80% |
Swish-FER-CNNs |
74.76% |
+4.02% |
由表3可以得出,經過充分的迭代,在Jeon’s深度學習模型下,不同激活函數的識別準確率為:ReLU<L-ReLU<P-ReLU<Swish,因此Swish激活函數性能優于前三者。此外,Swish-FER-CNNs網絡模型與基于Swish等激活函數的Jeon’s深度學習模型相比,具有更高的識別準確率。
5 結論
研究了激活函數的性能和網絡結構的特性,采用性能優良的Swish激活函數改進反向傳播算法,并使用能夠提取細化特征的多層小尺寸卷積模塊,改進了網絡結構,構建了人臉情緒識別深度學習模型Swish-FER-CNNs。新模型相比現存模型提高了人臉情緒識別準確率。雖然Swish激活函數提高了識別準確率,但是模型的收斂時間相對較長,構建識別準確率高但收斂快的激活函數將是下一步的研究方向。
參考文獻
[1] Giannopoulos P, Perikos I, Hatzilygeroudis I. Deep learning approaches for facial emotion recognition: A case study on FER-2013[M]//Advances in Hybridization of Intelligent Methods. Springer, Cham, 2018: 1-16.
[2] Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift[J]. arXiv preprint arXiv:2015,1502.03167.
[3] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
[4] Jeon J, Park J C, Jo Y J, et al. A real-time facial expression recognizer using deep neural network[C]//Proceedings of the 10th International Conference on Ubiquitous Information Management and Communication. ACM, 2016: 94.
[5] LeCun Y, Boser B E, Denker J S, et al. Handwritten digit recognition with a back-propagation network[C]//Advances in neural information processing systems. 1990: 396-404.
[6] Ramachandran P, Zoph B, Le Q V. Searching for activation functions[J]. arXiv preprint arXiv:2017,1710.05941.
[7] Xu B, Wang N, Chen T, et al. Empirical evaluation of rectified activations in convolutional network[J]. arXiv preprint arXiv:1505.00853, 2015.
[8] Maas A L, Hannun A Y, Ng A Y. Rectifier nonlinearities improve neural network acoustic models[C]//Proc. icml. 2013, 30(1): 3.
[9] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1026-1034.
[10] Jia Yangqing, Shelhamer E, Donahue J, et al. Caffe: Convolutional architecture for fast feature embedding[C]//Proceedings of the 22nd ACM international conference on Multimedia. ACM, 2014: 675-678.
第一作者簡介:
王靈矯(1971-),男,四川西充人,副教授/博士,研究方向為計算機視覺與人工智能。
第一作者聯系方式:
E-
地址:湖南省湘潭市雨湖區羊牯塘社區湘潭大學信息工程學院南樓607
第二作者簡介:
李乾(1993-),男,湖南湘潭人,碩士研究生,研究方向為計算機視覺與深度學習。
第三作者簡介:
郭華(1976-),女,四川岳池縣人,碩士,高級實驗師,研究方向為信號與信息處理。