張兆晨,冀俊忠
(北京工業大學 多媒體與智能軟件技術北京市重點實驗室,北京 100124)
功能磁共振成像(functional Magnetic Resonance Imaging,fMRI)技術是神經影像學的研究熱點之一,其原理是利用磁振造影來測量神經元活動所引發的血液動力改變,從而產生大量的三維腦成像數據[1].通過對fMRI數據進行分類,可以有效地解碼出被試當前的大腦認知狀態,這對人類理解大腦的工作機制具有十分重要的意義.然而,fMRI數據因其高維小樣本性,給現有的模式分類方法帶來了極大挑戰[2,3].近年來,大量的機器學習方法被用來解決fMRI數據分類問題,并取得了不錯的效果,其中,深度學習作為新興的機器學習方法,因其對高維數據優秀的建模能力,逐漸成為了解決fMRI數據分類問題的重要方法.
按照模型網絡深度,fMRI數據分類方法可大致分為兩大類:基于傳統機器學習模型的方法和基于深度學習模型的方法.
1)基于傳統機器學習模型的方法
2006年,Norman等人使用支持向量機(Support Vector Machine,SVM)模型訓練fMRI數據,并將此模型用于大腦認知狀態分類任務[4].2014年,Chou等人[5]將互信息與偏最小二乘法相結合(Mutual Information and Partial Least Squares,MI_PLS),提出了一種新的fMRI數據特征選擇方法.該方法首先以分類準確率的高低作為選擇最佳特征子集的依據,選取top-k個特征作為最佳特征子集,然后使用多種分類器進行實驗,得到最終的分類準確率.同年,Kampa等人[6]基于彈性網模型提出了一種稀疏優化的fMRI數據分類框架(Elastic Net Sparse Optimization,EN_SO),該框架使用多邏輯回歸模型來處理多類別fMRI數據分類問題,取得了不錯的效果.使用傳統機器學習模型對fMRI數據進行分類有以下兩個主要缺陷:一是傳統的機器學習模型大都是淺層模型,對于高維fMRI數據的擬合效果并不好;二是傳統模型大多需要進行特征選擇,一些相關性較弱的體素會被丟棄,未能充分挖掘出體素隱含的有用信息.
2)基于深度學習模型的方法
2008年,Tanya等人首次使用生成訓練和判別訓練兩種訓練方法對受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)進行訓練,以解決大腦認知狀態分類問題[7].2013年,Suk等人利用棧式自編碼神經網絡高效的特征提取能力,將fMRI數據低維特征進行非線性變換組合成高維特征,在有效降低數據維度的同時,也使模型分類能力得到了進一步加強[8].同年,Brosch等人將深度信念網絡(Deep Belief Network,DBN)引入到fMRI數據分類問題中[9],通過改進DBN降低其訓練復雜度,以提升模型分類性能.2014年,Liu等人將自編碼器用于阿茲海默病(Alzheimer′s Disease,AD)的診斷,以區分病人目前處于疾病早期還是晚期,便于進行臨床治療[10].而Hatakeyama等人則將感興趣區域(Region Of Interest,ROI)劃分為多個塊,每塊分別使用RBM提取特征,極大地加強了模型的運算效率[11].2015年,Firat等人將稀疏自編碼器(Sparse AutoEncoders,SAE)堆疊而成的深度網絡用于大腦狀態的解碼工作[12],同樣獲得了較好的分類結果.2017年,張兆晨等人將卷積神經網絡(Convolutional Neural Network,CNN)應用到fMRI數據分類問題中,并提出使用RBM初始化CNN卷積核參數的策略,有效地提取出fMRI數據局部特征,以提升模型分類性能[13].深度學習模型相比于傳統機器學習模型,在處理fMRI數據分類問題時具備一定優勢.首先,fMRI數據是一種高維數據,而深度學習模型的多層結構恰好對于高維數據具備較強的建模能力;其次,深度學習模型使用多體素模式分析(Multi-voxel pattern analysis,MVPA)的方式對fMRI數據進行分類,將體素作為一個整體抽取特征,以多變量的方式對特征進行評價,符合fMRI數據內在的多變量特性,能夠更加靈敏地從fMRI的激活模式中探測到與刺激或任務相關的信息.
盡管深度學習模型彌補了傳統機器學習模型的部分缺陷,但從以上研究不難發現,現有深度學習模型在進行fMRI數據分類任務時往往只關注其空間特性,而忽略了體素的時序變化.此外,fMRI數據分為任務態有標注數據和休息態無標注數據,在實驗過程中,休息態數據往往因為其無標注性而被舍棄,并未有效利用.針對以上兩點缺陷,本文提出了一種基于循環神經網絡的時序fMRI數據分類模型.首先,使用任務態有標注數據訓練卷積神經網絡模型,得到相應網絡參數.然后,將有標注數據和無標注數據按時序組合,共同輸入到上一步訓練好的模型中,以提取全連接層特征.最后,將提取的特征以一個標簽一個時間序列的方式組成有序對輸入到RNN中,通過訓練得到最終的分類模型.
fMRI數據作為基于時間序列的三維腦成像數據,其時序特性在大腦認知狀態分類任務中的作用不可忽視.在一次典型的fMRI實驗設計中,被試需觀看不同種類圖片若干張,相鄰圖像間會存在一定的觀察間隔,一般為幾秒鐘,這種設計模式導致被試在觀察當前圖像時不可避免地會受到上一張圖像的影響.循環神經網絡作為深度學習模型中典型的處理序列數據的分類模型,其當前時刻神經元的輸出受本時刻神經元輸入與上一時刻神經元輸出的共同作用,這一特點恰好滿足fMRI數據的時序特性,因此本文引入循環神經網絡作為fMRI數據的基本分類模型.另外,在fMRI數據采集過程中,休息時刻采集到的數據由于其無標注性,往往被研究者們舍棄,但由于數據的關聯性,這一部分數據也會存在某些有助于分類任務的隱含信息.因此將無標注數據加入到fMRI數據時間序列中,共同訓練循環神經網絡,可充分挖掘數據隱含特性,從而提升模型分類效果.
圖1是基于循環神經網絡的時序fMRI數據分類模型的結構示意圖.

圖1 基于循環神經網絡的時序fMRI數據分類模型框架Fig.1 Time-series fMRI data classification model based on recurrent neural network
由圖1可知,模型的構建流程主要包括以下三步:基于CNN的局部特征檢測、基于無標注數據的序列數據構建以及基于RNN的時序特征抽取.其中,基于CNN的局部特征檢測的主要作用是提取fMRI樣本數據中的局部特征,用于接下來的分類任務;基于無標注數據的序列數據構建的目的是利用樣本數據中的無標注數據提升模型分類性能;基于RNN的時序特征抽取則是利用RNN在處理序列數據上的優勢,學習fMRI數據中隱含的時序特征,用于分類任務.模型的輸入是區分開的fMRI有標注數據和無標注數據,輸出是最終的分類結果.接下來,本文將對模型的三個構建步驟分別進行詳細闡述.
2.2.1 基于CNN的局部特征檢測
這一步需要用到文獻[13]中提出的改進卷積神經網絡模型RBM-CNN.該模型以CNN為主體,訓練算法與普通CNN一致,只是在卷積核參數初始化部分使用RBM模型進行初始化.模型的輸入是完整的fMRI數據,輸出是提取出的一維局部特征向量.基于CNN的局部特征檢測的具體流程如圖2所示.

圖2 基于CNN的局部特征檢測流程圖Fig.2 Process of local feature detection based on CNN
由圖2可知,基于CNN的局部特征檢測共分為以下三步:1)根據文獻[13]提出的方法設計RBM-CNN結構,并使用有標注數據對其進行訓練,得到相應的網絡參數;2)將有標注數據與無標注數據混合,共同輸入到訓練好的RBM-CNN模型中,做前向傳播;3)提取模型全連接層特征,一般為一維向量形式,用于接下來的序列數據構建任務.
2.2.2 基于無標注數據的序列數據構建
這一步主要將有標注數據與無標注數據按時間順序進行組合,構造新的序列數據,用于下一步循環神經網絡的訓練任務,具體過程如圖3所示.

圖3 基于無標注數據的序列數據構建示意圖Fig.3 Construction of sequence data based on unlabeled data
由圖3可知,在一次fMRI實驗過程中,采集到的數據分為有標注數據和無標注數據兩種,其中無標注數據又可細分為組內無標注數據與組間無標注數據.組內無標注數據是指在觀察同一組圖片過程中產生的無標注數據,而組間無標注數據則是在觀察不同組圖片的觀察間隔內所采集到的數據.在構造新的序列數據時,首先將上一步提取好的一維空間局部特征向量按時間順序進行排列,然后將組內無標注數據歸入到所屬組的時間序列內,組間無標注數據歸入到上一組的時間序列內,這樣就完成了基于無標注數據的序列數據構建過程.
2.2.3 基于RNN的時序特征抽取
這一步的主要操作是將上一步構造好的數據以一個標簽一個時間序列的方式輸入到RNN中,訓練得到最終的分類模型.這里,我們采用隨著時間的反向傳播算法(BPTT)對RNN 進行訓練,將網絡的誤差函數定義為如下形式:
(1)
其中n0表示一個回合的開始時間,n1表示結束時間,ej(n)=dj(n)-yj(n),φ表示期望輸出的全部節點集合,則BPTT算法的具體過程如下所述:
算法1.更新RNN權重矩陣W的BPTT算法
輸入:訓練集T=(v1,v2,…,vi)
輸出:權值矩陣W
步驟1.對于時間區間[n0,n1],使用公式(2)和公式(3)讓輸入數據在網絡中做前向傳播,并記錄完整的輸入數據、網絡權值以及輸出結果.
(2)
(3)

步驟2.對該條數據執行反向傳播操作并計算局部梯度,計算公式如下:
(4)
對于所有的j∈?,n0 步驟3.更新權值矩陣.執行上一步至n0+1時刻時,對神經元j的權值wji進行如下調整: (5) 其中η是學習率,xi(n-1)是n-1時刻神經元j的第i個節點的輸入. Haxby數據集是Haxby等人[14]在一次研究任務中所采集到的數據,是fMRI實驗設計中最常用的數據集之一.Haxby數據集提供的標準預處理步驟共分為三步[15].首先,對數據進行空間校正和線性去趨勢;其次,對體素進行標準化處理,使所有體素均值為0,標準差為1;最后,使用一般線性模型(GLM)對特征進行提取,將時間序列的fMRI數據轉化成用于訓練和測試分類器的樣本數據.但是,由于本文所用方法需保留數據的時序特征,因此預處理步驟中的第三步被舍去,僅保留第二步后生成的數據作為樣本數據.另外,我們根據類別標簽將fMRI數據分為休息態無標注數據和任務態有標注數據兩種,并將其用于第二個實驗任務. 經過上述預處理步驟后,Haxby數據集的實驗數據包括6名被試,被試5包含11個run(792條有標注數據和473條無標注數據),其余5名被試分別包含12個run(864條有標注數據和516條無標注數據). 為了驗證循環神經網絡提取時序特征的有效性,本文從準確率方面比較了文獻[13]中提出的改進卷積神經網絡模型(RBM-CNN)和融入循環神經網絡后的該模型(RC-RNN)在Haxby數據集上的分類性能. 3.2.1 網絡結構和參數設計 首先,本文所用的改進卷積神經網絡模型RBM-CNN的結構參數和訓練參數沿用文獻[13]中的設計,經過該模型提取數據局部特征后,會得到長度為512的一維局部特征向量,作為循環神經網絡的輸入.依據此數據,我們將RNN的具體結構參數和訓練參數設計成如下形式:其中學習率代表訓練時參數更新的速率,大小為0.001;模型使用批梯度下降的方式進行訓練,批大小為128;循環神經網絡的空間結構是典型的三層結構,包括輸入層、隱藏層和輸出層,其中隱藏層節點個數設計為256個.另外需要說明的是,序列長度是循環神經網絡的重要參數.因此,在設計該參數時,我們通過實驗,固定其余參數值不變,觀察不同取值下序列長度對最終分類準確率的影響,結果如圖4所示. 表1 循環神經網絡的結構參數和訓練參數 Table 1 Structural parameters and training parameters of Recurrent Neural Network 參數值學習率(learningrate)0.001批大小(batchsize)128隱藏層節點個數(n_hidden)256序列長度(sequencelength)5 由圖4可知,在序列長度取值較小時,隨著序列長度的增大,分類準確率呈上升趨勢.但是,當序列長度增大到5以后,準確率的變化趨于穩定,甚至略有下降.這是因為在序列長度較短時,RNN不能很好的挖掘出數據前后的時序變化特征;當序列長度過長時,序列前后的數據由于采集時間間隔較大,其相互影響作用會變弱,因此挖掘出的特征極可能不具備區分性.因此,我們設置最終的序列長度為5. 圖4 序列長度對分類準確率的影響Fig.4 Effect of the sequence length on the classification accuracy 3.2.2 實驗對比 使用上述循環神經網絡的結構參數和訓練參數,對6個被試分別進行獨立訓練時,兩種方法的準確率變化如表2所示. 表2 RBM-CNN和RC-RNN準確率變化 Table 2 Accuracy change between RBM-CNN and RC-RNN 被試RBM?CNNRC?RNNSubj191.3192.01Subj274.9575.26Subj394.7194.82Subj478.9579.56Subj596.0196.01Subj690.2190.58平均87.6988.04 從表2可以看出,融入循環神經網絡的RC-RNN模型在6個被試上取得了不錯的分類效果,除被試5的分類準確率與之前持平以外,其余被試均優于未加入循環神經網絡時的RBM-CNN模型.出現上述結果的原因與fMRI圖像數據的特殊結構有直接關系.fMRI數據有別于普通的自然圖像數據,普通的自然圖像一般只包含空間特征,而fMRI數據作為在時間序列上的三維腦成像數據,其時序性在分類問題中的作用也不可忽視.在一次fMRI實驗過程中,被試需連續觀看若干張同類型或不同類型的圖片,每張圖片的觀察間隔很有限,這就使得被試在觀看當前圖片時,勢必會受到上一張圖片的影響,這種影響在具體分類問題中的體現,便是前一時刻的輸出會影響到下一時刻的輸出.循環神經網絡模型作為專門處理序列數據的深度學習模型,其特有的環形結構使得每個神經元同時受當前時刻輸入與前一時刻輸出的共同作用,這恰恰滿足fMRI數據的這種時序特性.因此,融入循環神經網絡后,模型的整體分類效果得到了提升.綜上所述,本文提出的使用循環神經網絡提取fMRI數據時序特征的想法是合理的. 上面的驗證實驗已經證明了,使用循環神經網絡提取時序特征可有效提升fMRI數據的分類準確率.接下來,為了驗證無標注數據對分類結果的影響,特對比了融入無標注數據前后模型分類性能的差異,具體結果如表3所示. 表3 加入無標注數據前后模型分類性能差異 Table 3 Difference of classification performance before and after adding unlabeled data 被試未加入無標注數據加入無標注數據Subj192.0192.91Subj275.2677.50Subj394.8295.22Subj479.5679.94Subj596.0196.28Subj690.5891.73平均88.0488.93 從表3可以看出,加入無標注數據后的模型在6個被試上均取得了最優的分類結果,平均分類準確率接近89%.這充分表明了,在模型訓練過程中加入休息態無標注數據可以有效提升fMRI數據分類準確率.究其原因,是因為無標注數據中也蘊含了有助于分類的特殊信息.如前文所述,在一次fMRI實驗過程中,會產生兩類無標注數據,一類是組內無標注數據(即觀察同一類型圖片的觀察間隔內產生的無標注數據),另一類是組間無標注數據(即觀察不同類型圖片的觀察間隔內產生的無標注數據).其中,組內無標注數據由于其前后數據均屬于同一類別標簽,因此將其歸入到這一類別的時間序列內;組間無標注數據由于采集時會受上一時刻影響,因此將其歸入到上一時刻類別的時間序列內.這種歸類做法綜合考慮了休息態無標注數據前后的狀態信息,因此對分類結果產生了積極影響.綜上所述,融入無標注數據后的RC-RNN模型可充分挖掘數據中有助于分類的隱含信息,因此有效提升了fMRI數據的分類準確率. 為了證明本文提出的RC-RNN模型相比其他經典模型的優劣,分別選取了兩組基于傳統機器學習方法的fMRI數據分類模型和兩組基于深度學習方法的fMRI數據分類模型進行實驗對比. 如前文所述,基于傳統機器學習模型的方法和基于深度學習模型的方法是目前fMRI數據分類問題常用的兩種方法,本文實現了文獻[5]提出的基于互信息與偏最小二乘的方法(MI_PLS)、文獻[6]提出的基于彈性網模型的稀疏優化方法(EN_SO)、文獻[9]提出的基于深度信念網絡的方法(DBN_B)以及文獻[12]提出的基于稀疏自編碼神經網絡的方法(SAE_B),并將本文方法與這些方法進行了實驗對比,其中前兩種方法屬于傳統機器學習方法,后兩種方法屬于深度學習方法.圖5顯示了RC-RNN與其他四種方法在Haxby數據集6個被試上的分類準確率結果. 圖5 5種方法在Haxby數據集6個被試上的分類準確率Fig.5 Classification accuracy of five methods on six subjects in Haxby 由圖5可知,本文模型RC-RNN在6個被試上均取得了最好的分類結果.其余兩類方法中,基于深度學習模型的fMRI數據分類方法略優于基于傳統機器學習模型的方法,這體現出了深度學習模型在處理fMRI這類高維數據時的優勢.而對比三種深度學習模型,本文采用新策略后的RC-RNN模型也明顯優于其他兩種模型,其主要原因如下:首先,fMRI數據作為基于時間序列的圖像數據,其時序特征在分類任務中的作用不可忽視.而相比于RC-RNN模型,其余兩種模型都未充分利用到fMRI數據的這種時間特性;其次,將無標注數據融入到模型訓練過程中,使得RC-RNN模型的分類能力得到進一步加強,能挖掘出數據中更多的隱含信息,從而提升分類效果.總而言之,上述結果表明,RC-RNN模型不僅對蘊含時序特征的數據具有高效的特征提取能力,并且在挖掘數據隱含信息方面也占有較大優勢,因此取得了不錯的分類性能. 本文針對現有分類模型未充分利用fMRI數據時序特性的缺陷,引入循環神經網絡模型,并將無標注數據加入到模型訓練過程中,提出了一種基于循環神經網絡的時序fMRI數據分類模型.該模型首先使用任務態有標注數據訓練卷積神經網絡模型,得到相應網絡參數;然后,將有標注數據和無標注數據按時序組合,共同輸入到訓練好的模型中,提取全連接層特征;最后,將提取的特征以一個標簽一個時間序列的方式組成有序對輸入到循環神經網絡中,訓練并得到最終的分類模型.由于循環神經網絡不僅具有對數據時序特征的高效提取能力,而且具有對無標注數據隱含可用信息有效的挖掘能力,因此,使用該模型可有效提升fMRI數據分類準確率.在Haxby數據集上的實驗結果表明:1)將fMRI數據作為時間序列數據,使用循環神經網絡提取其時序特征用于分類,可有效提升模型的分類準確率;2)融入休息態無標注數據的循環神經網絡模型可以充分挖掘出數據隱含的有用信息,進一步提升模型分類性能. 此外,本文模型將目標問題定義為分類問題,旨在識別出大腦出現的異常情況,但對于具體異常區域的檢測,使用本文模型并不能很好解決.因此,下一步的研究重點將放在構建具體的大腦功能連接網絡和效應連接網絡上,通過網絡連接邊或連接強度的異常,識別出具體的大腦病灶區域.3 實 驗
3.1 實驗數據與預處理
3.2 循環神經網絡提取時序特征的效果實驗



3.3 融入休息態無標注數據的分類效果實驗

3.4 多種經典算法分類結果的對比實驗

4 結 論