張杰, 曲洪權*, 柳長安, 龐麗萍
(1.北方工業(yè)大學信息學院, 北京 100144; 2.北京航空航天大學航空科學與工程學院, 北京 100191)
隨著人類社會近些年科技的快速發(fā)展,大量體力勞動被機械工程所替代,勞動者的工作逐漸轉為機械操作,即從體力勞動逐步轉為腦力勞動。腦力勞動比重的增大則導致了工作者腦力負荷的增大[1]。腦力負荷并不是單一的概念,它涉及多維因素,評價起來十分困難[2]。在人機交互領域中,尤其在高空行業(yè)等工作環(huán)境十分復雜的情況下,工作者所要處理的信息量相比原先簡單情況下成倍增長,因此,在短時間內(nèi)對大量信息進行處理并做出決策會導致工作者長期處于腦力超負荷的狀態(tài)[3]。工作者腦力負荷過高在高危工作中容易導致事故,腦力負荷過低則會導致人力資源的浪費。因此,對操作者腦力負荷情況進行快速準確的評估變得尤為重要。
早年普遍應用的腦力負荷分類方式是主觀評估量表,準確率高,但受操作者主觀影響極大,且無法實時監(jiān)測,因而依靠生物電信號分類的方式逐漸被更多人采用[4]。
有研究表明,腦電信號平均功率譜密度在腦力負荷分類應用上效果較好[5],但所用分類的電極數(shù)共26個,分別提取4種節(jié)律下的26個腦電信號平均功率譜密度,所得特征數(shù)極高。在中小樣本的分類器訓練任務下,非常容易造成維數(shù)災難,也會放大計算量,導致預測結果的不準確[6]。因此,在高維數(shù)據(jù)領域,數(shù)據(jù)降維這一步驟必不可少。
機器學習領域應用最為廣泛的兩個降維算法為主成分分析(principal component analysis,PCA)和線性判別分析(linear discriminant analysis,LDA)[7]。主成分分析是非監(jiān)督降維算法,降維所得為最佳描述特征而非最佳分類特征[8]。線性判別分析雖然是監(jiān)督降維算法,但其結果受數(shù)據(jù)冗余影響極大。單獨使用兩種算法對于本課題的腦力負荷分類問題效果都不是很理想。
文獻[9]提出一種PCA-LDA的降維算法,設定PCA參數(shù)為99.99%,首先將高維數(shù)據(jù)的冗余特征去除,再去使用LDA算法對去除了冗余特征的數(shù)據(jù)提取最佳分類特征,較好地減弱了冗余特征對LDA算法本身的影響。但PCA的非監(jiān)督特性在分類任務下的不適應性尚未得到解決,容易流失一些數(shù)據(jù)在經(jīng)過處理前原本擁有的分類信息。
針對以上問題,現(xiàn)提出一種二分類任務下基于雙子空間PCA-LDA的降維算法,以雙子空間的形式來彌補PCA本身非監(jiān)督算法的劣勢,以PCA-LDA合并使用的形式來解決LDA算法對冗余特征的敏感性,試圖以此增加降維后數(shù)據(jù)的可分性。
本課題所使用的腦電信號經(jīng)過特征提取后共有104個特征,屬于高維數(shù)據(jù)。針對高維數(shù)據(jù)分類任務,為避免維數(shù)災難問題,降維步驟必不可少[10]。降維的過程是針對數(shù)據(jù)集的原始特征進行分析與學習,通過某種學習方式得出一個映射函數(shù)。通過映射函數(shù)將原始特征空間中的數(shù)據(jù)映射到一個較低維度的新空間中。
數(shù)據(jù)降維不止可以避免維度災難問題,減少所需訓練集數(shù)據(jù)量,還可以盡可能地使分類器變得簡單工整。
目前使用最為廣泛且最古老的降維技術是主成分分析。這是一種非監(jiān)督降維算法,具體原理為將高維空間的數(shù)據(jù)在盡可能保留較多數(shù)據(jù)信息的前提下映射到低維空間中。為使其在降低維數(shù)的同時盡可能保留較多的數(shù)據(jù)信息,應使不同數(shù)據(jù)投影之間的間隔盡可能大,尋找數(shù)據(jù)集中方差最大的方向作為主成分分量軸,重新構建低維映射空間,原理簡述即樣本方差最大化[11]。
但主成分分析的非監(jiān)督特性就意味著此類降維方法在低維度分類上的不適應性。經(jīng)過主成分分析降維所保留的特征可被稱為最佳描述特征,但其并未考慮類別與標簽,所降維數(shù)越低,累計貢獻率越低,直接導致分類精度降低[12]。
由此來看,主成分分析降維在維度縮減上效果較好,而在分類特征提取中并不是首選。
除了主成分分析降維法,另一種十分經(jīng)典的降維方法為線性判別分析(LDA)。LDA是一種監(jiān)督學習降維方法,此類算法在訓練過程中,會將同類數(shù)據(jù)投影得盡可能近,不同類數(shù)據(jù)投影得盡可能遠,盡量降低類內(nèi)差異,擴大類間差異。LDA 的降維過程具體如下:
(1) 計算數(shù)據(jù)集中每個類別下所有的樣本的均值向量。
(2) 通過均值向量,計算類間散度矩陣Sb和類內(nèi)散度矩陣Sw。
(4) 按照特征值排序,選擇前k個特征向量構成投影矩陣U。
(5) 通過Y=XU的特征值矩陣將所有樣本轉換到新的子空間中(S為原始數(shù)據(jù),Y為轉換后的數(shù)據(jù))。
也就是說,線性判別分析所提取的特征可稱為當前維度下的最佳分類特征。然而此類方法卻對類間重疊和特征冗余敏感度較高。過多冗余的特征會導致其損失分類精度。
基于主成分分析降維在分類上的不適應性和線性判別分析降維對于冗余特征的敏感性,文獻[13]在人臉識別領域提出Fisherface法[13],即PCA-LDA降維方法。其具體流程示意圖如圖1所示。
圖1 二分類任務下八維數(shù)據(jù)單子空間PCA-LDA算法流程Fig.1 PCA-LDA algorithm flow of eight-dimensional data sheet subspace under two-classification task
圖1以八維特征數(shù)據(jù)為例。對于原始八維數(shù)據(jù),首先使用主成分分析將冗余特征去除,再去使用LDA算法提取最佳分類特征,較好地減弱了冗余特征對LDA算法本身的影響。但PCA的非監(jiān)督特性在分類任務下的不適應性尚未得到解決,容易流失一些數(shù)據(jù)原本擁有的分類信息。
主成分分析降維方法在降維領域應用廣泛,其主要應用于去除冗余特征方面,但在分類任務上效果并不顯著。主要步驟如下。
(1)對矩陣去中心化,得到新矩陣X。
(2)計算去中心化后的矩陣X的協(xié)方差C,具體公式為
(1)
式(1)中:m為樣本數(shù)。
(3)對協(xié)方差矩陣C進行特征分解,求出對應特征值及特征向量。
(4)按照對應特征值,將特征向量依次以降序方式排列成矩陣。當PCA參數(shù)為K時,則取前K列特征向量組成降維矩陣。
然而此類降維算法的非監(jiān)督性顯著,在分類任務上的不適應性仍未得到解決。
基于以上問題,提出一種二分類任務下雙子空間主成分分析特征提取的方式,具體流程如圖2所示。
圖2 二分類任務下八維數(shù)據(jù)雙子空間主成分分析算法流程Fig.2 The algorithm flow of two-subspace principal component analysis for eight-dimensional data under two-classification
仍以八維數(shù)據(jù)為例,首先將不同類別的數(shù)據(jù)分開,針對高負荷類別數(shù)據(jù)進行主成分分析,形成降維子空間,輸出降維矩陣。接著利用降維矩陣,將所有類別數(shù)據(jù)一同映射到這一子空間中。針對低負荷數(shù)據(jù)進行同樣操作之后,將兩個子空間內(nèi)的特征拼接在一起,得到了一個新的八維數(shù)據(jù)。
現(xiàn)提出一種二分類下基于雙子空間主成分分析的降維算法,以八維數(shù)據(jù)為例,具體流程如圖3所示。
圖3 二分類任務下八維數(shù)據(jù)雙子空間PCA-LDA算法流程Fig.3 Process of PCA-LDA algorithm for eight-dimensional data in two-subspace under two-classification task
對于原始八維數(shù)據(jù),首先將不同類別的數(shù)據(jù)分開,針對高負荷數(shù)據(jù)進行主成分分析,形成降維子空間,輸出降維矩陣。接著利用降維矩陣,將所有類別數(shù)據(jù)一同映射到這一子空間。針對低負荷數(shù)據(jù)進行同樣操作之后,將兩個子空間內(nèi)的特征拼接在一起,得到了一個新的八維數(shù)據(jù)。繼而如單子空間PCA-LDA處理方法相同,對新產(chǎn)生的數(shù)據(jù)進行主成分分析降維,再對降維后的數(shù)據(jù)使用線性判別分析來提取最佳分類特征,繼而利用此特征輸出一維分類器。
具體步驟拆解如下所示。
Step1將高、低兩類數(shù)據(jù)按數(shù)據(jù)標簽分為兩組。
Step2首先針對其中一類進行主成分分析。在本示例中,PCA參數(shù)為4。
Step3得到一個新的降維空間后輸出降維矩陣,利用降維矩陣將所有類別的數(shù)據(jù)一同映射到子空間中,得到兩組不同標簽下新的4維特征數(shù)據(jù)。
Step4針對另一類數(shù)據(jù)重復Step2、Step3,再次得到另一空間下兩組新的4維特征數(shù)據(jù)。
Step5將兩空間下各4個特征拼合,產(chǎn)生1個新的八維特征。
Step6針對八維特征進行主成分分析降維,再針對降維后的結果進行線性判別分析降維,并使用最后得出的一維數(shù)據(jù)輸出一維分類器。
以往單子空間降維算法雖然盡量減輕了冗余特征對LDA算法降維效果的影響,但并沒有解決PCA算法非監(jiān)督特性所帶來的分類信息的流失。使用本課題提出的雙子空間PCA-LDA降維法進行降維后,特征數(shù)并沒有太大變化,但因為考慮了不同類別數(shù)據(jù)間的差異性,其中保留的分類信息會明顯升高,使其更有利于分類任務。
現(xiàn)通過對被試者腦電信號的采集、預處理、特征提取、特征降維、訓練分類器等步驟進行腦力負荷分類。
本次實驗采集對象為8名身體良好的研究生,本次數(shù)據(jù)采集持續(xù)了9 d,每天上下午各測一組,每組每類(不同負荷為一類)共測12 min。實驗數(shù)據(jù)收集橫跨9 d時間,獲得各被試高低負荷不同情況下每種情況各216 min腦電信號。由于獲取腦電數(shù)據(jù)時使用的是32-channel Neuroscan Neuamps (Synamps2, Scan4.3, EI Paso, USA) system獲取的腦電數(shù)據(jù),則選取和系統(tǒng)電極放置法中能一一對應的26個電極:FP1、FP2、F7、F3、FZ、F4、F8、FC3、FCZ、FC4、T7、C3、CZ、C4、T8、CP3、CPZ、CP4、P7、P3、PZ、P4、P8、O1、OZ、O2作為26個獨立分量,用于后續(xù)特征提取工作。
腦電信號采集與電極排布示意圖如圖4所示。
圖4 腦電信號采集與電極排布示意圖Fig.4 Schematic diagram of EEG signal acquisition and electrode arrangement
本實驗所用MATB-Ⅱ任務界面如圖5所示,包含4個子任務,即系統(tǒng)監(jiān)控、跟蹤監(jiān)控、通信監(jiān)控、資源監(jiān)控。實驗中通過改變4個子任務的出現(xiàn)頻率來控制每個任務難度,從而模擬腦力負荷的不同情況。
圖5 MATB-Ⅱ?qū)嶒炂脚_Fig.5 MATB-Ⅱ experimental platform
數(shù)據(jù)采集完成后得到各被試26個通道腦電信號,為方便后續(xù)分類,首先對其進行預處理。將獲取到的腦電信號使用1~30 Hz的fir帶通濾波器進行雜波的濾除,繼而進行數(shù)據(jù)切割。鑒于數(shù)據(jù)采集過程中,并不是每時每刻都處于腦力高負荷(或低負荷)狀態(tài),本課題所用方案即按單個任務時長60 s對腦電信號進行數(shù)據(jù)切分,保證每一數(shù)據(jù)段都基本包括高低負荷自身的有效操作時段。
特征提取這一步驟的主要目的是對通過數(shù)據(jù)預處理的腦電數(shù)據(jù)進行相應特征參數(shù)值的提取。文獻[5]表明,平均功率譜密度在腦力負荷分類任務上表現(xiàn)較好,因此本次實驗選擇使用平均功率譜密度法,對通過預處理的數(shù)據(jù)進行特征提取。
人類大腦中存在14種以上的波段,文獻[14]表明,共有4個波段對于腦力負荷呈強相關性,具體波段如表1所示。
表1 腦電信號節(jié)律劃分范圍Table 1 Division range of EEG signal rhythm
信號處理領域中,時頻變換的方法包括傅里葉變換、快速傅里葉變換、短時傅里葉變換等[15]。提取功率譜密度首先需要對處理后的數(shù)據(jù)進行傅里葉變換,具體公式為
(2)
式(2)中:f(t)為一個非周期函數(shù);F(n)為該函數(shù)在頻域上的表示;e-int為復指數(shù)函數(shù)。
之后對其計算功率譜密度P(n),公式為
(3)
式(3)中:F*(n)為F(n)的共軛;N為信號長度。
則4種節(jié)律能量特征獲取公式為
(4)
式(4)中:f為頻率;Pf代表當前節(jié)律下功率譜密度。
通過對26通道腦電信號提取4種節(jié)律下平均功率譜密度,本實驗共得出104個特征維度,用以進行下一步特征降維。
本實驗分別使用單子空間PCA-LDA降維方法和雙子空間PCA-LDA降維方法,針對8個被試的數(shù)據(jù)進行降維,圖1中PCA參數(shù)設為55。對于每個被試數(shù)據(jù),以訓練集∶測試集=8∶2來劃分數(shù)據(jù)集。以測試集分類精度作為分類器性能指標,在同樣降至1維的前提下,對比分別使用兩種方法降維后數(shù)據(jù)生成分類器的性能,實驗結果保留兩位小數(shù),如表2所示。
表2 使用兩種方法降維所得測試集分類精度Table 2 Use two methods to reduce the classification accuracy of the test set
為更直觀地將兩種降維方法在分類任務下的效果進行對比,本課題對表2進行了可視化,結果如圖6所示。
圖6 兩種方法測試集分類精度對比Fig.6 Comparison of classification accuracy of two test sets
由圖6可以清晰地看出,使用雙子空間PCA-LDA方法進行降維的測試集精度相比單子空間PCA-LDA算法普遍升高,且8個被試精度平均升高了近3個百分點。
針對主成分分析降維方法的非監(jiān)督特性在分類上的不適應性,和線性判別分析在類重疊和特征冗余上的敏感性,提出了一種二分類下基于雙子空間PCA-LDA的降維方法。經(jīng)過實驗結果驗證,在分類任務下,將數(shù)據(jù)降至同一維度的前提下,雙子空間PCA-LDA降維方法要好于單子空間PCA-LDA法,具體總結如下。
(1)分別對每一類數(shù)據(jù)進行主成分分析,彌補了非監(jiān)督算法在分類任務上的弱勢,考慮了不同類別數(shù)據(jù)分布的差異性,由此保留了數(shù)據(jù)中更多的分類信息。
(2)由于不同類別數(shù)據(jù)分布的差異性并不是太大,會導致進行雙子空間主成分分析后所得出的數(shù)據(jù)特征間相關性極高,極易導致特征冗余的出現(xiàn)。因此本課題在對數(shù)據(jù)使用雙子空間主成分分析構建新數(shù)據(jù)空間后,再次使用主成分分析將冗余特征去除,并使用線性判別分析提取最佳分類特征,將數(shù)據(jù)降至1維,有效解決了類重疊和冗余特征對LDA算法的影響,并加快了運算速度。
本課題所提出的算法較為簡單明了,在python編程中十分容易實現(xiàn)。本算法一定程度上彌補了PCA和LDA降維算法自身的不足,也為生物電信號分類領域提供了數(shù)據(jù)降維的新思路。