王晗,王坤俠
(安徽建筑大學(xué) 電子與信息工程學(xué)院,安徽 合肥230601)
情感識別是人工智能、人機交互以及模式識別和數(shù)字信號處理領(lǐng)域的研究熱點,也是基于情感計算領(lǐng)域的一個重要分支。1997年由MⅠT媒體實驗室Picard教授提出情感計算是一種對于情感的研究方式之一,其目的是通過賦予計算機識別、理解、表達(dá)和適應(yīng)人的情感的能力來建立和諧人機環(huán)境,并使計算機具有更高的、全面的智能。隨著科學(xué)技術(shù)的發(fā)展,人們對人工智能的要求也越來越高,如何使人與計算機無縫隙交流也越來越受人們關(guān)注。情感作為交流的基礎(chǔ),在人機交互的過程中發(fā)揮著越來越重要的作用。面部表情[1,2]和語音[3,4]情緒識別系統(tǒng)相對成熟。然而,這兩種方式都是非生理信號,并不能直接反映人類的內(nèi)在心理狀態(tài)。與面部圖像和語音[5,6]相比較,生理信號(皮膚電反應(yīng)(galvanic skin response, GSR)[7]、心電圖(electrocardiogram,ECG)[8]、腦電圖(electroencephalogram,EEG)[9])更能直接的表達(dá)人的情感。例如用人體的GSR[10]分析判斷人的精神壓力水平,并且多模態(tài)的生理信號比單一的生理信號能更加準(zhǔn)確的識別出相應(yīng)的情感[11]。故越來越多的學(xué)者們使用多模態(tài)生理信號進行情感識別,但同時也有其不足之處。多模態(tài)生理信號通常具有較高的維度,高維度的特征集含有噪聲數(shù)據(jù),從而影響情感識別的結(jié)果。因此,為獲得影響因子較大的特征,需要對特征集進行選擇。
本文分為三部分進行敘述,首先對前人的工作進行介紹,接著再敘述實驗中的模型框架,最后用分類器對 No emotion/中立,Anger/憤怒,Hate/憎恨 ,Grief/悲 傷 ,Platonic love/愛 情 ,Romantic Love/浪漫的愛情,Joy/快樂和Reverence/尊敬這8種情感進行識別。
生理信號包含著人類情感中許多的信息,具有重大的研究意義。生理信號是由人的神經(jīng)系統(tǒng)和內(nèi)分泌系統(tǒng)調(diào)控的,能直接反映人類的真實情感,且在情感識別過程中很大程度上減少其它因素的干擾。先前研究工作提出了許多有效的生理特征。例如Kurniawan H等人[12]提取GSR的峰高的平均值,最小值,最大值和標(biāo)準(zhǔn)偏差等特征來對人體的壓力情況進行檢測。Kim J等[13]人在2008年時使用了一種音樂感應(yīng)方法并且用肌電圖(Electromyogram,EMG),ECG,GSR 和呼吸(respiration,RSP)的參數(shù)去進行情感研究;Bhandari等[14]人在2015年時用GSR,心率變異性和RSP去研究生物反饋游戲中放松技能轉(zhuǎn)移的生理方式;Tengfei Song等[15]人提出了一種新的注意力長的短期記憶(A-LSTM)方法來提取EEG,ECG,GSR和RSP的辨別特征,從而提高實驗結(jié)果的準(zhǔn)確率。多模態(tài)生理信號雖然能提高情感識別的準(zhǔn)確率,但同時也增加了特征集的維度。高維度的特征集在識別過程中提高了計算機的復(fù)雜度,花費了較大的計算機開銷。為了解決這一問題,本文提取血容量搏動(Blood volume pulse,BVP)信號,肌電信號,呼吸信號和GSR生理信號的平均值,標(biāo)準(zhǔn)偏差,一階差值的絕對值的平均值,歸一化信號的一階差值的絕對值的平均值,二階差值的絕對值的平均值,歸一化信號的二階差值的絕對值的平均值,采用SFS特征選擇來選取影響因子較大的特征,分別采用K近鄰(KNN)和支持向量機(SVM)作為分類器,進行生理信號的情感特征選擇與識別。
在本文中,我們構(gòu)建一個用于BVP、EMG、RSP和GSR這四種生理信號情感識別系統(tǒng)框架。該系統(tǒng)的框圖如圖1所示。該系統(tǒng)由三個模塊組成,分別是特征提取,特征選擇和分類。
本文分別提取BVP、EMG、RSP和GSR四種生理信號的六個統(tǒng)計特征。設(shè)Xn表示GSR原始信號的第n個樣本的值,其中n=1……2000,N=2000,ux和σx是 X 的平均值和標(biāo)準(zhǔn)偏差,X?n是數(shù)據(jù)X歸一化,δx和rx分別是X的一階差值的絕對值的均值和二階差值的絕對值的均值,δ?x和r?x是X歸一化后的一階差值的絕對值的均值和二階差值的絕對值的均值。如公式(1)~式(7)所示。
該數(shù)據(jù)集中包括4種生理信號和8種情感狀態(tài)的測量值,連續(xù)采集20天。實驗中分別提取4種生理信號中每種情緒的6個統(tǒng)計特征,故共有24個統(tǒng)計特征,160個樣本。
圖1 多模態(tài)生理信號實驗框架圖
特征選擇是為了剔除特征集中不相關(guān)或冗余的特征,從而達(dá)到減少特征個數(shù),提高模型精確度,減少程序運行時計算機開銷的目的。特征選擇的過程一般分為四個部分,分別是產(chǎn)生過程、評價函數(shù)、停止準(zhǔn)則和驗證過程。
本文中選取了啟發(fā)式搜索的序列前向選擇(SFS,Sequential Forward Selection)算法進行特征選擇。該算法避免了簡單的窮舉式搜索的缺點,減少了巨大的計算開銷。序列前向選擇(SFS)是一種簡單的貪心算法。特征子集Y從空集開始,每次選擇一個特征x加入特征子集Y,使得特征函數(shù)J(Y)最優(yōu)。其中只能加入特征而不能去除特征。在該實驗中,使用封裝器對特征選擇后的特征子集進行評價。其中SFS算法的步驟如下:
第一步 數(shù)據(jù)歸一化、標(biāo)準(zhǔn)化。
第二步 建立空的特征子集Y0={}?。第三步 選擇一個特征x使J( )Yk+x最優(yōu),記作
第四步 更新特征子集Y。將x+加入特征子集 Y 中,記作Yk+1=Yk+x+,k=k+1。
第五步 循環(huán)執(zhí)行。轉(zhuǎn)置執(zhí)行第三步,直至特征集X中所有特征都被遍歷。
分類器依據(jù)樣本集是否有標(biāo)簽分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)。有監(jiān)督學(xué)習(xí)通過標(biāo)記的訓(xùn)練數(shù)據(jù)推斷出分類函數(shù),在用分類函數(shù)將新樣本映射到對應(yīng)的標(biāo)簽。非監(jiān)督學(xué)習(xí)指的是給予分類器學(xué)習(xí)的樣本但沒有相對應(yīng)類別標(biāo)簽,主要是尋找未標(biāo)記數(shù)據(jù)中的隱藏結(jié)構(gòu)。在監(jiān)督學(xué)習(xí)方式中,每個訓(xùn)練樣本包括訓(xùn)練樣本的特征和相對應(yīng)的標(biāo)簽。
本文選取支持向量機(Support Vector Machine,SVM)和 K 近鄰(K-Nearest Neighbor algorithm,KNN)作為分類器。SVM是一類按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進行二元分類的廣義線性分類器,其決策邊界是對學(xué)習(xí)樣本求解的最大邊距超平面。假設(shè) X={X1,X2,…,XN}是輸入數(shù)據(jù),Y={y1,y2,…,yN}是 X 對應(yīng)的標(biāo)簽,Xi={x1,x2,…,xn}是Xi的特征集。
若yi∈{-1,1},則是線性支持向量機。需要找到一個超平面wT*X+b=0將對應(yīng)的標(biāo)簽區(qū)分開來。故:
由公式(8)(9)可得:
對于非線性支持向量機,要選取相應(yīng)的核函數(shù),本實驗中,選取RBF函數(shù)作為SVM的核函數(shù)。RBF的公式如下:
KNN是通過測量不同特征值之間的距離進行分類。KNN和SVM不同,SVM是在接收測試數(shù)據(jù)會根據(jù)訓(xùn)練數(shù)據(jù)訓(xùn)練出來的分類模型進行分類。而KNN會在接受到訓(xùn)練數(shù)據(jù)后,只是對訓(xùn)練數(shù)據(jù)進行簡單的存儲,并不構(gòu)造分類模型,在接受到測試數(shù)據(jù)時,KNN通過計算測試數(shù)據(jù)與所存儲訓(xùn)練數(shù)據(jù)之間的距離,選擇前K個距離測試數(shù)據(jù)X最近的數(shù)據(jù),并將這K個距離最近的數(shù)據(jù)中出現(xiàn)次數(shù)最多的類屬性賦給這個測試數(shù)據(jù)X。
本實驗中,選取歐氏距離作為KNN的距離計算函數(shù)。兩個n維向量a=(xi1,xi2,…,xin)與b=(xj1,xj2,…,xjn)間的歐氏距離為dij,公式如下:
K折交叉驗證(K-fold cross-validation)是將數(shù)據(jù)分成K份,輪流選取其中的K-1份數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),1份作為測試數(shù)據(jù),進行實驗。對K次實驗結(jié)果的正確率取均值作為最終的實驗結(jié)果的識別率。
為了研究SFS的性能,在DataSetⅠ數(shù)據(jù)集進行驗證。本文中分別提取BVP,EMG,RSP和GSR 四種生理信號的ux、σx、δx、δ?x、rx和r?x六個統(tǒng)計特征,進行單模態(tài)生理信號驗證和多模態(tài)生理信號驗證。
MⅠT情感生理數(shù)據(jù)庫是Picard教授領(lǐng)導(dǎo)MⅠT多媒體情感計算研究研究小組連續(xù)20天每天采集32組生理數(shù)據(jù)[16]。該DataSet Ⅰ數(shù)據(jù)集中包括四種生理信號和八種情感狀態(tài)的測量值。實驗者每天同一時間坐在安靜的空間里,在電腦提示系統(tǒng)的引導(dǎo)下,嘗試體驗8種情感狀況,并實時記錄實驗者的4種生理信號。所有數(shù)據(jù)的采樣頻率為20 Hz,采樣時間為 100 s。
實驗是在DataSetⅠ數(shù)據(jù)庫上進行的,分別對每種生理信號提取六個統(tǒng)計特征,對每種生理信號用SVM分類器進行情感識別。實驗結(jié)果如圖2所示。從圖2中可以看出,(1)在用統(tǒng)計特征進行情感識別時BVP和RSP識別率效果最好,進行特征選擇之后,EMG的識別率最好;(2)多模態(tài)的生理信號的識別效果比單一生理信號識別效果好;(3)在對特征集進行特征選擇后,識別率都有顯著的提高。
圖2 DataSetI庫SVM情感識別率實驗結(jié)果
實驗在DataSet Ⅰ生理數(shù)據(jù)庫上對每種情感提取6個統(tǒng)計特征,故同一天中每種情感能夠提取24個統(tǒng)計特征。經(jīng)過SFS特征選擇之后,特征矩陣由160*24維度降成160*3維度,選取了160*24維中的第1列、第7列和第22列。最后分別使用SVM和KNN對160*3維的特征集分類。分類結(jié)果如圖3所示,從圖中可以看出,經(jīng)過SFS特征選擇后,用SVM分類器分類的識別率比之前高了約28%,KNN分類器分類的識別率比之前高了約17%。
圖3 不同分類器的情感識別結(jié)果
將本文方法同近年來學(xué)者們所提出的其他方法進行比較,例如文獻[16]中DataSet Ⅰ的特征集進行特征選擇時選用的方法是SFFS、Fisher和SFFSFP這三種算法,在DataSetⅠ數(shù)據(jù)集的識別結(jié)果進行對比,對比結(jié)果如表1所示。由表1的對比結(jié)果可知,同其它方法相比,本文方法有較好的識別效果。
表1 與文獻[14]中DataSet I識別率比較
本文利用BVP,EMG,RSP和GSR4種生理信號的每種6個統(tǒng)計特征去探索與8種情感之間的聯(lián)系,通過SFS特征選擇之后,最后用SVM和KNN對中立,憤怒,憎恨,悲傷,愛情,浪漫的愛情,快樂和尊敬這8種情感進行識別,達(dá)到了比較理想的狀況。實驗證明,采用SFS特征選擇后,情感識別率大大提高了,說明SFS能夠提取質(zhì)量較優(yōu)的特征,同時降低了特征集的維度,減少計算機的開銷。