尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
機器翻譯真的是萬能的,不僅能夠寫詩、對對聯、推導微分方程,還能夠讀取腦波資訊。
昨天,加州大學舊金山分校的Joseph Makin 等人在 Nature Neuroscience上發表了一篇論文,標題為《利用 encoder-decoder 框架,將大腦皮質活動翻譯為文檔》(Machine translation of cortical activity to text with an encoder–decoder framework)。
這篇論文的工作思路異常簡單。他們將腦波到文檔的轉換視為機器翻譯的過程,腦波為輸入序列,文檔為輸出序列。
通過讓受試者朗讀文檔,收集相應腦區的電波,構成訓練數據集,然後去訓練一個端到端的機器翻譯模型。
通過這種方式,他們獲得了一個模型,這個模型能夠將受試者的腦波「準確」、「實時」地轉換為句子文檔,而錯誤率僅為3%。
這種創新,無疑是革命性的。
目前一些用於大腦控制打字的腦機接口技術,大多依賴於頭部或眼睛的殘餘運動。以霍金為例,他可以通過手指的運動控制虛擬鍵盤來打出他想表達的單詞。但這種方式一分鐘最多也只能打出8個單詞。
也有一些嘗試將口頭語音(或嘗試發出的語音)解碼為文字,但迄今也僅限於對單音素或單音節的解碼,在中等大小的文檔(100個單詞左右)上錯誤率往往高達60%以上。
Joseph 等人的這項工作,則直接將腦波幾乎無延遲地準確轉換為文檔,對於癱瘓患者來說,無疑是一大福音。
總體思路
如前面所述,作者借用了自然語言處理領域的概念,在自然語言的機器翻譯中,是將文檔從一種語言翻譯到另外一種語言。而腦波到文檔,事實上也是類似的一種「翻譯」過程。
從概念上講,這兩種場景的目標都是在兩種不同表示之間建立映射關係。更具體地說,在這兩種情況下,目的都是將任意長度的序列轉換為任意長度的另一序列。這裡需要重點強調一下「任意」,因為輸入和輸出序列的長度是變化的,並且彼此之間並不必須有確定性的一一對應關係。
在Joseph 等人的這項工作中,他們嘗試一次解碼一個句子,這和現在基於深度學習的端到端機器翻譯算法類似。
兩者相同的地方是,都會映射到相同類型的輸出,即一個句子的詞序列。不同之處在於,輸入,機器翻譯的輸入是文檔,而Joseph等人工作的輸入是神經信號——受試者朗讀句子,實驗人員用高密度腦電圖網格(ECoG grids)從參與者的大腦皮層處收集信號。
於是,對神經信號稍加處理後,便可以直接用 seq2seq架構的機器翻譯模型進行端到端訓練,基本不用進行改動。
在這項工作中,最難的是如何獲取足夠多的訓練數據集。我們知道,機器翻譯的數據集可以達到上百萬規模,但這個實驗中的每一個受試者頂多也就只能提供幾千量級的數據。在這種訓練數據稀少的背景下,為了充分利用端到端學習的好處,作者使用了一種隻包含30~50個獨立句子的受限「語言」。
模型
在這項研究中,為了收集輸入數據,要求參與人員大聲朗讀句子,觀察腦波活動。一組需要朗讀的數據是圖片描述,大概有30個句子,125個單詞,另一組採用MOCHA-TIMIT語料資料庫中的數據,以50個句子為一組,最後一組包含60個句子。
一共有四個參與者進行朗讀,研究人員只考慮重復朗讀三次的句子集,其中一次朗讀的數據用於測試,兩次用於訓練。
參與者在大聲朗讀的時候,會產生腦電波,給參與人員插上電極之後,研究人員用高密度腦電圖網格(ECoG grids)從參與者的大腦皮層處收集信號。
收集的腦電波信號和對應朗讀的句子,會作為數據輸入到「編碼-解碼」架構的人工神經網路。
如上圖所示,人工神經網路對輸入數據進行處理會經過三個階段:
1、時間卷積:一些類似的特征可能會在腦電信號數據序列的不同點處重現,全連接的前饋神經網路顯然無法處理。為了有效學習這種規律,網路以一定的步幅為間隔,對每個間隔應用相同的時間濾波器(temporally brief flter)。
2、編碼器循環神經網路:經過時間卷積的處理會產生特征序列,把特征序列輸入到編碼器循環神經網路裡面,然後,神經網路的隱藏層會提供整個序列的高維編碼,這個編碼與長度無關。
3、解碼器循環神經網路:在解碼階段,重點將是高維序列「翻譯」成一個單詞。這時的循環神經網路會進行初始化,然後對每一步的單詞進行預測,當預測結果是end-of-sequence token時,停止解碼。
作者所使用的神經網路框架如下圖所示:
訓練整個網路的目標是接近MFCC(梅爾倒譜系數特征),MFCC能夠引導神經網路產生良好的序列解碼。但是在模型測試階段,拋棄了MFCC,解碼完全依靠解碼器神經網路的輸出。在模型訓練中,隨機梯度下降法貫穿訓練的整個過程,所有的網路層都應用了dropout。
模型評估用錯詞率(The Word error rate, WER)量化,WER基本想法就是把正確答案和機器的識別結果排在一起,一個詞一個詞的對,把多出的詞,遺漏的詞和錯誤識別的詞統統加在一起,算作錯誤,然後計算錯誤的詞占實際單詞總數的百分比。
經過驗證,所有參與者的平均WER為33%,對比當前最先進的語音解碼WER的60%,效果較好。
實驗結果
作者在論文中一共進行了兩個實驗,一個是採取了類似「控制變量」的方法,看看為何這個模型表現如此優秀,另一個是通過遷移學習改善其他參與者的模型表現。
在「控制變量」實驗中,作者重新訓練網路,上圖的第二個框是採用低密度腦圖網格數據(lower-density ECoG grids)並進行下采樣的性能。另外,作者隻留下了1/4個通道,即只用了64個通道,而不是256個通道,此時的錯詞率比原先高出四倍。這意味著除了高密度腦電圖網格,算法也非常重要。
第三個框是沒有附加MFCC時的性能,錯誤率與低密度腦電圖網格類似,但優於之前的語音解碼嘗試。
第四個框是採用全連接網路的結果,對於卷積網路,全連接的錯詞率比之前高了8倍。但是在實驗中,作者發現,用全連接網路造成的錯詞率可以在高γ信號傳遞之前進行下采樣解決。
最後,作者對重復實驗是否影響錯詞率進行了量化。研究發現,當至少有15次重復訓練時候,錯詞率可以到25%以下。
如上圖所示,當訓練次數很少的時候,參與者a和參與者b的解碼性能很差,為了解決這個問題,作者嘗試了遷移學習。
上圖 a 中的第一個框用MOCHA-1數據訓練的結果,錯詞率為53%。考慮網路第一次針對參與者b的更豐富的數據集進行預訓練時的性能,這種遷移學習能使錯詞率降低約17%(上圖a中的第一個框到第二個框所示)。
作者還考慮了一種組合形式的遷移學習,其中編碼器-解碼器網路根據參與者b的所有MOCHA-TIMIT數據進行預訓練;然後針對參與者a的所有MOCHA-TIMIT數據進行訓練,像往常一樣在參與者a的MOCHA-1塊長進行測試。這種「雙重遷移學習」(圖a,第四條框)使錯詞率比基線降低了36%,與任務遷移學習相比有所改善。
那麼,改進是否以相反的方向轉移,即從參與者a轉移到參與者b,顯然是可以的,正如上圖b所示。
對於在MOCHA-TIMIT數據上表現最差的參與者d,將其餘的MOCHAT句子添加到訓練集並不能改善結果(如c圖所示)。
討論
很明顯,這項研究最大的不足之處就是——數據集太小,僅250個單詞,30~50個句子。
若想把這種技術擴展到通用自然語言上,則需要探索,到底需要多少數據才足夠,以及如何才能獲得足夠的數據。
事實上,如果能夠將腦電圖網格(ECoG)長期插入受試者腦中,可用的訓練數據量將比本實驗(僅收集了半個小時的數據)大幾個數量級。在實際應用中會遇到一些情況,有些人已經失去了說話能力,盡管如此,這種方法仍然可以適用,盡管性能會稍有下降。
這裡,AI 科技評論還想強調的一點是:機器翻譯的本質,就是從一種資訊序列映射到另一種資訊序列。特別是現在端到端的技術下,只要能夠將你的問題換種表述方式,轉換為序列到序列的映射問題,然後能收集到足夠多的訓練數據,那麼都可以借用現有的機器翻譯技術來做出巨大的改變。
>【機器學習】腦機接口利器:錯誤率僅3%