滕凱迪,趙 倩,譚浩然,鄭金和,董宜先,單洪芳
(曲阜師范大學 工學院,日照 276826)
情緒作為人的一種生理與心理狀態,蘊藏著性格喜好、身心狀態等諸多有價值的信息[1].情緒識別與日常生活的諸多領域都有很大聯系,例如在醫療護理方面,通過情緒識別可以獲取表達障礙患者的情緒狀態,為深入探究抑郁癥、焦慮癥等的生理、病理機制提供了指南,有助于醫生對患者進行相應的治療使患者情緒向正性情緒和積極情感調節轉化[2].白芷嫣等人[3]研究發現部分時間段的腦電信號的Alpha、Beta 頻段具有可識別抑郁情緒傾向的特征值.在交通出行方面,情緒識別可用于實時監測司機或者飛行員的情緒變化信息,當駕駛人員處于憤怒、焦慮、極度興奮等不穩定情緒狀態時,系統可以及時預警從而防止交通事故的發生,有利于出行安全,同時也可以播放調節駕駛員情緒的音樂,提升駕駛體驗[4].在教育教學方面,通過實時監測并分析學生的情緒狀態可以判斷其學習時的興趣程度及疲勞程度,從而適當的調整教學內容和進度,達到更好的學習效果.
傳統的情緒識別大多基于易于獲取的人體面部表情、語音信號等身體表現[5].情緒的面部表情表現是指人們將情緒的內在心理狀態通過面部表情外在表現出來,例如人在情緒愉悅時嘴角會朝外朝上擴展,憤怒時會皺眉、眼睛變狹窄等.Shan 等人[6]采用局部二進制模式(local binary pattern,LBP)提取了面部表情圖像的紋理特征,然后采用SVM 分類器進行情緒識別.情緒的語音表現是指人們根據情緒的變化展現出不同的語言、語調表達形式,例如人在高興狀態時語調會比較輕松歡快,悲傷時語調會低沉壓抑.紀正飚等人[7]提取了語音信號的基音頻率、短時能量、短時幅度和短時過零率4 個特征參數后訓練了KNN 分類模型進行情緒識別.朱藝偉等人[8]提出了一種基于軌跡的時空特征的語音情緒識別方法.然而這些非生理信號的有效性和準確識別性在實際應用中有時難以保證[9],因為人的面部表情可以偽裝,例如人在悲傷時也能微笑等,另外對于情緒表達障礙者來說,獲取他們的非生理信號往往難以實現.腦電信號(electroencephalogram,EEG)反映了大腦神經元細胞的活動節律,不易受個體主觀意識控制,能夠客觀綜合地反映人體生理活動信息與心理認知狀態信息[10],對研究情緒狀態分類具有重要意義.Khalil 等人[11]在研究中證實了腦電信號在情緒識別中的表現優于其他生理信號.
近年來,隨著機器學習的廣泛應用,腦電信號研究已經獲得了前所未有的技術進步,許多學者提出了基于統計機器學習方法的分類模型,具有較好的非線性逼近能力,主要有支持向量機、K 近鄰、人工神經網絡(artificial neural networks,ANN)和隨機森林(random forest,RF)等算法.在情緒識別方面,Liu 等人[12]提取了DEAP 數據集的時域、頻域、時頻域和多電極的特征,選用K 近鄰作為二分類器,最后得到愉悅度(valence)和喚醒度(arousal)平均準確率分別為66.3%和68.4%.王鳳等人[13]在自采集的腦電數據集中提取了誘發腦電中晚期正電位特征,使用SVM 分類器進行腦電情緒三分類實驗,平均識別率超過60%.Arnau-Gonzalez 等人[14]在對DEAP 數據集上提取了每個通道各頻段的相對能量、對數相對能量、功率譜以及互信息等特征,經過降維后使用Sigmoid 核函數的SVM 進行分類,愉悅度和喚醒度平均準確率分別可達66.7%和69.6%.李娟等人[15]利用共空間模式算法對自采集的EEG 進行特征提取并用SVM 分類,得到視頻刺激的識別率為88.97%,高于圖像刺激79.24%的識別率.Li 等人[16]在腦電情緒識別實驗中,提取了峰-峰平均值、均方值、排列熵、Hjorth 參數等18 種特征,使用SVM 分類器對SEED 數據集做了分類實驗,平均識別率可達83.3%.張俊曉等人[17]運用卷積神經網絡(convolutional neural network,CNN)在輸出層對自采集的16 個通道的腦電數據實現正面和負面情緒的分類,最后FP2 通道(右額葉區)的平均識別率為83.0%,FP1 通道(左額葉區)的平均識別率為74.6%.Chen 等人[18]在DEAP 數據集上計算每段alpha和beta的能量、能量比率、Hjorth 參數等9 個特征,采用RF 作為分類器,最終平均正確識別率為70.04%.目前來看,使用以上單一算法對腦電情緒進行識別的準確率不夠理想,因為單一算法容易存在自身難以克服的缺陷,如SVM 對超平面附近點易錯分,K 近鄰對樣本的分布是否平衡較敏感且數據集較大時訓練時間復雜度高,ANN的網絡結構難以確定,RF的計算成本和時間復雜度高等.為此,本文基于組合理論,充分結合SVM 分類器對距離超平面較遠的樣本識別率高和KNN 分類器對可能含有類域交疊的較近樣本識別率高的優點,將SVM和KNN分類器進行優勢互補,提出一種基于SVM-KNN融合算法的腦電信號分類方法,用于情緒類型識別,通過在SEED 情感數據集進行實驗測試,以驗證其有效性.
根據統計學習理論中的結構風險最小化原則,Cortes 等人[19]于1995年提出了一種新的監督式機器學習方法—支持向量機,其對于新鮮樣本有較強的適應能力,能較好的解決高維度與非線性的分類問題.
對于線性問題,二維情況下線性可分的超平面如圖1所示,wTx+b=0為實數空間的一個最優分類超平面,wTx+b=1和wTx+b=?1兩虛線間的距離(稱為分類間距)為2 /∥w∥.對于非線性問題,可以將樣本從低維空間映射到高維空間,即用核函數 κ(xi,yi)代替點積〈xi,yi〉,使得樣本在高維屬性空間線性可分,繼而求出最優分類超平面.

圖1 最優分類超平面
徑向基函數(radial basis function,RBF)具有較好的高維數據分析能力[20],本文選擇RBF 函數作為核函數,如式(1):


其中,拉格朗日乘子αi≥0.
K 近鄰法是由Cover和Hart 于1967年提出的[21],該算法的基本思路是將測試集數據的屬性特征與訓練集中對應的屬性特征進行比較,在訓練集中找到與之最近的k個“鄰居”,看這k個近鄰多數屬于哪一類即可推出測試集樣本的類別[22].
在這里,KNN 模型使用歐式距離來找到最近的“鄰居”,通常采用空間兩向量的歐式距離表示:

SVM 分類器對于距離超平面較遠的樣本能準確地分類,但是對于距離超平面較近的樣本(基本上是支持向量SVs),分類出錯率較高;KNN 算法在分類決策上只與k個近鄰的類別有關,對于那些含有類域交疊樣本的數據集其分類效果良好,但它是一種懶惰學習算法,當訓練的數據集較大時,其產生的巨大的計算空間會導致算法運行時間復雜度很高.結合兩者優勢,本文采用 SVM和KNN 融合算法來提高情緒分類的準確率.其基本思想是對距離分類超平面較遠的樣本點選用SVM 算法進行分類,較近的則選用KNN 算法進行分類,具體遠近通過設定的閾值ε 來判斷.閾值ε 越小,則表明SVM的貢獻率越大,當 ε小到0,SVM-KNN 算法就是SVM 算法;反之,閾值 ε越大,則表明KNN的貢獻率越大,當 ε大到無窮大時,SVM-KNN 算法就是KNN 算法.因此,閾值ε的選取直接影響到識別準確率的高低,應對照實際情況靈活調整.根據 SVM的反饋參數經驗值,ε一般設置在[0.4,0.8].
具體來說,計算空間中待識別樣本x與兩類支持向量代表點x+和x?的距離差g(x),如果g(x)大于設定的閾值ε,即樣本點在圖2中所示的區域I和II,說明x離分類超平面較遠,則采用SVM 算法對其進行分類;如果g(x) 小于設定的閾值ε,即樣本點在圖2中區域III,說明x離分類超平面較近,則把SVs 集作為測試集的近鄰樣本,采用KNN 分類器對其進行分類.

圖2 SVM-KNN 結合示意圖
由上述的原理,可以將SVM-KNN 算法的分類訓練實現步驟表示如算法1.

算法1.SVM-KNN 分類訓練算法輸入:訓練集Train,測試集Test.輸出:測試集Test的分類結果,取值為{?1,0,1},?1 表示消極情緒,0 表示中性情緒,1 表示積極情緒.

1)對Train 中的樣本用svmtrain 函數進行訓練,得到model的參數,包括SVs、SVs 對應的系數sv_ceof 及常數rho 等.x 2)從測試集Test 中取一個待識別樣本,若Test為空集,則分類步驟結束.x x+ x?g(x)=∑yiαiκ(x,xi)+b 3)計算空間中待識別樣本 與兩類支持向量代表點和的距離差,即svmpredict 函數的輸出項dec_values,其中,.g(x) ε |g(x)|>ε|g(x)|<ε yiαi=model.sv_ceofb=?model.rho 4)將 與設定的閾值 比較,若,則直接輸出SVM 識別結果;若,則調用KNN 分類算法,過程如下:計算待識別樣本 與所有SVs的距離,將得到的距離依據從小到大的順序排列,從中選出前 個小的距離,統計這 個近鄰對應SVs的所屬類別,最后依據多數表決規則輸出的識別類別.5)更新測試集,返回步驟2.x k k x
實驗在PC 上進行,環境為Windows 10 操作系統,編程語言是Matlab,同時基于Libsvm-mat-3.24 工具箱[23].
本文實驗數據選自由上海交通大學計算機科學與工程系類腦計算與機器智能中心建立的情感數據庫(SJTUE emotion EEG dataset,SEED)[24].實驗過程中,由從電影庫中選出的喜劇、悲劇及中性電影片段各5 個作為誘發情緒的刺激材料,分別對應需誘發產生的3 種目標情緒—積極情緒、中性情緒和消極情緒.該實驗在安靜環境下進行測試,采用NeuroScan ESI-128系統采集被試者在觀看影片片段時間段內的EEG,該系統主要由刺激系統、濕電極帽、腦電信號放大系統和Scan 軟件組成.被試者由刺激系統誘發出相應的情緒,經涂有液態導電介質的濕電極帽采集對應情緒的EEG,并將其發送到腦電信號放大系統進行EEG的放大和初步降噪,然后將其發送到Scan 軟件,實時監測各電極當前的阻抗值和所獲取的腦電數據.實時監測為實驗數據的獲取提供了很大的可靠性和準確性.本實驗選用64 導的濕電極帽,其中有效電極數為62 導,電極放置位置采用國際統一標準的10-20 系統如圖3所示,采樣頻率為1 000 Hz.為了保證實驗結果的穩定性,每位被試者參加3 次實驗,每次實驗與上次實驗時間間隔一周,因此每位被試者需要觀看45 段影片片段.以該數據庫提供者的研究數據為依據,本文實驗僅選取10 位健康被試者(男女各半)的腦電數據,樣本數量總和為450,對情緒腦電進行三分類.

圖3 62 導10-20 系統電極分布圖
實驗總體流程如圖4所示.

圖4 基于SVM-KNN 算法的情緒腦電分類總體流程
具體操作步驟如下所示:
(1)SEED 數據集中的EEG 數據已經經過濾波、降噪等預處理,因此可以直接進行特征提取.首先通過窗長為1 s的256 點短時傅里葉變換(short time Fourier transform,STFT)將腦電數據轉換到頻域,然后將頻域劃分為5 個頻段(Delta:1–4 Hz;Theta:4–8 Hz;Alpha:8–14 Hz;Beta:14–31 Hz;Gamma:31–50 Hz)并提取微分熵特征(differential entropy,DE).DE 作為情緒特征分類效果良好,2010年,Murugappan等人[25]通過腦電信號識別高興、恐懼、厭惡等6 種情緒,發現熵作為一種非線性特征量可以很好的表征不同情緒狀態的腦電波.2013年,Duan 等人[26]提取了腦電信號5 個頻段的DE 特征,對情緒進行二分類,最后識別率為84.22%,說明DE 具有很好的情緒識別能力.DE 等于其在特定頻段上的能量譜的對數[27].

其中,[a,b]表示特征信息取值的區間,p(x)表示連續特征信息的概率密度函數.
SEED 數據采集實驗中有效電極數為62 導,所以每次實驗的特征向量包含62×5 維數據.這310 維特征序列中,可能會摻雜其他大腦活動產生的偽跡和與情緒識別無關的信息,因此本實驗通過滑動平均平滑算法(moving average,MA)降低無關成分對目標特征造成的誤差,提高之后的情緒分類準確率.
(2)為避免有某些項的屬性值太大而吞掉了屬性值小的數據項,需要對其進行歸一化處理.這里利用Matlab 自帶的mapminmax 函數將訓練集和測試集的樣本進行歸一化處理,有助于提高后續情緒分類準確度,其公式為:

其中,[lower,upper]是歸一化范圍,xmax、xmin分別為特征值集最大值和最小值,x為原始的特征值,x′為歸一化后的特征值.這里設置歸一化范圍為[0,1].
(3)由于腦電極帽排布緊密,相鄰電極采集到的EEG 信號相關性可能較高,為了提取到冗余度小且代表性強的情緒特征向量,本文利用最大相關最小冗余(max-relevance and min-redundancy,mRMR) 算法降低數據維度,有助于后續訓練模型的準確建立.
(4)采用網格搜索算法(grid search,GS)獲取最佳的SVM 參數.C參數的搜索范圍設置為g參數的搜索范圍為經過不斷交叉測試驗證,綜合考慮最高分類準確率和最大化分類間隔,GS-SVM 分類器參數優化結果如圖5和圖6所示,得出SVM的最佳參數值為C=4,g=0.659 75.

圖5 網格搜索參數結果圖

圖6 網格搜索參數等高圖
(5)從降維后的特征集中隨機選取總樣本的80%作為Train,20%作為Test,建立訓練模型.由于本實驗要解決情緒三分類問題,而SVM 分類器是一個二分類器,因此本文采用基于SVM的“一對多”的方式構建3 個SVM 分類器[28,29],可實現對3 種情緒類型的分類,如圖7所示.

圖7 基于SVM的“一對多” 多類分類器
(6)依據第2.2 節中SVM-KNN 分類訓練算法對腦電-情緒特征集進行訓練,輸出情緒三分類結果.
將Train 樣本分別輸入SVM,KNN,SVM-KNN 分類器做對比實驗,建立相應的情緒分類模型,然后在Test 樣本上測試,得到的情緒識別性能結果如表1所示.

表1 3 種分類器的情緒識別正確率對比(%)
對表1中實驗數據結果進行對比分析,SVM-KNN分類器平均識別正確率為88.84%,分別超過KNN和SVM 分類器 10.00%和5.56%,可以看出相對于單一的SVM和KNN 分類器,SVM 與KNN 融合算法的分類器獲得了更好的情緒分類效果.SVM-KNN 分類器克服了SVM 對分類面附近的情緒特征向量識別易出錯以及KNN 計算時間復雜度高的缺陷,較好地結合了SVM和KNN 分類器的優勢,對于基于EEG的情緒識別獲得了更優的效果.
情緒識別是基于監測和分析人類各種身體的外在表現及生理信號的模式識別任務.本文將通過Neuro-Scan ESI-128 系統采集的SEED 情緒腦電數據集進行特征量提取和降維后,建立了基于SVM 與KNN 融合算法的情緒腦電識別模型,實驗結果表明,相對于單一的分類學習算法,SVM 與KNN 融合算法的分類方法識別效果更優,能更加準確地輸出情緒類別.在醫療護理、交通出行、教育教學等方面,實時監測被試者的腦電數據,從中分離出情緒任務相關的成分,通過分析與處理這些成分可以持續辨識他們的情緒狀態變化,從而根據情緒反饋適當的調整方案和改進措施.
除此之外,在腦電信號監測方面,本文的EEG 數據集采集過程選用了濕電極技術.目前新興的干電極技術無需涂抹液態導電介質,更加便捷、舒適,例如可穿戴設備Emotiv EPOC+[30].但是目前干電極技術還不夠成熟,且EEG 是一種非平穩信號,采集過程中容易受到頭皮毛發的干擾而使獲得的信號不夠純凈穩定.隨著技術的不斷完善和發展,相信干電極技術將日漸成熟完備,會為情緒識別應用提供更便捷、可靠的腦電信號采集途徑.