賈巧妹,胡景釗,鄭佳賓,王 晨,張麗麗,趙晨宇,吳東亞,馮 筠, 2
(1.西北大學(xué) 信息科學(xué)與技術(shù)學(xué)院,陜西 西安 710127;2.新型網(wǎng)絡(luò)智能信息服務(wù)國家地方聯(lián)合工程研究中心,陜西 西安 710127)
情緒是人類生活中很重要的一部分,在人機交互領(lǐng)域,人們希望計算機有一定的能力去識別人類的情緒,理解并幫助他們[1]。近年來,研究人員在情緒識別技術(shù)上進行了廣泛的研究[2],目前的情緒識別主要是通過對語音[3]、面部表情[4]、生理信號[5]和姿態(tài)[6]等信息分析并識別主體的情感。但由于人們可能會掩飾自己的情緒,因此使用語音、面部表情和姿態(tài)對情感識別含有一定的主觀性。而生理信號可以客觀反應(yīng)人的情緒,與眼電、心電等生理信號相比,腦電(electroencephalography,EEG)可以直接準確地反應(yīng)人類的情緒[7]。因此,本文重點聚焦于使用腦電進行情緒識別。
傳統(tǒng)采用腦電進行情緒識別的方法主要是提取腦電的時間、頻率或時頻域特征,如微分熵(DE)特征、譜密度(PSD)和小波熵[8]等,然后使用機器學(xué)習(xí)模型進行情緒分類,如支持向量機(SVM)。近年來,隨著深度學(xué)習(xí)的發(fā)展,越來越多的研究人員將深度學(xué)習(xí)用于腦電情緒識別,以更好地挖掘腦電潛在的情緒特征[9]。尤其是卷積神經(jīng)網(wǎng)絡(luò)(CNN)和長短期記憶網(wǎng)絡(luò)(LSTM)尤其被廣泛應(yīng)用于腦電情緒識別[10]。使用端到端的深度神經(jīng)網(wǎng)絡(luò)則可以對直接輸入的腦電數(shù)據(jù)進行情感識別,無需手動提取腦電的情感特征。一些研究者還將機器學(xué)習(xí)和深度學(xué)習(xí)結(jié)合起來用于腦電情緒識別,例如將深度神經(jīng)網(wǎng)絡(luò)與bagging或boost算法結(jié)合起來以獲得更好的識別性能[11]。
傳統(tǒng)的機器學(xué)習(xí)方法依靠專家知識手動提取特征,而深度學(xué)習(xí)方法可以對直接輸入的腦電進行分析識別情緒,并且盡可能多地挖掘腦電中含有的情感信息[12]。雖然深度學(xué)習(xí)方法較傳統(tǒng)的機器學(xué)習(xí)方法有一定的識別性能,但使用腦電進行情緒識別的準確率仍然不高。為了提高基于腦電的情緒識別準確性,一些研究者采用了遷移學(xué)習(xí)的方法[13]。腦電的低信噪比(SNR)[14]、非平穩(wěn)性以及受試者之間情緒表達方式的不同,都會導(dǎo)致從不同受試者甚至單個受試者采集腦電的特征存在差異。這些因素均會造成深度網(wǎng)絡(luò)提取的腦電樣本特征的非均勻分布,導(dǎo)致模型過擬合[15-16]。
本文針對以上問題提出了一種雙策略訓(xùn)練方法來識別情緒。該方法通過在模型學(xué)習(xí)推理過程中動態(tài)地調(diào)整腦電特征的權(quán)重,提高腦電情緒識別模型的泛化能力。
許多研究者已經(jīng)使用腦電來識別情緒,目前在提取腦電的情緒特征和運用機器學(xué)習(xí)方法或深度學(xué)習(xí)方法對情感分類的研究取得了一定的進展。還有一些研究者使用原始腦電作為網(wǎng)絡(luò)的輸入進行情緒識別。
Wang等人提取了3種腦電特征,分別是功率譜、小波變換和非線性動力學(xué)分析(nonlinear dynamical analysis),然后通過線性動態(tài)系統(tǒng)(LDS)對特征進行平滑處理,去除與任務(wù)無關(guān)的噪聲,并使用支持向量機(SVM)進行分類[17]。Aggarwal等人提取了腦電的9個統(tǒng)計特征,如均值、方差等,用于情緒分類,并探討了XGBoost和LightGBM兩種提升方法對腦電情緒識別的影響[18]。Wang等人提出了一個三維卷積神經(jīng)網(wǎng)絡(luò)EmotioNet,它使用原始腦電作為網(wǎng)絡(luò)的輸入,該網(wǎng)絡(luò)可以自動提取腦電的時空特征用于情緒識別[19]。Huang等人提出了一個集成卷積神經(jīng)網(wǎng)絡(luò)(ECNN)用于提取腦電和周圍生理信號的有效特征,5種不同架構(gòu)的CNN被用于腦電情感識別,最后,使用集成學(xué)習(xí)對多個網(wǎng)絡(luò)的預(yù)測進行投票得到最終結(jié)果,從而提高了模型的性能[20]。
在上述工作中,腦電情緒識別一般使用機器學(xué)習(xí)和深度學(xué)習(xí)方法。本文中使用雙策略方法訓(xùn)練ScalingNet,以提高腦電情緒識別模型的泛化性能,ScalingNet是一種用于腦電情緒識別的端到端卷積神經(jīng)網(wǎng)絡(luò)[21],雙策略訓(xùn)練方法見圖1。實驗結(jié)果表明,與以往工作相比,本文方法在腦電情緒識別方面具有更好的性能。
圖1 雙策略訓(xùn)練方法Fig.1 Bi-strategy training method
為了解決腦電樣本情緒特征分布不均勻而引起模型過擬合的問題,本文提出了一種將boost算法和梯度下降法相結(jié)合的雙策略訓(xùn)練方法來訓(xùn)練腦電情緒識別模型。
本文提出的雙策略訓(xùn)練方法通過數(shù)據(jù)驅(qū)動的方法動態(tài)調(diào)整情緒腦電樣本特征分布,以提高腦電情緒識別模型的泛化性能。
如圖1所示,該方法的輸入是情緒腦電數(shù)據(jù)集。ScalingNet是一種端到端的腦電情緒識別神經(jīng)網(wǎng)絡(luò),作為該方法的分類器。首先,初始化輸入的情緒腦電數(shù)據(jù)集的樣本權(quán)重,并隨機初始化第1代分類器(1st ScalingNet)的網(wǎng)絡(luò)參數(shù);其次,利用初始化后的加權(quán)腦電樣本訓(xùn)練第1代分類器,基于梯度下降法迭代更新一趟網(wǎng)絡(luò)參數(shù);然后,依據(jù)boost算法更新腦電樣本權(quán)重,并且訓(xùn)練第2代分類器,其網(wǎng)絡(luò)參數(shù)繼承自上一代分類器訓(xùn)練后得到的情緒識別模型。循環(huán)上述過程,迭代訓(xùn)練多個分類器,直至觸發(fā)停機準則。
本文采用AdaBoost中SAMME的變體SAMME.R算法,SAMME.R算法使用概率預(yù)測真實值[22]。梯度下降法采用Adam(adaptive moment estimation)算法[23]。
以ScalingNet作為分類器,隨機初始化第1代分類器的網(wǎng)絡(luò)參數(shù)。假設(shè)輸入的情緒腦電數(shù)據(jù)集為X={x1,x2,…,xn},對應(yīng)的情緒類別標(biāo)簽為Y={y1,y2,…,yn},其中,n是情感腦電數(shù)據(jù)集的樣本數(shù),xi是第i個樣本,是s×d維的向量,s是采樣點數(shù),d是腦電通道數(shù),并且yi是第i個樣本的標(biāo)簽。假設(shè)輸入情緒腦電數(shù)據(jù)集的腦電樣本權(quán)重為{w1,w2,…,wn},其中,wi為第i個樣本的權(quán)重。初始化腦電樣本權(quán)重為wi=1/n。第j個分類器輸入的腦電樣本權(quán)重向量為Wj={wi},j=1,2,…,m,m是訓(xùn)練的分類器數(shù)量。
(1)
算法1雙策略訓(xùn)練算法
輸入 情緒腦電數(shù)據(jù)集X,類別標(biāo)簽Y,分類器ScalingNet
輸出 泛化性能最好的腦電情緒識別模型
1) 隨機初始化ScalingNet的網(wǎng)絡(luò)參數(shù),令j=1,即第1代分類器。
2) isStop=False
3) while not isStop do
4) ifj=1 then
5) 初始化輸入腦電數(shù)據(jù)的樣本權(quán)重為W1={wi=1/n},其中,i=1,2,…,n,n是樣本數(shù),并訓(xùn)練第1代分類器,依據(jù)Adam算法迭代更新一趟網(wǎng)絡(luò)參數(shù)。
6) else
7) 第j代分類器的網(wǎng)絡(luò)參數(shù)繼承第j-1代分類器。訓(xùn)練第j代分類器,依據(jù)Adam算法迭代更新一趟網(wǎng)絡(luò)參數(shù)。
8) 樣本權(quán)重公式(7)更新為Wj+1={wi}。
9) 保存第j代分類器,并且獲得泛化性能最好的分類器為第j代分類器。
10) 判斷是否滿足停機準則,滿足則isStop=True
11)j=j+1
基于計算出的加權(quán)損失L,采用Adam算法對分類器的網(wǎng)絡(luò)參數(shù)進行更新使損失最小化,
(2)
(3)
(4)
其中:mt是偏差一階矩估計;ut是偏差二次原始矩估計;β1和β2是時間步長t時的指數(shù)衰減率估計,
mt=β1mt-1+(1-β1)gt,
(5)
(6)
其中:gt是相對于θ的損失函數(shù)的梯度,即gt=θL(θt-1);L(θt-1)是損失函數(shù);β1=0.9;β2=0.999。
然后,根據(jù)AdaBoost中的SAMME.R算法更新腦電樣本權(quán)重,訓(xùn)練下一代分類器,
(7)
其中:wi是第i個樣本的權(quán)重;l為學(xué)習(xí)率;Pj(xi)是第i個樣本對應(yīng)的第j個分類器的輸出預(yù)測概率。
輸入到第2代分類器(2nd ScalingNet)的腦電樣本權(quán)重可以從式(7)中獲得。第2代分類器繼承了第1代分類器的網(wǎng)絡(luò)參數(shù),而不需要從頭開始訓(xùn)練網(wǎng)絡(luò)。腦電樣本權(quán)重根據(jù)式(7)進行更新,以訓(xùn)練第3代分類器(3rd ScalingNet)。綜上,依次迭代訓(xùn)練多代分類器,具體過程如算法1所示。
本文中使用的ScalingNet是一個用于腦電情緒識別的端到端的神經(jīng)網(wǎng)絡(luò)架構(gòu)。如圖2所示,ScalingNet有3個部分。第1部分是縮放層,通過多核卷積提取類頻譜特征圖,然后,將特征圖堆疊成三維張量;第2部分是進行特征圖變換的3層卷積層;第3部分是全局平均池化層和一個線性層,特征圖經(jīng)過這部分進行情緒分類。
圖2 ScalingNet網(wǎng)絡(luò)架構(gòu)Fig.2 ScalingNet architecture
Adam算法用來更新ScalingNet的網(wǎng)絡(luò)參數(shù)使損失函數(shù)最小化,交叉熵損失作為損失函數(shù)。本文在交叉熵損失中引入了腦電樣本權(quán)重,如式(7)所示。
本文使用DEAP數(shù)據(jù)集[24]驗證所提方法的有效性。DEAP數(shù)據(jù)集是一個包含腦電的多模態(tài)情感數(shù)據(jù)集,一共有32名受試者,每個受試者觀看40個視頻,每個視頻時長為1 min,當(dāng)受試者觀看視頻時,采集他們32通道的腦電信號。每個樣本數(shù)據(jù)長為63 s,其中,前3 s為基線信號,是觀看視頻的前3 s。在觀看視頻后,受試者按照9分制對效價(valence)、喚醒(arousal)和優(yōu)勢度(dominance)3個方面進行評分,通過這3個維度對人的情緒進行量化。
對腦電信號以128 Hz進行重采樣,將后60 s的腦電信號減去前3 s基線信號均值,做基線校正處理,減少基線漂移。根據(jù)效價、喚醒和優(yōu)勢度3個維度的得分,以5作為閾值,小于5的為0類,大于或等于5的為1類,將任務(wù)抽象為3個二元分類問題。本文輸入數(shù)據(jù)集的大小為1 280×7 680×32(試次×采樣點數(shù)×通道數(shù)), 其中, 1 280為32×40(受試者數(shù)×視頻數(shù)),7 680為60×128(腦電數(shù)據(jù)時長×采樣率)。
實驗通過五折交叉驗證的方法評估本文所提方法在腦電情緒識別上的性能,五折的平均分類準確率作為最終的情緒識別結(jié)果。本文方法在腦電情緒識別模型訓(xùn)練過程中設(shè)置的重要參數(shù)如表1所示。本文所提方法使用PyTorch框架實現(xiàn),所有實驗都在Geforce RTX 2080 Ti上進行。
表1 本文所提方法的參數(shù)
將本文所提方法與已有研究的性能進行比較。同時,在基線模型ScalingNet上使用Focal Loss[25]進行比較實驗,并與本文方法進行對比,結(jié)果如表2所示。本文方法在效價、喚醒和優(yōu)勢度上的準確率分別達到了71.25%、 71.48%和71.80%, 優(yōu)于其他對比研究。 與Hu等人提出的基線模型ScalingNet[21]相比, 本文方法在效價、 喚醒和優(yōu)勢度上的準確率分別提高了0.001 2,1.014 9和0.010 2。
表2 本文方法的實驗結(jié)果與已有研究的比較
在進行腦電情緒識時, 大多數(shù)研究都沒有考慮到情緒腦電樣本特征非均勻分布所導(dǎo)致的腦電情緒識別模型泛化性能差的問題。 本文結(jié)合了兩種訓(xùn)練策略, 交替更新腦電情緒識別模型, 以調(diào)整樣本特征分布, 進而提高模型的泛化性能。 本文方法通過先驗概率有效調(diào)整了腦電樣本特征的分布。
為進一步探討本文方法是否有效地調(diào)整了情緒腦電樣本特征的分布,使用t-SNE[31]可視化網(wǎng)絡(luò)最后一層的特征表示,如圖3所示為不同訓(xùn)練階段即不同代分類器的可視化結(jié)果,網(wǎng)絡(luò)訓(xùn)練過程中不斷調(diào)整樣本權(quán)重使其特征分布更均勻。圖4為不同方法在DEAP數(shù)據(jù)集上的可視化特征表示,可以觀察到,ScalingNet+Focal Loss并不能有效地調(diào)整情緒腦電樣本特征分布,因為ScalingNet+Focal Loss和基線模型ScalingNet腦電樣本特征都存在分布不均勻的問題。當(dāng)情緒腦電樣本特征非均勻分布時,網(wǎng)絡(luò)訓(xùn)練產(chǎn)生的情緒分類的決策邊界將很復(fù)雜,復(fù)雜的決策邊界可能會將訓(xùn)練數(shù)據(jù)集中的類別完全分開,導(dǎo)致測試樣本容易被錯誤分類,并造成模型的過擬合。與基線模型和Scaling Net+Focal Loss相比,在可視化結(jié)果表面,本文方法有效地調(diào)整了腦電樣本特征的分布,使特征分布更加均勻。在這種情況下,生成的決策邊界更加平滑,模型的泛化性能將得到改善。
圖3 本文方法在不同訓(xùn)練階段的可視化特征表示Fig.3 Visual feature representation of our method at different training stages
圖4 不同方法在DEAP數(shù)據(jù)集上的可視化特征表示Fig.4 Visualization of feature representation of different method on DEAP dataset
根據(jù)本文方法的特點,依據(jù)是否繼承上一代分類器的網(wǎng)絡(luò)參數(shù),以及是否更新情緒腦電樣本權(quán)重進行情緒識別,進行了模型消融實驗,結(jié)果如表3所示。模型1即為本文所提出的方法,分別比較模型1和3、模型2和4,由實驗結(jié)果可以看出,更新樣本權(quán)重可以有效地提高腦電情緒識別模型的泛化性能。從模型1和2、模型3和4的對比結(jié)果可以看出繼承網(wǎng)絡(luò)參數(shù)的重要性。網(wǎng)絡(luò)參數(shù)的繼承有助于當(dāng)前網(wǎng)絡(luò)在學(xué)習(xí)過程中獲得上一代網(wǎng)絡(luò)的情緒信息,有利于情緒識別。通過在學(xué)習(xí)推理過程中更新情緒腦電樣本權(quán)重,可以動態(tài)調(diào)整情緒腦電樣本特征分布,以提高腦電情緒識別模型的泛化性能。綜上所述,在模型消融實驗中,模型1具有最佳的泛化性能。
表3 模型消融實驗對比Tab.3 Model ablation experiments comparison
本文提出了一種用于非均勻腦電情緒識別的雙策略訓(xùn)練方法。 在模型的訓(xùn)練過程中, 采用梯度下降法更新腦電情緒識別模型的網(wǎng)絡(luò)參數(shù), 采用boost算法更新情緒腦電樣本的權(quán)重, 以調(diào)整腦電樣本特征的分布。 實驗表明, 與已有研究相比, 本文方法具有更好的情緒識別性能。 并且通過t-SNE可視化特征表示的結(jié)果表明,與基線模型ScalingNet+Focal Loss相比,本文方法有效地調(diào)整了情緒腦電樣本特征的分布。通過調(diào)整樣本特征分布,提取更魯棒的情緒腦電圖特征,提高了腦電情緒識別模型的泛化性能。為使用腦電進行情緒識別的實際應(yīng)用提供了更大的可能性,今后將結(jié)合更多的訓(xùn)練策略,進一步探索腦電情緒識別模型的訓(xùn)練方法。