雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!
編者按:本文來自微信公衆号“AI科技評論”(ID:aitechtalk),36氪經授權釋出。
作者 | 賈偉
編輯 | 蔣寶尚

機器翻譯真的是萬能的,不僅能夠寫詩、對對聯、推導微分方程,還能夠讀取腦波資訊。
昨天,加州大學舊金山分校的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 科技評論還想強調的一點是:機器翻譯的本質,就是從一種資訊序列映射到另一種資訊序列。特别是現在端到端的技術下,隻要能夠将你的問題換種表述方式,轉換為序列到序列的映射問題,然後能收集到足夠多的訓練資料,那麼都可以借用現有的機器翻譯技術來做出巨大的改變。
【雲栖号線上課堂】每天都有産品技術專家分享!
課程位址:
https://yqh.aliyun.com/live立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-03-31
本文作者:36氪的朋友們
本文來自:“
36Kr”,了解相關資訊可以關注“
”