用深度學(xué)習(xí)來解析夢境中出現(xiàn)的物體
這篇文章主要的工作算是機(jī)器學(xué)習(xí)和神經(jīng)科學(xué)的結(jié)合工作,需要讀者在這兩個方向有一定的基礎(chǔ)。
機(jī)器學(xué)習(xí)簡介:機(jī)器學(xué)習(xí)算法是一類從數(shù)據(jù)中自動分析獲得規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進(jìn)行預(yù)測的算法。最近大火的深度學(xué)習(xí)則是機(jī)器學(xué)習(xí)的一個分支,主要用基于人工神經(jīng)網(wǎng)絡(luò)的各種方法來實(shí)現(xiàn)目的,現(xiàn)在有很多變種,本文中使用的神經(jīng)網(wǎng)絡(luò)是一個卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)。
文章中神經(jīng)科學(xué)實(shí)驗部分主要使用的信號讀取方法是功能磁共振( functional Magnetic Resonance Imaging,功能核磁共振),主要原理是通過監(jiān)測腦區(qū)血流量的變化來間接測量腦區(qū)的活動程度,當(dāng)一個腦區(qū)活動程度增強(qiáng)的時候,相應(yīng)的血流量也會增加,為腦區(qū)輸送更多的氧氣,影響,以及排除廢物。功能磁共振的空間分辨率很高,但其時間分辨率比較有限,只能采集到2s 左右時間內(nèi)的平均活動程度,同時對于神經(jīng)活動的檢測有一定延時。
日前去開ASSC 的時候聽到一個很有趣的工作,用深度學(xué)習(xí)來解析人類夢境中出現(xiàn)的物體類別。我見到的為數(shù)不多融合深度學(xué)習(xí)和神經(jīng)科學(xué)的工作。回來之后翻了下相關(guān)文章,來在這分享下。
本文介紹的總體思路:
- 證明視知覺和夢境在視覺皮層上的神經(jīng)活動有部分類似的激活模式。
- 以正常視知覺為訓(xùn)練集訓(xùn)練一個 Decoder,從被試的視覺皮層神經(jīng)活動信號到***的物體類別。這里是分成兩部分,先從 fMRI 信號到特征空間,再從特征空間用相關(guān)性分析的辦法推測物體類別。
- 用這個 Decoder 來預(yù)測夢境中的物體類別。
- 夾點(diǎn)私貨,用里面的數(shù)據(jù)來說下視覺皮層和卷積神經(jīng)網(wǎng)絡(luò)底層的相似性,也算是解釋了為什么用卷積神經(jīng)網(wǎng)絡(luò)的效果要更好。
- ***我個人從一個認(rèn)知神經(jīng)科學(xué)研究生和一個機(jī)器學(xué)習(xí)初學(xué)者的角度來分析下這個工作。
前三點(diǎn),對應(yīng)了他們組發(fā)的三篇文章。我們從頭開始說。 先是13年的一個工作Neural Decoding of Visual Imagery During Sleep.
實(shí)驗部分:
實(shí)驗過程中被試躺在核磁共振成像儀里面,在持續(xù)通過腦電圖(electroencephalogram, EEG)來檢測被試的睡眠狀態(tài)的同時掃描大腦活動。在通過特定的腦電特征了解被試進(jìn)入夢境狀態(tài)之后,會叫醒被試并讓其口頭描述夢境內(nèi)容。(如下圖所示)
結(jié)果部分:
在夢境實(shí)驗之前,作者收集了被試們在看圖片時候視覺皮層的Fmri信號,并基于此訓(xùn)練一個線性SVM(Support Vector Machine,支持向量機(jī))分類器。并用此分類器嘗試解碼出被試在夢境狀態(tài)下的看到的物體,這里作者使用的任務(wù)相對簡單,是要在兩個物體類別里面挑出正確的那一個。結(jié)果是預(yù)測準(zhǔn)確率大于50%,高于隨機(jī)水平,說明視知覺和夢境在視覺皮層有類似的信息表征機(jī)制。
這個工作做的其實(shí)超前,在13年的時候大概是***嘗試解析夢境的工作,也是很早把機(jī)器學(xué)習(xí)和神經(jīng)科學(xué)結(jié)合起來的工作,但是由于和今天的主題不是特別相關(guān),所以只介紹了我需要的結(jié)果,至于具體用的思路和方法,在此略過,有興趣的同學(xué),可以自行查找原文。
接下來是重點(diǎn),如何從被試看圖片的 fMRI 信號中解出物體類別。
實(shí)驗部分:
作者在此主要做了兩類實(shí)驗,一類是正??次矬w的圖片,另一類是基于線索來想象物體的形象。
在看物體實(shí)驗中,被試會被呈現(xiàn)不同的圖片,每張圖片9秒鐘。這里加了一個比較簡單的小任務(wù),當(dāng)出現(xiàn)的圖片和上一張出現(xiàn)的圖片相同的時候,被試需要做按鍵反應(yīng)。這里是為了讓被試的注意維持在圖片上。 第二類是想象實(shí)驗,在線索階段,會有1個目標(biāo)詞匯和49個干擾詞出現(xiàn),在聽到‘滴’聲之后,被試要閉上眼睛,想象目標(biāo)詞匯的形象。過了15s,聽到‘滴’ 之后,睜眼,確認(rèn)想象的形象是目標(biāo)形象。 在實(shí)驗進(jìn)行的過程中,會采集被試視覺皮層的fMRI信號。
從fMRI到物體類別
接下來的數(shù)據(jù)分析工作,也就是從fMRI信號到物體類別是分兩步走的,
***步是fMRI 信號到特征空間。
作者在此用了一個8層預(yù)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)來做特征提取。在前七層中每層隨機(jī)選1000個神經(jīng)元,以及第八層的全部1000個神經(jīng)元,把一張圖片前向傳播過網(wǎng)絡(luò)后,這些神經(jīng)元的輸出作為特征。這樣每張圖片前向傳播之后,可以獲得一個 8層 * 1000 特征/層 的特征矩陣。
之后是被試用被試的fMRI信號來訓(xùn)練一系列Decoder,從被試的fMRI信號來擬合不同層中不同特征的值。來實(shí)現(xiàn)從fMRI信號到特征空間的轉(zhuǎn)換。
第二步是從特征空間到物體的類別。
這里作者首先做的是,計算各個物體類別的特征矩陣。他的做法是,每一個類別下面所有圖片前向跑一遍網(wǎng)絡(luò),把生成的所有的特征矩陣平均,得到一個物體類別對應(yīng)的特征矩陣。
如果要計算上一步中,被試夢境中解碼出來的特征矩陣具體對應(yīng)著哪個類別的物體。這里做一個簡單的相關(guān),取相關(guān)系數(shù)***的那個類別為預(yù)測類別。
結(jié)果:
這篇文章做出的結(jié)果不能說很好,但是確實(shí)為這個領(lǐng)域的應(yīng)用提出了一個有趣的方向。
這張圖截取的是卷積神經(jīng)網(wǎng)絡(luò)部分預(yù)測準(zhǔn)確率??梢钥吹?,在被試真正看到圖片的情況下,使用某些層的預(yù)測準(zhǔn)確率可以到達(dá)很高,超過90%,在直接用這個網(wǎng)絡(luò)遷移到想象情況下,也可以達(dá)到一個高于隨機(jī)猜測的準(zhǔn)確率。明顯看出,現(xiàn)有模型對于想象圖片的預(yù)測能力要差很多。其實(shí)想來有一定道理,***就是,想象和直接看肯定有不同的底層視覺機(jī)制。第二就是模型是基于真正看圖片的情況來訓(xùn)練的,遷移到另外一個相似卻不完全相同的任務(wù)上表現(xiàn)表現(xiàn)自然會差一些。
解夢的工作:
這篇文章是重點(diǎn)講的。再重點(diǎn)也不會逐字翻譯,我只會把整體的邏輯講通。喜歡這篇文章的同學(xué)們歡迎去看原文。
這篇文章很巧妙的地方在于,他沒做實(shí)驗,用的是***篇文章的數(shù)據(jù)和第二篇文章的模型。
Single category feature decoding with averaged trials
夢境中單物體類別的識別。
這里用的是書的例子,被試在做夢的時候,可能會在多個夢境中都出現(xiàn)書這個物體,作者把這幾個夢境對應(yīng)的fMRI信號加起來做平均,然后通過文章2中訓(xùn)練處的Decoder 來預(yù)測出當(dāng)前夢境的特征矩陣,之后和書這個類別的特征矩陣做相關(guān)。
結(jié)果顯示,高級腦區(qū)和神經(jīng)網(wǎng)絡(luò)的高層對于物體識別的效果比較好,當(dāng)他們兩結(jié)合在一起時候產(chǎn)生的效果***。
Multi-category feature decoding with individual trials
當(dāng)然,一個夢境里面只出現(xiàn)書也不現(xiàn)實(shí),大家都有這樣的經(jīng)歷,夢境更多是一整個場景,會出現(xiàn)多個物體,如上圖,這個夢境中,除了書還有一個男人和食物。所以作者也做了這個實(shí)驗,單個夢境里面多物體的識別。用的是單個夢境對應(yīng)fMRI信號Decode出來的特征矩陣來和被試報告的所有類別的特征矩陣的平均矩陣做相關(guān)比較。這個預(yù)測結(jié)果更差了,但是從趨勢上和上一個實(shí)驗類似。高級腦區(qū)和網(wǎng)絡(luò)的高層有更好的預(yù)測能力。
***一個實(shí)驗,其實(shí)是重現(xiàn)了文章1中***的實(shí)驗,在兩個物體類別中找到真正在夢境中出現(xiàn)的那個類別。用的方法也是特征矩陣的相關(guān)。準(zhǔn)確率大大高于***篇文章基于SVM(支持向量機(jī))的結(jié)果。
這里也可以看到的是,看到物體實(shí)驗的結(jié)果在神經(jīng)網(wǎng)絡(luò)的中間層(4,5,6層)表現(xiàn)比較好,到***層反倒有一個下降的趨勢,這個趨勢在想象的結(jié)果中也有體現(xiàn)。對于夢境這個實(shí)驗,雖然預(yù)測效果同樣大于隨機(jī)猜測,但是在7層出現(xiàn)了一個下降而又在8層回升的現(xiàn)象,模式與看圖片和想圖片的模式不符。暗示夢境的神經(jīng)機(jī)制和視知覺雖然有一定相似性,但是具體的機(jī)制還存在一定的差異。
夾帶私貨。 用這個文章的數(shù)據(jù)來簡要討論下卷積神經(jīng)網(wǎng)絡(luò)和人類視覺皮層的相似性。而這個相似性也是我寫這篇文章的原因之一。
Image feature decoding and the homology of CNN and the human brain.
這個圖出現(xiàn)在第二篇文章之中。a 是預(yù)測的特征矩陣不同層和實(shí)際的特征值的對比,有一定的重合,說明Decoder 確實(shí)在一定程度上學(xué)到了 從fMRI信號到卷積神經(jīng)網(wǎng)絡(luò)不同層特征的映射。B圖是用不同視覺皮層預(yù)測出來的feature value 和 實(shí)際的feature value 的比較。這里比較有趣的是,低級的視覺皮層,如V1,V2,V3 在擬合低層卷積神經(jīng)網(wǎng)絡(luò) 的時候效果相對稍好,而高級視覺皮層(FFA ( fusiform face area,梭狀回面孔識別區(qū),神經(jīng)科學(xué)研究發(fā)現(xiàn)主要參與人臉識別),PPA(Parahippocampal place area,神經(jīng)科學(xué)發(fā)現(xiàn)主要參與場景識別))在擬合高層卷積神經(jīng)網(wǎng)絡(luò)的時候效果相對稍好。
Preferred images and weight distributions for CNN layers.
在神經(jīng)科學(xué)領(lǐng)域,有類似的研究,證明 FFA,PPA 這種相對高級的皮層,會對更復(fù)雜的視覺刺激有比較強(qiáng)烈的反應(yīng),如FFA,主要對人臉反應(yīng),PPA 對物體,而底層皮層,如V1,V2,V3 更多的對底層視覺元素反應(yīng),如不同方向的線以及顏色等等。作者用一種 Activation Maximization 的方法來生成更能刺激相應(yīng)層的圖片,并用這些圖片來給被試看,并用這些數(shù)據(jù)的fMRI來生成特征矩陣。發(fā)現(xiàn)了類似的現(xiàn)象。人越高級的皮層,擬合的結(jié)果對應(yīng)高級卷積層的效果越好。
這暗示著卷積神經(jīng)網(wǎng)絡(luò)和人類視覺皮層有一定的相似性,低級主管局部特征,高層主管語義特征。
整體文章就完結(jié)了??赡苡行┡笥延X得看的一頭霧水,我在這重新整理下行文邏輯。
- 證明視知覺和夢境在視覺皮層上的神經(jīng)活動有部分類似的 pattern。
- 以正常視知覺為訓(xùn)練集訓(xùn)練一個 Decoder,從被試的視覺皮層神經(jīng)活動信號到***的物體類別。這里是分成兩部分,先從 fMRI 信號到特征空間,再從特征空間用相關(guān)性分析的辦法推測物體類別。
- 用這個 Decoder 來預(yù)測夢境中的物體類別。
- 夾點(diǎn)私貨,用里面的數(shù)據(jù)來說下 視覺皮層和 卷積神經(jīng)網(wǎng)絡(luò)底層的相似性,也算是解釋了 為什么用卷積神經(jīng)網(wǎng)絡(luò)的效果要更好。
- ***我個人從一個認(rèn)知神經(jīng)科學(xué)研究生和一個機(jī)器學(xué)習(xí)初學(xué)者的角度來分析下這個工作。個人對一系列文章的評價:很有趣的工作,13年的時候,***次用fMRI +機(jī)器學(xué)習(xí)技術(shù)嘗試解析夢境,15年的時候,能做到以一定的準(zhǔn)確程度從被試的fMRI信號中成功解析看到的物體,從這兩點(diǎn)來看,是非常有開創(chuàng)性的工作。除此之外,關(guān)于卷積神經(jīng)網(wǎng)絡(luò) 和相關(guān)腦區(qū)的比較也是比較有趣的工作,一定程度上說明了卷積神經(jīng)網(wǎng)絡(luò)和人類視覺皮層的相似性。
作為一個認(rèn)知神經(jīng)科學(xué)研究生,我認(rèn)為這幾個實(shí)驗做得挺好的,簡單,但是十分有效,如果說有什么改進(jìn)的話,就是如果能來和我們所合作,用7T更高分辨率來試一下是不是會更好啊,還有就是***的一些序列可能能做到更好的結(jié)果。但是相信作者也是有一些權(quán)衡的,不止要考慮分辨率,還要考慮SNR, 尤其是夢境里面,噪音也需要注意一下。
作為一個機(jī)器學(xué)習(xí)方向初學(xué)者來說,我個人認(rèn)為,可以改進(jìn)的地方還是有一些的,主要集中在模型部分。 這個8層神經(jīng)網(wǎng)絡(luò)如果用一些更先進(jìn)的模型,會不會有一些更好的效果。還有特征矩陣做平均,卷積神經(jīng)網(wǎng)絡(luò)在低層只是能對簡單特征進(jìn)行反應(yīng),一個物體的不同面的局部特征差異會比較大,這樣做平均的結(jié)果,會導(dǎo)致實(shí)際的預(yù)測能力比較差。個人覺得或許一個好一些的方法是做繼續(xù)前向,***得出類別之后來做投票。除此之外,我個人還有一些其他想法,想來用我這邊的一些東西來試著實(shí)現(xiàn)下。