雷鋒網按 :本文作者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這個研究方向上來。