DeepMind可微分神經計算機DNC開源 內部架構原理首次曝光

2020-12-05 和訊

    本文首發於微信公眾號:新智元。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

  1 新智元報導1

  作者:聞菲胡祥傑 劉小芹 零夏

  【新智元導讀】DeepMind昨夜宣布,將其 Nature 論文研究成果、2016 年引起熱議的可微分神經計算機 DNC 開源,相關代碼和部署細節已經在 Github 公開。DNC 結合了神經網絡自動學習和傳統計算機可讀寫存儲數據的能力,被認為是目前最接近數字計算機的神經計算系統。此次正式開源,想必會吸引眾多開發人員和研究者參與改進。DeepMind 不久前將內部深度學習框架 Sonnet 也進行了開源,而 DNC 需要使用 TensorFlow 和 Sonnet 一起進行訓練。DeepMind 的雙重開源,相信會加速神經網絡「記憶」相關的發展。一旦獲得突破,在加強神經網絡推理能力等方面將會產生較大影響。

  神經網絡在模式識別、快速決策方面有著優異的表現,然而現在的神經網絡還遠遠談不上能夠「思考」——思考需要在過去的知識經驗基礎上進行推理,而過去的知識和經驗也就是所謂的「記憶」。

  在去年10月,DeepMind 發表於 Nature 的一篇論文中,他們提出了一種叫做「可微分神經計算機」(DNC)的混合計算系統,將神經網絡和一個外部存儲器相結合。這個混合的計算系統既擁有神經網絡可以從數據中學習的優勢,也能夠存儲學到的知識——複雜的結構化數據。通過這個外部存儲器,DeepMind 對神經網絡進行了「記憶」增強,克服了神經網絡無法長時間保存數據的缺點。

  論文展示了 DNC 可以理解圖形結構,回答關於複雜的結構化數據的問題,包括在沒有先驗知識的情況下,在倫敦地鐵的地圖上找到兩個站點之間距離最短的路線。此外,DeepMind 還在論文中展示了,DNC 使用強化學習可以解決拼圖遊戲。

  作為 DeepMind 在 Nature 的第三篇論文,DNC 發布後引起了熱議,但是,由於不知道內部具體結構,外界對 DNC 帶來的「突破」也存在有一定猜測。現在,DeepMind 將 DNC 開源,公布代碼,提供訓練教程,名震一時的「可微分神經計算機」的內部細節終於曝光。

開源地址:http://github.com/deepmind/dnc

  DNC 內部架構解密

  據介紹,DeepMind 在設計 DNC 時,想建造的是一種能夠自動學習並且利用複雜數據結構的機器。

  DNC 的核心是一個被稱為「controller」控制器的神經網絡,就好比計算機裡的處理器。Controller 負責接收輸入的信息,對其進行處理並將處理後的數據存儲在存儲器中,最後生成輸出。

  根據 DeepMind 在 Github 公開的結構圖,存儲器分布在神經網絡的各個部分,每個都能存儲一個向量。

  控制器可以對存儲器執行多個操作。在每個時間步長,它可以選擇是否將數據寫入內存(memory)。如果是的話,可以將信息存儲在還沒有使用的新位置/內存,也可以將信息存儲在已經包含了控制器正在搜索的信息的位置。換句話說,每個內存都能被更新。如果內存中空間用盡,控制器可以決定釋放空間,整個過程跟計算機如何重新分配不再需要的內存非常相似。

  當控制器寫入時,它將信息向量發送到存儲器中的所選位置。每次寫入信息時,這些位置第一會通過關聯連接起來,表示信息被存儲的順序。

  除了存儲(寫入),控制器還能從多個內存中讀取信息。通過為被存儲內容的位置,或者說根據此前信息在存儲時形成的連接關係,控制器能夠搜索並找到想要獲取的內容。而這些讀出的信息則被用於解答問題——在論文的實驗中,也就是在陌生環境中採取什麼樣的行動。

  換句話說,上述功能使 DNC 能夠選擇如何分配內存、將信息存儲在內存中,並輕鬆找到內存裡的數據。

  DNC架構示意圖。神經網絡控制器(Controller,a 部分)接收外部輸入,並利用「讀寫頭」(Read and write head,b 部分)與存儲器(Memory,c 部分)交互,進行信息的讀取和寫入操作。d 部分是內存使用和臨時連結,跟蹤信息被寫入的順序,並記錄每個存儲器位置當前的使用級別,幫助控制器快速、準確找到想要的信息。

  將上面那段話用更專業的表達說,DNC 是一個遞歸神經網絡。在每個時間步長,它具有由當前存儲的內容(以及諸如內存使用等輔助信息)組成的狀態,並將在時間 t 的輸入映射到時間 t 的輸出。它的實現是一組 RNNCore 模塊的集合,這能使不同模塊一起試驗架構的不同變體。

  讀取(access)模塊是主要的 DNC 邏輯發生的地方;因為這是內存寫入和讀取的地方。在每個時間步長,access 模塊的輸入是從 controller 傳遞的向量,輸出是從內存讀取的內容。它使用另外兩個 RNNCore:跟蹤內存寫入順序的 TemporalLinkage ,以及跟蹤哪些內存位置已經被寫入,而且隨後還沒被「freed」的 Freeness。這些都在 addresses.py 上定義。

  Controller 模塊「控制」存儲內容的訪問。通常情況下,它是一個前饋網絡或(可能很深的)LSTM 網絡,它的輸入是當前的整個遞歸網絡的輸入,與來自前一個時間步長的 access 模塊的讀取內存輸出相連接。

  DNC 簡單地包裝 access 模塊和 controller 模塊,並形成整個架構的基本 RNNCore 單元。這在 dnc.py 上定義。

  能夠朝著目標不斷「進化」的計算機

  DNC 的優勢在於,其「中央處理器」Controller 是神經網絡,神經網絡系統不需要、也不能預先編程,它是通過不斷試錯、學習逐漸改變內部的神經連接,讓整個神經網絡的反應逐漸接近正確的解決方案。

  利物浦大學計算機軟體研究生張嘉偉對新智元介紹:DNC 最核心的理念是可微分圖靈機,也就意味著像現在的計算機架構一樣可以實現很多的算法甚至軟體。

  不過不同的是,只要有一定的目標它們可以向著目標不斷「進化」,換句話說,就像你的計算機會不斷根據你的習慣和任務要求不斷改變自己。當然,這個需要很多的強化學習的介入,僅靠監督學習很困難,應該是 hybrid learning system,雖然目前只是開始,但這是打開了一扇大門,意義深遠。很有趣的是,如果能基於此實現學習閉環,也就是結合強化學習之後實現自主目標規劃,這樣的系統能不能從零學習人類語言?這將是令人激動但肯定也充滿困難的領域。剖開表象,裡面還是知識表徵-數學登上舞臺的地方。

  開原始碼,教你訓練自己的 DNC

  DeepMind 將 DNC 開源,必定吸引大量開發人員和研究者都來參與訓練。DNC 作為一個能夠朝著目標不斷「進化」的原型計算機,其改進的速度也必將加快,甚至還會出現更多新的思路。

  安裝 DNC 需要用到 TensorFlow 和 Sonnet。正好此前 DeepMind 將其內部深度學習框架 Sonnet 開源,開發人員和研究者可以更好地訓練 DNC。

  DeepMind 在GitHub 頁面提供了一個樣例訓練腳本,用於不斷複製輸入給定字符串的算法任務,Python 執行如下:

通過 flags 可以指定訓練選項,包括模型和優化器的參數:

  模型過一段時間自動保存,或者說 checkpointing 是默認關閉的。要開啟這項功能,使用 the checkpoint_interval flag。例如 checkpoint_interval=10000,將確保系統運行每 10000 步自動存檔。模型默認的自動存檔是 /tmp/tf/dnc/ ,由此訓練可以繼續。

  如果要指定另外的存檔庫(checkpoint directory),使用 checkpoint_dir flag。不過要注意:在使用不同的模型參數重新訓練之前,要先將 /tmp/tf/dnc/ 刪除,避免出錯。

  在 dnc.py 中的 DNC class 可以用作標準的 TensorFlow rnn core,並用 TensorFlow rnn ops 在任何序列任務上展開 ,例如 tf.nn.dynamic_rnn。

  DNC 可用在哪?圖形推理、理解家譜、符號分析和更多

  DeepMind 公開了當時的論文,DNC 完成三項任務的原理也終於揭曉。首先,DeepMind 想測試 DNC 構建數據結構並使用這些數據結構解決問題的能力。圖形數據結構應用廣泛,可以表示關係(連接)、路徑和周期。DeepMind 在論文中展示了 DNC 可以成功地理解圖形結構,比如家譜或傳輸網絡。

  在沒有先驗知識的情況下,在倫敦地鐵地鐵導航

  此外,DNC 還能在沒有先驗知識的情況下規劃在倫敦地鐵上的最佳路線,解決涉及用符號語言描述目標的移動拼圖謎題。

  解決結構化數據任務。a. 隨機生成的訓練用圖,也就是說 DNC 是使用隨機圖進行訓練的。b. 倫敦地鐵圖線路中轉站,用作遍歷和最短路徑任務的泛化測試。隨機七步遍歷(其示例在中間左邊欄)得到 98.8% 的平均精度。對所有可能的四步最短路徑(中間右欄)測試平均精度為 55.3%。c. 用作泛化推理任務測試的家譜;測試了四步關係(從 Freya 到 Fergus,藍色虛線表示),平均精度為 81.8%。下圖灰色欄中列出了測試期間網絡處理的符號序列。

  理解家譜,「學以致用」

  在理解家譜的任務中,論文展示了 DNC 可以回答需要進行複雜推理的問題。例如,研究人員在家譜結構圖中只標註了父母、孩子和兄弟姐妹的關係,DNC 可以回答誰是誰的舅母的叔叔這樣的問題。

  比較以前學到的信息並將其推廣到用於新問題的推理,這是傳統神經網絡不能做到的。

使用強化學習解決拼圖遊戲

  DeepMind 論文中還展示了通過強化學習訓練 DNC。在完成這個任務時,DNC 給出每一步怎麼走,研究人員會對這個「答案」評分,具體是讓 DNC 根據指令完成一個拼圖遊戲。研究人員會發出指令:將淺藍色塊放在綠色的下面,將橙色放在紅色左邊,將紫色放在橙色下面;淺藍色放在深藍色右邊……

  在新智元去年的對 DNC 的報導中,由於信息有限,我們只提到了 DNC 能夠 「解決涉及用符號語言描述目標的移動拼圖謎題」。現在,我們知道了這項任務的全貌。

  當時,德國雅各布大學研究者 Herbert Jaeger 在同一期的 Nature 刊登評論文章《深度神經推理》,稱 Graves 等人證明了人工神經網絡系統能夠學會符號推理的某些重要(non-trivial)、核心內容。

  Graves 等人使用機器學習中的深度學習方法,在一個人工神經系統中,得到了一些關鍵的符號推理機制。他們的系統能通過從樣本中學習符號推理規則解決複雜問題。這一成就被認為有潛力解決神經符號(neural-symbolic)的集成難題。」

  Jaeger 認為,眼下單憑 DNC 無法在邏輯數據挖掘中與最先進的數字計算方法匹敵。但是,一種靈活的、根據 DNC 拓展出來的工作記憶,或許會讓深度學習應用拓展到與需要理性推理的大數據領域,比如生成視頻評論,或者進行文本語義分析。

  內部升級 DNC,可擴展到更大任務上面

  DNC 發布後不久,DeepMind 就在 DNC 的基礎上做了改善,在 arXiv 上發表了論文 「Scaling Memory-Augmented Neural Networks with Sparse Reads and Writes」,在 DNC 基礎上提出了新架構 SMA。其中,DNC 的第一作者 Alex Graves 及其他幾位主要作者 Greg Wayne、Tim Harley 也是這篇論文作者。

  SMA 比 DNC 強的地方在於「可擴展」,作者提出了一種端到端的可微分儲存器讀寫機制,在差不多規模的數據集執行小數據(one-shot)Omniglot 字符識別等任務效率與 DNC 可比,還能擴展到更大的任務上面。

  可以說,這是 DeepMind 內部對 DNC 升級和改進。具體內容參見新智元此前的報導:DeepMind 發布 DNC 升級版,擁有稀疏讀寫頭的可擴展記憶增強神經網絡

  業界熱議還有很長的路要走,DNC 展示神經計算全新可能性

  還記得當 DNC 的論文發出不久,Facebook 人工智慧研究中心(FAIR)研究員、深度學習開源框架 Torch 作者田淵棟評論認為,「DNC是革命性突破」言過其實。這篇文章模型複雜,【手工設計太多】,比如說組合各種不同的 Attention 模型,手工「動態」分配內存而不是學習得到。實驗相對簡單,沒有在大規模數據集上測試性能。總的來說不及前兩篇Nature,宣傳還是一貫地好。技術上來說,田淵棟認為這一模型隱含地學到了搜索的啟發式函數(heuristic /span>

  Facebook 人工智慧研究中心(FAIR)研究員、深度學習開源框架 Caffe 作者賈揚清認為,這是從手動調 feature 變成了手動調網絡結構。頗有戲謔意味。對於這一說法,田淵棟表示以後不可能一直這樣,目前主要還是因為我們不懂原理是什麼。

  現在,DeepMind 將 DNC 開源,還配合開源了能夠更好訓練 DNC 的框架 Sonnet。DNC 的原理也全部公開。

  DeepMind 研究員在博客中介紹,類解根據符號語言描述移動拼圖的任務,研究人員和開發者可以建立大量這樣的目標,然後請求 DNC 網絡在一個操作的基礎上,執行另一個目標操作。在這種情況下,DNC 可以同時存儲幾個子程序,有一個可能的目標,並且據此決定如何執行。

  推理的一個關鍵前提是記憶,在傳統計算機中,記憶的角色由隨機訪問內存(RAM)承擔。大部分神經網絡存在的問題是,假設智能體 A 在玩遊戲 A' 時表現很好乃至超越人類專家水平,但讓這個智能體 A 去玩遊戲 B 表現就不行了。

  DNC 包含了若干個模塊,所有的這些模塊都完全不是符號化的,彼此之間通過純粹的模擬激活模型來交換信息流(streams),正如從生物大腦中記錄的那樣。雖然在人類的推理和電腦程式運行之間存在明顯的相似之處。但是,我們在理解如何把它們中的任何一個部署於生物或者人工神經網絡時,依然缺乏足夠知識。

  無論是讓神經網絡擁有「記憶」,還是人類記憶本身這個問題,目前都還沒有得到很好的解答。DeepMind 的 DNC 展示了一種不同與傳統數字計算機的「認知神經計算機」,以及對認知和神經科學的啟示:現在有一臺機器,在不需要事先編程的情況下,能夠自己組織信息,解決問題。

    文章來源:微信公眾號新智元

(責任編輯:季麗亞 HN003)

相關焦點

  • 谷歌DeepMind 的可微分神經計算機 DNC 怎麼樣?看 Facebook AI...
    賈揚清,擁有加州大學伯克利分校計算機科學博士學位、清華大學碩士學位和學士學位,曾於新加坡國立大學、微軟亞洲研究院近日,谷歌的 AI 部門 DeepMind 開發了一種叫做可微分神經計算機(DNC)的神經網絡模型,相關論文發表於 10 月 12 日在線出版的《自然》雜誌上,題為《 利用神經網絡與外部動態存儲器進行混合計算》。這種新模型將神經網絡與可讀寫的外部存儲器結合,既能像神經網絡那樣通過試錯和樣本訓練進行深度學習,又能像傳統計算機一樣處理數據。
  • DeepMind開源薛丁格方程求解程序:從量子力學原理出發,TensorFlow...
    這在物理中叫做「泡利不相容原理」。費米網絡正是從這個基本物理原理出發,因此DeepMind將其命名為FermiNet。交換後符號相反,這可能會讓你想到線性代數中的行列式。行列式任意兩行交換,輸出結果就要乘以-1。
  • 計算機圖形也能自動可微:MIT學神的微分太極框架開源
    機器之心機器之心報導參與:一鳴、杜偉去年5月,機器之心報導了 MIT 華人學神胡淵鳴等開源的計算機圖形庫——太極。近日,這位作者聯合其他研究者推出了自動微分版本的太極——微分太極。
  • 7 Papers|MIT學神開源微分太極;北大等提出沒有乘法的神經網絡
    機器之心&ArXiv Weekly Radiostation參與:杜偉、楚航、羅若天本周的重要論文有 MIT 學神胡淵鳴等開源的自動微分版太極以及北大、華為諾亞方舟實驗室等主張以加法運算代替深度神經網絡中的乘法運算。
  • 計算機圖形自動可微:MIT學神微分太極框架開源,論文被ICLR接收
    機器之心報導參與:一鳴、杜偉去年5月,機器之心報導了 MIT 華人學神胡淵鳴等開源的計算機圖形庫——太極。近日,這位作者聯合其他研究者推出了自動微分版本的太極——微分太極。這一框架可以基於太極實現自動微分,在物理模擬優化方面有很高的性能和靈活性。這意味著太極從計算機圖形學進入了機器學習的領域。
  • DeepMind發了篇物理論文,用神經網絡求解薛丁格方程
    這在物理中叫做「泡利不相容原理」。與函數線性組合相比,神經網絡在表示複雜函數時往往更具有優勢。在構造FermiNet之初,研究人員就把泡利不相容原理作為第一性原理引入神經網絡。參考連結:https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.033429https://github.com/deepmind
  • DeepMind提出可微分邏輯編程,結合深度學習與符號程序優點
    DeepMind在最近發表的一篇論文中,提出了可微分歸納邏輯編程方法ILP,既能解決傳統歸納邏輯編程擅長的符號類任務,也對噪聲數據、訓練集中的誤差有一定容忍度,還可以通過梯度下降來訓練。怎麼樣?我們最近在《JAIR》期刊(Journal of AI Research)上發表的論文表明,系統可以將直觀的感性思維和概念性的可解釋推理結合起來。我們所描述的ILP(可微分歸納邏輯編程,Differentiable Inductive Logic Programming)系統具有下列特性:抗噪聲、數據上很經濟、能產生可解釋的規則。
  • 華為開源自研AI框架MindSpore!自動微分、並行加持,一次訓練,可多...
    2019年8月份,華為輪值董事長徐直軍介紹,MindSpore可以實現統一架構,一次訓練,多處部署。而且,通過實現AI算法即代碼,MindSpore可以顯著減少模型開發時間。  MindSpore為什麼能夠實現這些能力?伴隨著開源,它更多的特性,正在顯露出來。
  • DeepMind開源AlphaFold,蛋白質預測模型登上《Nature》
    1月15日,DeepMind關於AlphaFold模型與代碼通過了同行評審發布在了雜誌《nature》上面。並且模型和代碼已經開源。代碼:https://github.com/deepmind/deepmind-research/tree/master/alphafold_casp13模型:https://www.biorxiv.org/content/10.1101/846279v1.full.pdf根據DeepMind的介紹,在預測蛋白質結構的物理性質方面使用了兩種不同的方法來構建預測模型
  • DeepMind最新發現!神經網絡的性能竟然優於神經符號模型
    有人可能要問了,什麼是注意力機制呢? 計算機視覺中的注意力機制(attention)的基本思想,就是想讓系統學會注意力——能夠忽略無關信息而關注重點信息。 總的來說,注意力機制就是一種一次只專注於一個元素或幾個元素的算法機制。
  • 機器之心年度盤點:2018年重大研究與開源項目
    本文的目錄如下所示:自然語言處理預訓練語言模型機器翻譯谷歌 Duplex生成模型大大的 GAN流模型神經網絡新玩法圖神經網絡神經常微分方程計算機視覺視覺遷移學習強化學習與遊戲徳撲星際爭霸他們提出了一種名為神經常微分方程的模型,這是一種新型深度神經網絡。神經常微分方程不拘於對已有架構的修修補補,它完全從另外一個角度考慮如何以連續的方式藉助神經網絡對數據建模。神經常微分方程走了另一條道路,它使用神經網絡參數化隱藏狀態的導數,而不是如往常那樣直接參數化隱藏狀態。這裡參數化隱藏狀態的導數就類似構建了連續性的層級與參數,而不再是離散的層級。
  • 神經圖靈機深度講解:從圖靈機基本概念到可微分神經計算機
    這裡的關鍵思想是神經圖靈機基本上就是可微分的圖靈機,這是很重要的,因為我們每天在計算機上做的算法和事情對計算機來說是非常困難的,原因是計算機的計算是絕對的。要麼是 0 要麼是 1。計算機在「非此即彼」的邏輯或者整數中運作。然而大多數的神經網絡和機器學習實際上不是這樣的。它們使用實數。
  • 可微分的「OpenCV」:這是基於PyTorch的可微計算機視覺庫
    機器之心整理參與:思如何打造一個可微分的 OpenCV?如何將圖像處理嵌入到訓練流程中?你需要 Kornia 這個開源可微的計算機視覺庫。在這個項目中,開發者提出了一種新型開源可微分計算機視覺庫 Kornia,並且它建立在 PyTorch 之上。Kornia 包含了一組例程和可微分模塊,並致力於解決通用計算機視覺問題。在 Kornia 的核心代碼中,它使用 PyTorch 作為主要後端,並高效地利用反向模式自動微分機制來定義並計算複雜函數的梯度。
  • 用神經網絡求解薛丁格方程,DeepMind開啟量子化學新道路
    近日,DeepMind 的科學家開發了一種新的神經網絡架構,可以用於近似計算薛丁格方程。這為深度學習在量子化學領域的發展奠定了基礎。論文地址:https://arxiv.org/abs/1909.02487神經網絡已知最好的應用是在人工智慧領域——視覺、語音和遊戲,但它們在科學和工程領域也有嚴肅的應用。
  • DeepMind破解蛋白質摺疊難題
    1980年代和1990年代,儘管早期計算機科學家已經取得了進展,但是從蛋白質的組成中推斷結構仍非易事。為什麼預測蛋白質的形狀非常困難?在自然界中,蛋白質是胺基酸鏈,可以自發摺疊成無數令人難以想像的形狀,有些甚至在幾毫秒之內完成。
  • DeepMind突破!首次用深度學習從第一性原理計算分子能量
    DeepMind發表了一項新研究,展示了深度學習如何幫助解決現實系統中的量子力學基本方程問題,相關論文發表在物理學期刊《Physical Review Research》,代碼也已經開源。這種新的神經網絡架構叫做Fermionic神經網絡或FermiNet,該架構適合對大量電子集合體(化學鍵的基本組成部分)的量子態進行建模。DeepMind表示,FermiNet是第一個利用深度學習來從第一性原理計算原子和分子能量的嘗試,並擁有足夠的精確度。
  • DeepMind破解蛋白質摺疊難題
    AlphaFold解決蛋白質摺疊問題的方法DeepMind 在2018年首次使用最初版本的 AlphaFold 參加 CASP13,在參賽者中獲得了最高的準確度,隨後又在《自然》雜誌上發表了一篇關於 CASP13 方法及相關代碼的論文,這篇論文繼續啟發了其他工作和社區開發的開源實現。
  • NumPy、AI基礎設施可微分編程、技術實踐,這是一場開發者的盛會
    Julia 創始人 Viral Shah:可微分編程2018 年初,現代人工智慧開拓者之一、圖靈獎得主 Yann Lecun 曾在 Facebook 上表示:「深度學習已死,可微分編程萬歲」。可微分編程是深度神經網絡背後成功理念的歸納和總結。通過在各種通用程序結構中實現自動微分並大規模部署在 GPU 和谷歌 TPU 等加速器上,我們可以解決一系列新的問題。
  • DeepMind推人工智慧DNC
    而根據報導,開發Alpha Go的人工智慧團隊DeepMind,近日推出一個能夠根據記憶自主學習的計算機 DNC(可微神經計算機)。  這臺計算機同樣也是神經網路計算系統,它能夠自主學習、分析相關數據,然後提供答案。如果你輸入北京地鐵數據,它就能夠協助人類規劃兩個站點之間最佳換線路線;如果輸入家族族譜,它就可以很快回答家族當中,任意兩人之間的關係。
  • LeCun最新演講:深度學習大革命來了,可微分編程潛力巨大
    他介紹了當前AI的一些最新進展,FAIR在計算機視覺領域提出的一些最先進的架構。他提到,未來還會出現更多的有關深度學習的變革,比如說更複雜的架構,同時也會出現更多的新理論。今天上午在北京舉行的GMIC大會上,Facebook首席AI科學家Yann LeCun進行了主題演講。他介紹了當前AI的一些最新進展,FAIR在計算機視覺、機器翻譯等領域提出的一些最先進的架構。