天天看點

元學習:實作通用人工智能的關鍵!

meta learning(元學習)或者叫做 learning to learn(學會學習)已經成為繼reinforcement learning(增強學習)之後又一個重要的研究分支(以後僅稱為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相關的文章:

<a href="https://zhuanlan.zhihu.com/p/27629294" target="_blank">學會學習learning to learn:讓ai擁有核心價值觀進而實作快速學習</a>

<a href="https://zhuanlan.zhihu.com/p/27696130" target="_blank">機器人革命與學會學習learning to learn</a>

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

關于meta learning的概念本文就不介紹了,在上面列出的兩篇blog已有講解。本文将和大家分享一下meta learning的一些最前沿的研究進展,可以說是百家争鳴的階段。

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

關于meta learning的papers,我收集了一下:

<a href="http://link.zhihu.com/?target=https%3a//github.com/songrotek/meta-learning-papers" target="_blank">songrotek/meta-learning-papers</a>

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

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這篇文章為例,我們看一下他的網絡結構:

元學習:實作通用人工智能的關鍵!

我們可以看到,網絡的輸入把上一次的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

元學習:實作通用人工智能的關鍵!

這篇文章的思路很清奇,訓練一個通用的神經網絡來預測梯度,用一次二次方程的回歸問題來訓練,然後這種方法得到的神經網絡優化器比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.

元學習:實作通用人工智能的關鍵!

這篇文章構造一個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.

元學習:實作通用人工智能的關鍵!

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

元學習:實作通用人工智能的關鍵!

怎麼把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., &amp; levine, s. (2017). model-agnostic meta-learning for fast adaptation of deep networks. arxiv preprint arxiv:1703.03400.

元學習:實作通用人工智能的關鍵!

這篇文章的基本思路是同時啟動多個任務,然後擷取不同任務學習的合成梯度方向來更新,進而學習一個共同的最佳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.

元學習:實作通用人工智能的關鍵!

直接利用之前的曆史資料,思路極其簡單,效果極其之好,是目前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.

元學習:實作通用人工智能的關鍵!

本文構造了一個meta-critic network(包含meta value network和task-actor encoder)來學習預測actor network的loss。對于reinforcement learning而言,這個loss就是q value。

元學習:實作通用人工智能的關鍵!

也算是一種全新的思路。

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

====================================分割線================================

本文作者:思穎

繼續閱讀