ICLR總結
1. 如何用增強學習中的Actor-Critic模型再加上課程學習來訓練Doom AI拿到AI比賽冠軍:
Training Agent for First-Person Shooter Game with Actor-Critic Curriculum Learning
2. 如何用卷積神經網路讓計算機讀入一個演算法的輸入輸出,自己寫代碼:
Unsupervised Program Induction with Hierarchical Generative Convolutional Neural Networks
3. 對於用ReLU作為傳遞函數的二層非線性神經網路的收斂性分析:
Symmetry-Breaking Convergence Analysis of Certain Two-layered Neural Networks with ReLU nonlinearity
--------------------
ICLR這個會議的投稿是即時公開的,上傳完文章之後,任何人都可以看到,不存在任何時延。翻閱投稿的論文,你會看到這個領域的迭代之快,世所罕見。我之前在專欄《快速迭代的人工智慧》裡面提到領域投稿的速度, 等到這次再看看投稿列表,發覺自己可能還低估了。
像「讓計算機自己寫代碼」這個想法,在去年的文章里還出現得不多,並且主要是以構建可微分計算機(比如說DeepMind的神經圖靈機,可微分神經計算機)的形式,讓神經網路通過端對端的梯度下降的優化方法,學會如求和排序等具體任務。但是這個思路有幾個比較大的問題,一個是因為神經網路的黑箱性質,對可微分計算機學習後使用的演算法沒辦法解釋;第二個是梯度下降法取決於初值的選取,且優化過程較慢;第三個是擴展性不好,對60個數排序可以,100個數就完全不行,有悖人類的直覺。而讓計算機生成代碼則沒有1和3這兩個問題,2也可以通過預先訓練神經網路生成代碼來克服,不通過優化,而用一遍前向傳播就可以了。我們的第二篇投稿(鏈接)就是基於這個想法,將演算法的輸入輸出的結果抽取特徵後,送入卷積神經網路文獻中層次式生成圖像的經典框架,生成一張二維圖,每行就是一行代碼,或者更確切地說,是代碼的概率分布。有了好的分布,就可以幫助啟發式搜索找到正確的程序。而神經網路的訓練數據,則由大量的隨機代碼,隨機輸入及隨機代碼執行後得到的輸出來提供,所以基本不需要人工干預,算是非監督的辦法。
等到今年的ICLR的文章一公布,隨便翻一翻就找到了七篇計算機自動生成(或者自動優化)代碼的文章。打開一看,引論里全在描述同樣的動機。看完之後,我心裡暗自慶幸我們及時投了出去,不然等到ICML就要被滅得渣都不剩了。當然方法上來說,大部分使用的還是RNN和Autoencoder,沒有像我們這樣腦洞大開用卷積神經網路的,而且就算是代碼里包含循環和分支,卷積網路也可以給出相對較好(比隨機和LSTM的baseline要好挺多)的預測。相比之下,大部分的文章還只是局限於直線式程序(straight-line program),即沒有分支和循環的程序。
另外增強學習這個領域目前也是大紅大紫。遊戲的應用當然是重頭戲,這次我們(@吳育昕)的Doom這篇文章用了DeepMind那邊最新的A3C訓練再加上課程學習(Curriculum Training)的方法,訓練出一個比較強的AI,這個AI讀取最近的4幀遊戲圖像,及它們的中心圖像(為了瞄準方便),和AI自己的遊戲數據(血量和子彈數),然後輸出AI應當做的六個動作(向前/左/右,左/右轉,開火,注意這裡沒有後退的選項)。我們自己寫了小地圖,先在小地圖上做了訓練,訓練時按照AI的成績去逐漸調節敵人的強弱,以加速訓練的進度,然後放進大地圖裡面再行訓練。最後我們還使用了一些人工的規則,先領會AI的意圖(比如說想右轉),然後用VizDoom裡面速度更快的命令取而代之。我們的AI參加了比賽,獲得了Track1(已知地圖)的冠軍。我們沒有像第二名那樣使用遊戲內部數據(比如說敵人是否出現在視野中)進行訓練,這讓框架通用性較高。當然因為時間所限,目前還沒有在Track2(未知地圖)上做訓練和測試。
而在Track2上拿了冠軍的Intel團隊的文章Learning to Act by Predicting the Future則是給定當前圖像,當前的各遊戲數據(血量,子彈數和分數)及提高這些數據的迫切程度的權值(Goal),對每個動作輸出一個提高值f(比如說做這個動作之後,血量提高了多少,或者又殺死了幾個敵人),然後用最高的提高值來選下一步動作。這個實際上是Q值網路的變種。他們生成了各種類型的地圖做了訓練,效果比DQN及A3C都要好些,而且因為迫切程度的權值是一個輸入,所以這個模型具有在線改變目標的能力,比如說可以先讓它去加血,加完了再去殺敵,當然這個高層邏輯目前還是需要人去控制。
另外增強學習這邊還有一些文章值得關注的。比如說有關模擬學習(imitation learning)的一些工作(兩篇以上,如Unsupervised Perceptual Rewards for Imitation Learning和Third Person Imitation Learning)。增強學習有個問題是獎勵函數需要預先設計好,一般通過手工比較麻煩,這兩篇模擬學習的核心思想是通過人類的演示來自動習得增強學習中的獎勵函數。
理論這邊目前還沒有看到特別意思的文章。一般來說深度學習的理論相較實踐而言,迭代速度要慢很多,主要是門檻比較高,也並非關注的焦點。我這次投了一篇理論,細節請見《長長的旅程》。雖說理論比較冷門,我仍然相信對理論的深入了解是有長期的功用,會在將來指導實踐。
目前先看到這裡,下次再講其它的內容。
推薦閱讀:
※《人工智慧》第二周問題集4 uninformed search - dfs/iterative deepening search
※圍棋人機大戰一周年急速短評
※「AI產品經理大本營」開始公測了
※卷積:如何成為一個很厲害的神經網路
※人工智慧能否給出宇宙起源、時空本質等複雜問題的答案?