用深度學習來解析夢境中出現的物體(完整版)
這篇文章主要的工作算是機器學習和神經科學的結合工作,需要讀者在這兩個方向有一定的基礎。
另有科普版本,結構更加清晰。。不過刪減了很多內容。。
用深度學習來解析夢境中出現的物體 - 行為與認知神經科學
機器學習簡介:機器學習演算法是一類從數據中自動分析獲得規律,並利用規律對未知數據進行預測的演算法。最近大火的深度學習則是機器學習的一個分支,主要用基於人工神經網路的各種方法來實現目的,現在有很多變種,本文中使用的神經網路是一個卷積神經網路(Convolutional Neural Networks, CNN)。
文章中神經科學實驗部分主要使用的信號讀取方法是功能磁共振( functional Magnetic Resonance Imaging,功能核磁共振),主要原理是通過監測腦區血流量的變化來間接測量腦區的活動程度,當一個腦區活動程度增強的時候,相應的血流量也會增加,為腦區輸送更多的氧氣,影響,以及排除廢物。功能磁共振的空間解析度很高,但其時間解析度比較有限,只能採集到2s 左右時間內的平均活動程度,同時對於神經活動的檢測有一定延時。
前一周去開ASSC 的時候聽到一個很有趣的工作,用深度學習來解析人類夢境中出現的物體類別。我見到的為數不多融合深度學習和神經科學的工作。回來之後翻了下相關文章,來在這分享下。
本文介紹的總體思路:
1.證明視知覺和夢境在視覺皮層上的神經活動有部分類似的激活模式。[1] 2.以正常視知覺為訓練集訓練一個 Decoder,從被試的視覺皮層神經活動信號到最後的物體類別。這裡是分成兩部分,先從 fMRI 信號到特徵空間,再從特徵空間用相關性分析的辦法推測物體類別。[2] 3.用這個 Decoder 來預測夢境中的物體類別。[3]
4. 夾點私貨,用裡面的數據來說下 視覺皮層和 卷積神經網路底層的相似性,也算是解釋了 為什麼用卷積神經網路的效果要更好。
5. 最後我個人從一個認知神經科學研究生和一個機器學習初學者的角度來分析下這個工作。
前三點,對應了他們組發的三篇文章。我們從頭開始說。 先是13年的一個工作。Neural Decoding of Visual Imagery During Sleep.
實驗部分:
實驗過程中被試躺在核磁共振成像儀裡面,在持續通過腦電圖(electroencephalogram, EEG)來檢測被試的睡眠狀態的同時掃描大腦活動。在通過特定的腦電特徵了解被試進入夢境狀態之後,會叫醒被試並讓其口頭描述夢境內容。(如下圖所示)
結果部分:
在夢境實驗之前,作者收集了被試們在看圖片時候視覺皮層的Fmri信號,並基於此訓練一個線性SVM(Support Vector Machine,支持向量機)分類器。並用此分類器嘗試解碼出被試在夢境狀態下的看到的物體,這裡作者使用的任務相對簡單,是要在兩個物體類別裡面挑出正確的那一個。結果是預測準確率大於50%,高於隨機水平,說明視知覺和夢境在視覺皮層有類似的信息表徵機制。
這個工作做的其實超前,在13年的時候大概是首次嘗試解析夢境的工作,也是很早把機器學習和神經科學結合起來的工作,但是由於和今天的主題不是特別相關,所以只介紹了我需要的結果,至於具體用的思路和方法,在此略過,有興趣的同學,可以自行查找原文。[1]
接下來是重點,如何從被試看圖片的 fMRI 信號中解出物體類別。
實驗部分:
作者在此主要做了兩類實驗,一類是正常看物體的圖片,另一類是基於線索來想像物體的形象。
在看物體實驗中,被試會被呈現不同的圖片,每張圖片9秒鐘。這裡加了一個比較簡單的小任務,當出現的圖片和上一張出現的圖片相同的時候,被試需要做按鍵反應。這裡是為了讓被試的注意維持在圖片上。 第二類是想像實驗,在線索階段,會有1個目標辭彙和49個干擾詞出現,在聽到『滴』聲之後,被試要閉上眼睛,想像目標辭彙的形象。過了15s,聽到『滴』 之後,睜眼,確認想像的形象是目標形象。 在實驗進行的過程中,會採集被試視覺皮層的fMRI信號。
從fMRI到物體類別
接下來的數據分析工作,也就是從fMRI信號到物體類別是分兩步走的,
第一步是fMRI 信號到 特徵空間。
作者在此用了一個8層預訓練好的神經網路來做特徵提取。在前七層中每層隨機選1000個神經元,以及第八層的全部1000個神經元,把一張圖片前向傳播過網路後,這些神經元的輸出作為特徵。這樣每張圖片前向傳播之後,可以獲得一個 8層 * 1000 特徵/層 的特徵矩陣。
之後是被試用被試的fMRI信號來訓練一系列Decoder,從被試的fMRI信號來擬合不同層中不同特徵的值。來實現從fMRI信號到特徵空間的轉換。
第二步是從特徵空間到物體的類別。
這裡作者首先做的是,計算各個物體類別的特徵矩陣。他的做法是,每一個類別下面所有圖片前向跑一遍網路,把生成的所有的特徵矩陣平均,得到一個物體類別對應的特徵矩陣。
如果要計算上一步中,被試夢境中解碼出來的特徵矩陣具體對應著哪個類別的物體。這裡做一個簡單的相關,取相關係數最高的那個類別為預測類別。
結果:
這篇文章做出的結果不能說很好,但是確實為這個領域的應用提出了一個有趣的方向。
這張圖截取的是卷積神經網路部分預測準確率。可以看到,在被試真正看到圖片的情況下,使用某些層的預測準確率可以到達很高,超過90%,在直接用這個網路遷移到想像情況下,也可以達到一個高於隨機猜測的準確率。明顯看出,現有模型對於想像圖片的預測能力要差很多。其實想來有一定道理,第一就是,想像和直接看肯定有不同的底層視覺機制。第二就是模型是基於真正看圖片的情況來訓練的,遷移到另外一個相似卻不完全相同的任務上表現表現自然會差一些。
解夢的工作:
這篇文章是重點講的。再重點也不會逐字翻譯,我只會把整體的邏輯講通。。喜歡這篇文章的同學們歡迎去看原文。[3]
這篇文章很巧妙的地方在於,他沒做實驗。。。用的是第一篇文章的數據和第二篇文章的模型。
Single category feature decoding with averaged trials
夢境中單物體類別的識別。
這裡用的是書的例子,被試在做夢的時候,可能會在多個夢境中都出現書這個物體,作者把這幾個夢境對應的fMRI信號加起來做平均,然後通過文章2中訓練處的Decoder 來預測出當前夢境的特徵矩陣,之後和書這個類別的特徵矩陣做相關。
結果顯示,高級腦區和神經網路的高層對於物體識別的效果比較好,當他們兩結合在一起時候產生的效果最好。
Multi-category feature decoding with individual trials
當然,一個夢境裡面只出現書也不現實,大家都有這樣的經歷,夢境更多是一整個場景,會出現多個物體,如上圖,這個夢境中,除了書還有一個男人和食物。所以作者也做了這個實驗,單個夢境裡面多物體的識別。用的是單個夢境對應fMRI信號Decode出來的特徵矩陣來和被試報告的所有類別的特徵矩陣 的平均矩陣做相關比較。這個預測結果更差了。。。但是從趨勢上和上一個實驗類似。高級腦區和網路的高層有更好的預測能力。
最後一個實驗,其實是重現了文章1中最後的實驗,在兩個物體類別中找到真正在夢境中出現的那個類別。用的方法也是特徵矩陣的相關。準確率大大高於第一篇文章基於SVM(支持向量機)的結果。
這裡也可以看到的是,看到物體實驗的結果在神經網路的中間層(4,5,6)層表現比較好,到最後層反倒有一個下降的趨勢,這個趨勢在想像的結果中也有體現。對於夢境這個實驗,雖然預測效果同樣大於隨機猜測,但是在7層出現了一個下降而又在8層回升的現象,模式與看圖片和想圖片的模式不符。暗示夢境的神經機制和視知覺雖然有一定相似性,但是具體的機制還存在一定的差異。
夾帶私貨。 用這個文章的數據來簡要討論下卷積神經網路和人類視覺皮層的相似性。而這個相似性也是我寫這篇文章的原因之一。
Image feature decoding and the homology of CNN and the human brain.
這個圖出現在第二篇文章之中。a 是預測的特徵矩陣不同層和實際的特徵值的對比,有一定的重合,說明Decoder 確實在一定程度上學到了 從fMRI信號到卷積神經網路不同層特徵的映射。B圖是用不同視覺皮層預測出來的feature value 和 實際的feature value 的比較。這裡比較有趣的是,低級的視覺皮層,如V1,V2,V3 在擬合低層卷積神經網路 的時候效果相對稍好,而高級視覺皮層(FFA ( fusiform face area,梭狀回面孔識別區,神經科學研究發現主要參與人臉識別),PPA(Parahippocampal place area,神經科學發現主要參與場景識別))在擬合高層卷積神經網路的時候效果相對稍好。
Preferred images and weight distributions for CNN layers.
在神經科學領域,有類似的研究,證明 FFA,PPA 這種相對高級的皮層,會對更複雜的視覺刺激有比較強烈的反應,如FFA,主要對人臉反應,PPA 對物體,而底層皮層,如V1,V2,V3 更多的對底層視覺元素反應,如不同方向的線以及顏色等等。作者用一種 Activation Maximization 的方法來生成更能刺激相應層的圖片,並用這些圖片來給被試看,並用這些數據的fMRI來生成特徵矩陣。發現了類似的現象。人越高級的皮層,擬合的結果對應高級卷積層的效果越好。
這暗示著 卷積神經網路和人類視覺皮層有一定的相似性,低級主管局部特徵,高層主管語義特徵。
整體文章就完結了。可能有些朋友覺得看的一頭霧水,我在這重新整理下行文邏輯。
1.證明視知覺和夢境在視覺皮層上的神經活動有部分類似的 pattern。
2.以正常視知覺為訓練集訓練一個 Decoder,從被試的視覺皮層神經活動信號到最後的物體類別。這裡是分成兩部分,先從 fMRI 信號到特徵空間,再從特徵空間用相關性分析的辦法推測物體類別。
3.用這個 Decoder 來預測夢境中的物體類別。
4. 夾點私貨,用裡面的數據來說下 視覺皮層和 卷積神經網路底層的相似性,也算是解釋了 為什麼用卷積神經網路的效果要更好。
5. 最後我個人從一個認知神經科學研究生和一個機器學習初學者的角度來分析下這個工作。 個人對一系列文章的評價:
很有趣的工作,13年的時候,第一次用fMRI +機器學習技術嘗試解析夢境,15年的時候,能做到以一定的準確程度從被試的fMRI信號中成功解析看到的物體,從這兩點來看,是非常有開創性的工作。除此之外,關於卷積神經網路 和相關腦區的比較也是比較有趣的工作,一定程度上說明了卷積神經網路和人類視覺皮層的相似性。
作為一個認知神經科學研究生,我認為這幾個實驗做得挺好的,簡單,但是十分有效,如果說有什麼改進的話,就是如果能來和我們所合作,用7T更高解析度來試一下是不是會更好啊,還有就是最新的一些序列可能能做到更好的結果。但是相信作者也是有一些權衡的,不止要考慮解析度,還要考慮SNR, 尤其是夢境裡面,噪音也需要注意一下。。。
作為一個機器學習方向初學者來說,我個人認為,可以改進的地方還是有一些的,主要集中在模型部分。 這個8層神經網路如果用一些更先進的模型,會不會有一些更好的效果。還有特徵矩陣做平均,卷積神經網路在低層只是能對簡單特徵進行反應,一個物體的不同面的局部特徵差異會比較大,這樣做平均的結果,會導致實際的預測能力比較差。個人覺得或許一個好一些的方法是做繼續前向,最後得出類別之後來做投票。除此之外,我個人還有一些其他想法,想來用我這邊的一些東西來試著實現下。如果有一樣對此有興趣的同學,歡迎評論區/私信討論。
Harold Yue 6.30 第一版草稿
Harold Yue 7.18 第二版,完整版在此,精簡科普版在另一個專欄 用深度學習來解析夢境中出現的物體
行為與認知神經科學 專欄的編輯亦有幫助。
參考文獻:
本文使用的全部圖片都來基於參考文獻中的figure,做了適當裁剪和縮放。[1] Horikawa T, Tamaki M, Miyawaki Y, et al. Neural decoding of visualimagery during sleep[J]. Science, 2013, 340(6132): 639-642.[2] Horikawa T, Kamitani Y. Generic decoding of seen and imagined objectsusing hierarchical visual features[J]. arXiv preprint arXiv:1510.06479, 2015.[3] Horikawa T, Kamitani Y. Hierarchical Neural Representation of DreamedObjects Revealed by Brain Decoding with Deep Neural Network Features[J].Frontiers in computational neuroscience, 2017, 11.
推薦閱讀:
※脈衝神經網路和非脈衝神經網路各有什麼優缺點?
※認知心理學實驗的可重複性有多差,研究者是如何應對的?
※為什麼身體上的接觸可以增加親密感?
※2016 年,神經科學領域出現了哪些極具發展潛力的研究方向?
※為什麼腦科學家不先從低等動物入手研究原理和模擬大腦,探求意識的來源,而是直接研究和模擬最高級的人腦呢?
TAG:深度学习DeepLearning | 机器学习 | 认知神经科学 |