從NLP終生學習開始,談談深度學習中記憶結構的設計和使用
雷鋒網 (公眾號:雷鋒網) AI 科技評論按:終生學習,簡單說是讓模型有能力持續地學習新的資訊,但更重要的是讓模型學習新資訊的同時還不要完全忘記以往學習過的內容(避免「災難性遺忘」),是深度學習的長期發展和大規模應用中必不可少的一項模型能力。
近期,「NLP 網紅」Sebastian Ruder 小哥把終生學習能力融入了語言模型中,方法是加入一個片段式記憶儲存模組。實際上類似的做法也並不是第一次得到應用了,雷鋒網 AI 科技評論一併介紹幾篇相關論文。
Episodic Memory in Lifelong Language Learning
終生語言學習中片段式記憶的作用
論文地址:
內容簡介:首先我們把「終生語言學習」(lifelong language learning)任務定義為:模型需要從連續的文字樣本流中學習,其中不會指明資料集的邊界。作者們提出了一個用片段式記憶儲存結構增強語言模型的方式,模型中的儲存可以進行稀疏經驗重放,也可以進行區域性適應,以減緩這種任務中的災難性遺忘現象。另外,作者們也表明,這個記憶儲存結構的空間複雜度可以進行大幅簡化(可以降低 50% 到 90%),只需要隨機選擇把哪些樣本儲存在記憶中,這種做法對效能的影響非常小。作者們認為片段式記憶儲存部件是通用語言智慧模型中不可或缺的重要元件。
透過記憶能力增強模型表現其實並不是新鮮事,「經驗重放(experience replay)」的思路最早可以追溯到 1990 年代的強化學習機器人控制論文 《Programming Robots Using Reinforcement Learning and Teaching》( )以及《Self-Improving Reactive Agents Based On Reinforcement Learning, Planning and Teaching》 ( ),論文中用教學的方式讓機器人學會新的技能,那麼記憶能力就與教學過程相配合,記錄已經學會的技能。
下面我們再介紹幾個新一些的成果
Human Level Control Through Deep Reinforcement Learning
透過深度強化學習實現人類級別的控制
論文地址:
論文亮點:DeepMind 發表在《Nature》的鼎鼎大名的 DQN 論文中也使用了經驗重放。在強化學習的設定中,智慧體透過與環境互動獲得資料(相當於監督學習中的標註資料集),經驗重放可以讓智慧體重放、排練曾經執行過的動作,更高效地使用已經採集到的資料。當然了,DQN 的另一大貢獻是學習到原始輸入的高維表徵,不再需要人工的特徵工程。
Memory-Augmented Monte Carlo Tree Search
記憶增強的蒙特卡洛樹搜尋
論文地址:
AAAI 2018 傑出論文
論文簡介:這篇論文把一個記憶結構和蒙特卡洛樹搜尋結合起來,為線上實時搜尋提出了一種新的利用泛化性的方式。記憶結構中的每個儲存位置都可以包含某個特定狀態的資訊。透過綜合類似的狀態的估計結果,這些記憶可以生成逼近的估計值。作者們展示了,在隨機情況下,基於記憶的逼近值有更高可能性比原始的蒙特卡洛樹搜尋表現更好。
經驗重放還有一些高階改進
Prioritized Experience Replay
優先經驗重放
論文地址:
論文亮點:這篇論文的作者們提出,在之前的研究中,智慧體學習到的經驗是均勻地從重放記憶中取樣的。而既然記憶的儲存來自於智慧體實際的探索活動,這就意味著智慧體進行活動、獲得記憶的分佈和從記憶中取樣、利用記憶的分佈是一樣的。作者們認為,智慧體獲得的記憶中肯定有一些是重要的、有一些是不那麼重要的,我們應當更多地利用比較重要的記憶,這樣可以用同樣多的記憶提高智慧體的表現。這篇論文中作者們就設計了一個為記憶的優先程度排序的框架,更多地重放重要的記憶,以便更快地學習。作者們在 DQN 上做了這個實驗,改進後的 DQN 比原來的(均一記憶)的 DQN 在絕大多數遊戲中都取得了更好的表現。
Hindsight Experience Replay
後見經驗重放
論文地址:
論文亮點:假想要讓機械臂執行一個用末端在桌面上推方塊到指定地點的任務。對於強化學習模型來說,初次嘗試基本是註定失敗的;如果不是特別的幸運,接下來的幾次嘗試也同樣會失敗。典型的強化學習演算法是無法從這些失敗經驗中學習的,因為它們一直接收到固定的失敗(-1)反饋,也就不含有任何可以指導學習的訊號。
人類在執行任務的時候其實有一個直覺的感受是:即便我沒有達成原來那個給定的目標,我起碼還是完成了另外一個目標的。HER 的核心思想就是把這一人類直覺公式化。在這裡,HER 會把實際達到的目標暫且看成要達到的目標;進行這個替換以後,演算法認為自己畢竟達到了某個目標,從而可以得到一個學習訊號進行學習,即便達到的目標並不是最開始任務要求的那個目標。如果持續進行這個過程,最終演算法可以學會達成任意一個目標,其中也自然就包括了我們最開始要求的目標。
依靠這樣的辦法,即便最開始的時候機械臂根本就碰不到圓盤、以及反饋是稀疏的,最終它也學會了如何把圓盤撥到桌子上的指定位置。這個演算法之所以稱為 Hindsight Experience Replay 後見經驗重放,就是因為它是在完成了一次動作之後再選定目標、重放經驗進行學習。也所以,HER 可以和任何策略無關的強化學習演算法結合起來使用,比如 DDPG+HER。
這 7 篇論文打包下載:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2656858/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談深度學習中的機率深度學習
- 從機器學習談起,深度好文機器學習
- 淺談深度學習分散式表示以及不同結構深度學習分散式
- 從零開始學機器學習——入門NLP機器學習
- 從零開始JAVA資料結構學習筆記(一)Java資料結構筆記
- 「雜談」GitHub上最全的機器學習和深度學習資料Github機器學習深度學習
- 《Python深度學習從零開始學》簡介Python深度學習
- 【教程】如何從零開始構建深度學習專案?深度學習
- 淺談深度學習的落地問題深度學習
- 淺談深度學習:如何計算模型以及中間變數的視訊記憶體佔用大小深度學習模型變數記憶體
- 【深度】監督學習—從好的label開始
- 《谷歌JAX深度學習從零開始學》簡介谷歌深度學習
- 從 Quora 的 187 個問題中學習機器學習和 NLP機器學習
- 淺談深度學習落地問題深度學習
- 談談人工智慧和機器學習的資料架構人工智慧機器學習架構
- JVM學習(一)——記憶體結構JVM記憶體
- NLP與深度學習(六)BERT模型的使用深度學習模型
- 結構化程式設計--學習筆記程式設計筆記
- 【深度學習】如何從零開始構建深度學習專案?這裡有一份詳細的教程深度學習
- 談談自己學習Linux的心得Linux
- 談談Java工程師的學習Java工程師
- 從零開始學習機器學習機器學習
- 談談如何高效學習開源專案
- 剛開始學習nlp時遇到的問題
- 從哲學層面淺談計算機學習方法論計算機
- 學習筆記:深度學習中的正則化筆記深度學習
- 這一次,終於系統的學習了 JVM 記憶體結構JVM記憶體
- 談談機器學習與傳統程式設計之間的區別機器學習程式設計
- NLP與深度學習(一)NLP任務流程深度學習
- GPT-3,深度學習和NLP的巨大進步GPT深度學習
- 從頭開始強化學習:在Python筆記本中設計和解決任務強化學習Python筆記
- 風變程式設計,幫助你從零開始學習程式設計程式設計
- 0801-深度學習程式架構設計深度學習架構
- 談談最近的一點感悟和之後的學習安排
- 從零開始學習laravelLaravel
- 從零開始學習KafkaKafka
- 從頭開始學習VuexVue
- 談談一些學習心得