最前沿:百家爭鳴的Meta Learning/Learning to learn

2020-12-05 雷鋒網

雷鋒網按 :本文作者Flood Sung,本文原載於其知乎專欄——智能單元。雷鋒網已獲得原作者授權。

1 前言

Meta Learning(元學習)或者叫做 Learning to Learn(學會學習)已經成為繼Reinforcement Learning(增強學習)之後又一個重要的研究分支(以後僅稱為Meta Learning)。對於人工智慧的理論研究,呈現出了

Artificial Intelligence --> Machine Learning --> Deep Learning --> Deep Reinforcement Learning --> Deep Meta Learning

這樣的趨勢。

之所以會這樣發展完全取決於當前人工智慧的發展。在Machine Learning時代,複雜一點的分類問題效果就不好了,Deep Learning深度學習的出現基本上解決了一對一映射的問題,比如說圖像分類,一個輸入對一個輸出,因此出現了AlexNet這樣的裡程碑式的成果。但如果輸出對下一個輸入還有影響呢?也就是sequential decision making的問題,單一的深度學習就解決不了了,這個時候Reinforcement Learning增強學習就出來了,Deep Learning + Reinforcement Learning = Deep Reinforcement Learning深度增強學習。有了深度增強學習,序列決策初步取得成效,因此,出現了AlphaGo這樣的裡程碑式的成果。但是,新的問題又出來了,深度增強學習太依賴於巨量的訓練,並且需要精確的Reward,對於現實世界的很多問題,比如機器人學習,沒有好的reward,也沒辦法無限量訓練,怎麼辦?這就需要能夠快速學習。而人類之所以能夠快速學習的關鍵是人類具備學會學習的能力,能夠充分的利用以往的知識經驗來指導新任務的學習,因此Meta Learning成為新的攻克的方向。

與此同時,星際2 DeepMind使用現有深度增強學習算法失效說明了目前的深度增強學習算法很難應對過於複雜的動作空間的情況,特別是需要真正意義的戰略戰術思考的問題。這引到了通用人工智慧中極其核心的一個問題,就是要讓人工智慧自己學會思考,學會推理。AlphaGo在我看來在棋盤特徵輸入到神經網絡的過程中完成了思考,但是圍棋的動作空間畢竟非常有限,也就是幾百個選擇,這和星際2幾乎無窮的選擇對比就差太多了(按屏幕解析度*滑鼠加鍵盤的按鍵 = 1920*1080*10 約等於20,000,000種選擇)。然而在如此巨量選擇的情況下,人類依然沒問題,關鍵是人類通過確定的戰略戰術大幅度降低了選擇範圍(比如當前目標就是造人,挖礦)因此如何使人工智慧能夠學會思考,構造戰術非常關鍵。這個問題甚至比快速學習還要困難,但是Meta Learning因為具備學會學習的能力,或許也可以學會思考。因此,Meta Learning依然是學會思考這種高難度問題的潛在解決方法之一。

經過以上的分析,不過是為了得出下面的結論:

Meta Learning是實現通用人工智慧的關鍵!

在本文之前,專欄已經發布了兩篇和Meta Learning相關的文章:

之前採用Learning to Learn這個名稱是希望讓更多的知友明白這個概念,從本篇開始,我們會直接使用Meta Learning這個名稱(其實只是因為這個名稱看起來更專業更酷)

關於Meta Learning的概念本文就不介紹了,在上面列出的兩篇Blog已有講解。本文將和大家分享一下Meta Learning的一些最前沿的研究進展,可以說是百家爭鳴的階段。

2 Meta Learning百花齊放的研究思路

為什麼說Meta Learning的研究是百家爭鳴呢?因為每一家的研究思路都完全不同,真的是各種方法各種試,呈現出一種智慧大爆發的階段。

關於Meta Learning的papers,我收集了一下:

songrotek/Meta-Learning-Papers

這裡主要分析一下最近一兩年來的發展情況,先作個分類,然後做一下簡要的分析。

2.1 基於記憶Memory的方法

基本思路:既然要通過以往的經驗來學習,那麼是不是可以通過在神經網絡上添加Memory來實現呢?

代表文章:

[1] Santoro, Adam, Bartunov, Sergey, Botvinick, Matthew, Wierstra, Daan, and Lillicrap, Timothy. Meta-learning with memory-augmented neural networks. In Proceedings of The 33rd International Conference on Machine Learning, pp. 1842–1850, 2016.

[2] Munkhdalai T, Yu H. Meta Networks. arXiv preprint arXiv:1703.00837, 2017.

以Meta-Learning with memory-augmented neural networks這篇文章為例,我們看一下他的網絡結構:

<img data-rawheight="558" src="https://static.leiphone.com/uploads/new/article/pic/201708/b2ced0daa3c3d7f9e536ff58151cd9f2.png" data-rawwidth="2024" class="origin_image zh-lightbox-thumb" width="2024" data-original="https://pic4.zhimg.com/v2-7525e8a0e4cd5286ace041a0dcfa5ee7_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/b2ced0daa3c3d7f9e536ff58151cd9f2.png"/>

我們可以看到,網絡的輸入把上一次的y label也作為輸入,並且添加了external memory存儲上一次的x輸入,這使得下一次輸入後進行反向傳播時,可以讓y label和x建立聯繫,使得之後的x能夠通過外部記憶獲取相關圖像進行比對來實現更好的預測。

2.2 基於預測梯度的方法

基本思路:既然Meta Learning的目的是實現快速學習,而快速學習的關鍵一點是神經網絡的梯度下降要準,要快,那麼是不是可以讓神經網絡利用以往的任務學習如何預測梯度,這樣面對新的任務,只要梯度預測得準,那麼學習得就會更快了?

[1] Andrychowicz, Marcin, Denil, Misha, Gomez, Sergio, Hoffman, Matthew W, Pfau, David, Schaul, Tom, and de Freitas, Nando. Learning to learn by gradient descent by gradient descent. In Advances in Neural Information Processing Systems, pp. 3981–3989, 2016

<img data-rawheight="688" src="https://static.leiphone.com/uploads/new/article/pic/201708/4c02b5c24b94f5bcfe4eca28d718148f.png" data-rawwidth="1628" class="origin_image zh-lightbox-thumb" width="1628" data-original="https://pic3.zhimg.com/v2-40fc16572e360b4a2304ed3752c4bfee_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/4c02b5c24b94f5bcfe4eca28d718148f.png"/>

這篇文章的思路很清奇,訓練一個通用的神經網絡來預測梯度,用一次二次方程的回歸問題來訓練,然後這種方法得到的神經網絡優化器比Adam,RMSProp還要好,這樣顯然就加快了訓練。

2.3 利用Attention注意力機制的方法

基本思路:人的注意力是可以利用以往的經驗來實現提升的,比如我們看一個性感圖片,我們會很自然的把注意力集中在關鍵位置。那麼,能不能利用以往的任務來訓練一個Attention模型,從而面對新的任務,能夠直接關注最重要的部分。

[1] Vinyals, Oriol, Blundell, Charles, Lillicrap, Tim, Wierstra, Daan, et al. Matching networks for one shot learning. In Advances in Neural Information Processing Systems, pp. 3630–3638, 2016.

<img data-rawheight="926" src="https://static.leiphone.com/uploads/new/article/pic/201708/cc7a5a03c9aa3a0099a8e7e0ef9d9234.png" data-rawwidth="1482" class="origin_image zh-lightbox-thumb" width="1482" data-original="https://pic2.zhimg.com/v2-1f79503d56a4b6d7116e07bfba289ffd_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/cc7a5a03c9aa3a0099a8e7e0ef9d9234.png"/>

這篇文章構造一個attention機制,也就是最後的label判斷是通過attention的疊加得到的:

attention a則通過g和f得到。基本目的就是利用已有任務訓練出一個好的attention model。

2.4 借鑑LSTM的方法

基本思路:LSTM內部的更新非常類似於梯度下降的更新,那麼,能否利用LSTM的結構訓練出一個神經網絡的更新機制,輸入當前網絡參數,直接輸出新的更新參數?這個想法非常巧妙。

[1] Ravi, Sachin and Larochelle, Hugo. Optimization as a model for few-shot learning. In International Conference on Learning Representations (ICLR), 2017.

<img data-rawheight="574" src="https://static.leiphone.com/uploads/new/article/pic/201708/709147db54c44d8de09b3081bfbeb9c8.png" data-rawwidth="1608" class="origin_image zh-lightbox-thumb" width="1608" data-original="https://pic3.zhimg.com/v2-bed4bb6160971631243342dee1af5c0e_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/709147db54c44d8de09b3081bfbeb9c8.png"/>

這篇文章的核心思想是下面這一段:

<img data-rawheight="504" src="https://static.leiphone.com/uploads/new/article/pic/201708/17ad39fceeb727698b969035c963c833.png" data-rawwidth="1680" class="origin_image zh-lightbox-thumb" width="1680" data-original="https://pic4.zhimg.com/v2-1bb24f764fd47ad3903db7504a170243_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/17ad39fceeb727698b969035c963c833.png"/>

怎麼把LSTM的更新和梯度下降聯繫起來才是更值得思考的問題吧。

2.5 面向RL的Meta Learning方法

基本思路:既然Meta Learning可以用在監督學習,那麼增強學習上又可以怎麼做呢?能否通過增加一些外部信息的輸入比如reward,之前的action來實現?

[1] Wang J X, Kurth-Nelson Z, Tirumala D, et al. Learning to reinforcement learn. arXiv preprint arXiv:1611.05763, 2016.

[2] Y. Duan, J. Schulman, X. Chen, P. Bartlett, I. Sutskever, and P. Abbeel. Rl2: Fast reinforcement learning via slow reinforcement learning. Technical report, UC Berkeley and OpenAI, 2016.

兩篇文章思路一致,就是額外增加reward和之前action的輸入,從而強制讓神經網絡學習一些任務級別的信息:

2.6 通過訓練一個好的base model的方法,並且同時應用到監督學習和增強學習

基本思路:之前的方法都只能局限在或者監督學習或者增強學習上,能不能搞個更通用的呢?是不是相比finetune學習一個更好的base model就能work?

[1] Finn, C., Abbeel, P., & Levine, S. (2017). Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks. arXiv preprint arXiv:1703.03400.

<img data-rawheight="478" src="https://static.leiphone.com/uploads/new/article/pic/201708/a8879fa29c4961f86ebe12f3d86821e8.png" data-rawwidth="1070" class="origin_image zh-lightbox-thumb" width="1070" data-original="https://pic4.zhimg.com/v2-c190d5bca7574803860f45229a5cc20f_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/a8879fa29c4961f86ebe12f3d86821e8.png"/>

這篇文章的基本思路是同時啟動多個任務,然後獲取不同任務學習的合成梯度方向來更新,從而學習一個共同的最佳base。

2.7 利用WaveNet的方法

基本思路:WaveNet的網絡每次都利用了之前的數據,那麼是否可以照搬WaveNet的方式來實現Meta Learning呢?就是充分利用以往的數據呀?

[1] Mishra N, Rohaninejad M, Chen X, et al. Meta-Learning with Temporal Convolutions. arXiv preprint arXiv:1707.03141, 2017.

<img data-rawheight="536" src="https://static.leiphone.com/uploads/new/article/pic/201708/beadea472f4a5726e633072ffd1fe928.png" data-rawwidth="1256" class="origin_image zh-lightbox-thumb" width="1256" data-original="https://pic3.zhimg.com/v2-79a1bc644048da6332d2217d14a2acf6_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/beadea472f4a5726e633072ffd1fe928.png"/>

直接利用之前的歷史數據,思路極其簡單,效果極其之好,是目前omniglot,mini imagenet圖像識別的state-of-the-art。

2.8 預測Loss的方法

基本思路:要讓學習的速度更快,除了更好的梯度,如果有更好的loss,那麼學習的速度也會更快,因此,是不是可以構造一個模型利用以往的任務來學習如何預測Loss呢?

[1] Flood Sung, Zhang L, Xiang T, Hospedales T, et al. Learning to Learn: Meta-Critic Networks for Sample Efficient Learning. arXiv preprint arXiv:1706.09529, 2017.

<img data-rawheight="498" src="https://static.leiphone.com/uploads/new/article/pic/201708/546971a2101a464216ba828786f6d87e.png" data-rawwidth="1262" class="origin_image zh-lightbox-thumb" width="1262" data-original="https://pic3.zhimg.com/v2-0ccac1a10a06f57b4ac1c33a16e9d616_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/546971a2101a464216ba828786f6d87e.png"/>

本文構造了一個Meta-Critic Network(包含Meta Value Network和Task-Actor Encoder)來學習預測Actor Network的Loss。對於Reinforcement Learning而言,這個Loss就是Q Value。

本文詳細分析詳見:學會學習Learning to Learn:讓AI擁有核心價值觀從而實現快速學習

本文 紐約大學的Kyunghyun Cho 做了評價:

<img data-rawheight="322" src="https://static.leiphone.com/uploads/new/article/pic/201708/fe102ee6a5dcc58ba650d429f74529ac.png" data-rawwidth="1298" class="origin_image zh-lightbox-thumb" width="1298" data-original="https://pic1.zhimg.com/v2-1dfc2d63f819d4818d616495523b383c_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/fe102ee6a5dcc58ba650d429f74529ac.png"/>

也算是一種全新的思路。

3 小結

從上面的分析可以看出,Meta Learning方興未艾,各種神奇的idea層出不窮,但是真正的殺手級算法還未出現,非常期待未來的發展!也希望更多的朋友們可以投入到Meta Learning這個研究方向上來。

相關焦點

  • 小樣本學習(Few-shot Learning)綜述
    Meta Learning,又稱為 learning to learn,在 meta training 階段將數據集分解為不同的 meta task,去學習類別變化的情況下模型的泛化能力,在 meta testing 階段,面對全新的類別,不需要變動已有的模型,就可以完成分類。形式化來說,few-shot 的訓練集中包含了很多的類別,每個類別中有多個樣本。
  • 英語作文:Learning Foreign Language
    英語寫作>中小學英語作文>正文英語作文:Learning Foreign Language 2013-01-15 15:02 來源:恆星英語 作者:   學習外語(Learning Foreign Language)   I love learning
  • Multi-Label Classification with Deep Learning
    In this tutorial, you will discover how to develop deep learning models for multi-label classification.
  • 【徵稿】Evolutionary Transfer Learning and Transfer Optimisation
    In machine learning, transfer learning aims to transfer knowledge acquired in one problem domain, i.e. the source domain, onto another domain, i.e. the target domain.
  • 牛津版高二上期Unit 2 Continuous Learning閱讀課說課設計
    In addition, after many years of English learning, they』ve known many words, sentences and some skills to solve English problems.
  • Taking advantage of online learning, in nephrology and beyond!
    The outbreak has forced us to replace a significant amount of classroom teaching with online learning. Some of us are still getting used to it.
  • RBM的Learning問題
    1.受限波爾茨曼機的learning
  • 吳恩達deeplearning.ai五項課程完整筆記了解一下?
    自吳恩達發布 deeplearning.ai 課程以來,很多學習者陸續完成了所有專項課程並精心製作了課程筆記,在此過程中機器之心也一直在為讀者推薦優質的筆記。上個月,deep learning.ai 第五課發布,該系列課程最終結課。Mahmoud Badry 在 GitHub 上開源了五項課程的完整筆記,介紹了包括序列模型在內的詳細知識點。
  • ​大牛的《深度學習》筆記,Deep Learning速成教程
    聽起來感覺deeplearning很牛那樣。那什麼是deep learning?為什麼有deep learning?它是怎麼來的?又能幹什麼呢?目前存在哪些困難呢?這些問題的簡答都需要慢慢來。咱們先來了解下機器學習(人工智慧的核心)的背景。
  • X-ray Imaging through Machine LearningI 本周物理學講座
    報告人:Ge Wang,Rensselaer Polytechnic Institute時間:8月9日(周四)15:00單位:中科院高能所地點:化學樓C305Computer vision and image analysis are great examples of machine learning
  • 如何理解深度學習分布式訓練中的large batch size與learning rate...
    雷鋒網 AI科技評論按,本文源自譚旭在知乎問題【如何理解深度學習分布式訓練中的large batch size與learning rate的關係?】下的回答,雷鋒網 AI科技評論獲其授權轉載。(1)理解SGD、minibatch-SGD和GD在機器學習優化算法中,GD(gradient descent)是最常用的方法之一,簡單來說就是在整個訓練集中計算當前的梯度,選定一個步長進行更新。GD的優點是,基於整個數據集得到的梯度,梯度估計相對較準,更新過程更準確。
  • CFA二級思維導圖分享:機器學習(Machine Learning)
    CFA二級思維導圖分享:機器學習(machine learning)Reading7主要了解機器學習的一些常見概念,主要分類、了解常用算法的原理及其用途。包括神經網絡(Neural Networks,NN/ANN)、深度學習(deep learning nets ,DLNs)和強化學習(Reinforcement learning ,RL)神經網絡由輸入層(Input layer)、隱藏層(hidden layers)和輸出層(Output layer)構成。深度學習是至少有3個,一般超過20個的隱藏層。
  • Scikit-learn玩得很熟了?這些功能你都知道嗎?
    Scikit-learn是Python所有的機器學習程序包中,你必須掌握的最重要的一個包,它包含各種分類算法,回歸算法和聚類算法,其中包括支持向量機、隨機森林、梯度提升、k均值和基於密度的聚類算法(DBSCAN),且旨在與Python數值庫NumPy和科學庫SciPy進行相互配合。它通過一個接口,提供了一系列的有監督和無監督算法。
  • 【預告】施汝為系列講座 | 武漢大學劉惠軍教授:Machine learning in the study of ...
    主題:Machine learning in the study of thermoelectric and topological materials主講人:劉惠軍 教授單位:武漢大學主辦方:合肥微尺度物質科學國家研究中心
  • Learn Pinyin With Ms.Ma Course.014
    Ma will lead everyone to learn what we have learned before. Today we will learn new finals and a Chinese character.Today’s Chinese character is very interesting.
  • 「學知識」不能說 「learn knowledge」,這是錯的
    我們首先重新認識learn這個單詞 4 學英語是learn English 還是 study English?
  • 一周AI最火論文 | 移動端的3D實時CNN正在成為現實,加速框架細節起底
    AI ScholarWeekly是AI領域的學術專欄,致力於為你帶來最新潮、最全面、最深度的AI學術概覽,一網打盡每周AI學術的前沿資訊。如果你關注推薦系統,那麼python版的LensKit推薦系統引擎庫(LKPY)可能會引起你的興趣。這是一個開源工具包,可用於構建、研究及學習推薦系統。
  • This 13-year-old helps kids around the world learn languages
    新聞來源:http://www.bbc.com/capital/story/20180306-this-13-year-old-helps-kids-around-the-world-learn-languagesThis 13-year-old helps kids