DeepMind 提出「神經算術邏輯單元」,功能強大引發熱議
計算機問世以來,人類對於製造智能機器的興趣便有增無減。尤其是近年來,第四次技術革命掀起巨大的風暴,機器學習和深度學習領域技術飛速發展並快速轉化為產品走入人們的生活,人工智慧儼然成為了全民話題。能識別人臉,能自動駕駛,能診斷疾病,能預測未來……人們早已開始幻想製造出真正的人工智慧時的景象,探討人類與這位「超人」的關係。
圖一:《極限挑戰》人工智慧主題節目
然而,人類距離製造出這樣一個擁有真正的智能的機器還有相當遙遠的距離。當下人工智慧領域當之無愧的明星神經網路,才剛剛學會「數數」。
神經網路可以在學習表示和操縱數字,但當他們遇到超出訓練範圍之外的數值時,卻往往不知所措。圖一中展示了不同多層感知器學習標量的恆等函數(f(x)=x)時的行為。恆等函數是最簡單的數值關係之一,儘管許多結構在理論上可以表示這一數值關係,但在實踐中它們的表現卻差強人意。
圖二:利用 MLP(多層感知器)學習恆等函數。MLP 只「學會」了訓練數據數值範圍內的內容。訓練數值外的平均誤差斜向上升。誤差的大小與模型激活函數的非線性程度相關。
究其原因,是系統結構導致泛化能力的缺失,使得這些模型缺乏對數值的推理能力。然而,從像人類一樣的高級哺乳動物到如蜜蜂等昆蟲般簡單的生物,這種能力在生物界十分常見。由此也表明,基本的數值推理是智能的基本的組成部分。
為此,來自 DeepMind、牛津大學和倫敦大學的研究人員提出了一種新的模型NALU(neural arithmetic logic unit),與傳統處理器中的算術邏輯單元類比,他們稱該結構為神經算數邏輯單元。
NALU 通過線性激活函數表示數值量,由門結構控制,通過原始的算術運算來操縱。實驗結果表明,通過該結構加強的神經網路可以學習追蹤時間、對數字圖像進行運算、將數值語言轉化為實值標量、執行計算機代碼、計算圖像中的物體數目……和傳統結構相比,該結構在訓練時學習的數值範圍之內和在外都表現出了更好的泛化能力,可以把握數據底層的數值本質,推理能力往往可以超出訓練中觀測數據幾個數量級。
研究人員提出了兩種模型。第一個模型稱為 NAC(neural accumulator,神經累積器)。這是一種特殊的線性層,它的轉換矩陣 W 僅僅由 0,-1,1 組成。也就是說,它的輸出只會是輸入向量各個行進行加減運算的結果,而不會像之前的處理包含縮放。因此,不論進行多少操作,在整個模型中,數值表示的尺度都是不變的。該模型不包含偏置向量,也不對輸出結果應用任何非線性操作。
圖三:NAC 對其輸入進行線性轉換。NALU 通過門結構(b 中橙色部分)控制兩個 NAC 結構的組合和相應的權重實現加減(b 中小紫色色部分)和乘除(b 中大紫色部分)操作。
僅僅可以進行加法減法操作並一般化是不夠的,乘法等更為複雜的操作也是必須的。故而研究者進一步提出了 NALU(neural arithmetic logic unit,神經算數邏輯單元)。他通過學習得到兩個子細胞(NAC)的不同權重的和,其中一個處理加減操作,另一個處理乘除冪運算等。NALU 也表明了 NAC 可以通過門控制的子操作擴展,進行新型數值函數的端到端學習。和 NAC 一樣,NALU 也不包含任何改變數值表示的尺度的操作。
圖四:NAC 與 NALU 的運算規則
這項工作可以視為是在深度神經網路中應用線性激活函數的倡導。正如最近其他結構創新,如 Highway Networks、ResNets 和 DenseNet 等,他們都倡導使用線性連接以減少梯度爆照和梯度消失。儘管由於模型體系的深度增加會帶來額外的計算開銷,但這樣的方式的確會改善性能。這項工作也符合機器學習中更廣泛的主題,即尋求以控制方程的形式確定那些能探索空間中不可見部分的系統的基礎結構。
實驗一:簡單的函數學習任務
這個簡單的實驗意在展示 NAC 結構和 NALU 結構學習選擇相關輸入並對其應用不同算數方法的能力,也就是設計它們的初衷。該任務分成兩個部分。第一部分是靜態任務,每個輸入作為一個向量僅僅出現一次。第二個任務是循環的,輸入組成序列依次呈現。
圖五:實驗一測試結果 插入值(Interpolation)和外推(Extrapolation)錯誤率。0.0 是最優的表現結果,100.0 表示隨機效果,>100.0 表示效果比隨機初始化的模型還差。
圖中的結果表明,各種模型即使在插值的處理中取得了不錯的結果,但是它們無一能較好地處理數值外推的情形。而 NAC 在加法,減法運算中均取得了較好的結果,更為複雜的 NALU 表現得則更為優秀,除了數值外推的除法運算。
實驗二:MINST 計數和算數任務
在上一個任務中,輸入和輸出已經被泛化為可以直接進行計算的形式,需要學習的僅僅是中間的操作和表示方法。在這個任務中,研究者探究了該模型能否學習非數字化輸入。他們隨機選擇 10 個 MNIST 數據集中的數字輸入循環網路模型中。在 MNIST 計數任務中,要求其輸出各種類型數字出現的次數。在 MNIST 數字加法任務中,則要求其輸出這些數字的和。
圖六:實驗二測試結果
與實驗一呈現出的結果相同,標準結構儘管可以較好的處理插值,在處理數值外推方面卻表現欠佳。而 NAC 結構在這兩種情況下都表現優異。
除此之外,研究者還進行了文本數字轉換、程序評估、時間追蹤等實驗,證明了 NALU 的優良性能。這一結構還可以很容易地與各種神經網路模型結合使用,提高模型性能。
NALU 結構簡單,功能強大,儘管論文剛剛發布數日,卻已經引起熱議。GitHub 上已經出現了十幾個利用不同工具對該結構的實現和應用,其中包括包括 pytorch、tensorflow 等廣泛應用的機器學習框架。研究者 Trask 也在 twitter 上不竭餘力的為其宣傳,希望其在更多任務中被嘗試應用。
※長生生物子公司狂犬疫苗造假,目前已被中國葯監局責令停產
※原為尋找「第九大行星」,竟促成木星家族大發現?
TAG:DeepTech深科技 |