是否要入坑「深度強化學習」,看了這篇論文再說!

今天在學校又雙叒叕提到了 Deep Reinforcement Learning That Matters 這篇打響 DRL(Deep Reinforcement Learning, 深度強化學習)勸退第一槍的文章後,回來之後久違刷了一下推特,看到了這篇爆文 Deep Reinforcement Learning Doesn't Work Yet,或可直譯爲深度強化學習還玩不轉或意譯爲深度強化學習遠不能即插即玩。算法

看完之後不少從本身去年七月入坑以來隱隱約約的困惑都獲得瞭解答。讀完大有如不見此文,萬古如長夜之感。內心激動,一時難以自抑。知乎上深度強化學習的內容比較少,最好的私覺得是智能單元,此外還有許多零散的論文介紹、課程筆記、問答等等,但好像沒人提過這篇文章。這篇文章是我入坑以來看到的深度強化學習方面最好的階段性總結,強烈建議應該做爲深度強化學習的第一課,看完之後你們再慎重考慮到底要不要入坑。網絡

先看一下做者的背景。做者叫 Alex Irpan,現爲谷歌大腦機器人團隊的軟件工程師。他從伯克利拿到的計算機科學本科學位,本科的時候曾經在伯克利人工智能實驗室(Berkeley AI Research (BAIR) Lab)進行本科科研,導師是 DRL 大牛 Pieter Abbeel,他還和 John Schulman 工做過。app

這篇文章一上來就指出深度強化學習是個大坑。它的成功案例其實不多,但每一個都太有名了,例如用 Deep Q Network(DQN)在 Atari games 上用原始像素圖片做爲狀態達到甚至超越人類專家的表現、經過左右互搏(self-play)等方式在圍棋上碾壓人類、大大下降了谷歌能源中心的能耗等等。形成的結果就是沒有從事過深度強化學習的研究人員對它產生了很大的錯覺,高估了它的能力,低估了它的難度。less

強化學習自己是一個很是通用的人工智能範式,在直覺上讓人以爲很是適合用來模擬各類時序決策任務,如語音、文本類任務。當它和深度神經網絡這種只要給我足夠層和足夠多的神經元,能夠逼近任何函數的非線性函數近似模型結合在一塊兒感受要上天啊,無怪乎 DeepMind 常常號稱人工智能=深度學習+強化學習。dom

然而 Alex 告訴咱們別急,讓咱們先來審視一些問題:機器學習

1.它的樣本利用率很是低。換言之爲了讓模型的表現達到必定高度須要極爲大量的訓練樣本。函數

2.最終表現不少時候不夠好。在不少任務上用非強化學習甚至非學習的其它方法,如基於模型的控制(model based control),線性二次型調節器(Linear Quadratic Regulator)等等能夠得到好得多的表現。最氣人的是這些模型不少時候樣本利用率還高。固然這些模型有的時候會有一些假設好比有訓練好的模型能夠模仿,好比能夠進行蒙特卡洛樹搜索等等。學習

3.DRL 成功的關鍵離不開一個好的獎勵函數(reward function),然而這種獎勵函數每每很難設計。在 Deep Reinforcement Learning That Matters 做者提到有時候把獎勵乘以一個常數模型表現就會有天和地的區別。但獎勵函數的坑爹之處還不止如此。獎勵函數的設計須要保證:this

  • 加入了合適的先驗,良好的定義了問題和在一切可能狀態下的對應動做。坑爹的是模型不少時候會找到做弊的手段。Alex 舉的一個例子是有一個任務須要把紅色的樂高積木放到藍色的樂高積木上面,獎勵函數的值基於紅色樂高積木底部的高度而定。結果一個模型直接把紅色樂高積木翻了一個底朝天。仔啊,你咋學壞了,阿爸對你很失望啊。人工智能

  • 獎勵函數的值太過稀疏。換言之大部分狀況下獎勵函數在一個狀態返回的值都是 0。這就和咱們人學習也須要鼓勵,學過久都沒什麼回報就容易氣餒。都說 21 世紀是生物的世紀,怎麼我還沒感受到呢?21 世紀纔剛開始呢。我等不到了啊啊啊啊啊。

  • 有的時候在獎勵函數上下太多功夫會引入新的偏見(bias)。

  • 要找到一個你們都使用而又具備好的性質的獎勵函數。這裏Alex沒很深刻地討論,但連接了一篇陶神(Terence Tao)的博客,你們有興趣能夠去看下。

4.局部最優/探索和剝削(exploration vs. exploitation)的不當應用。Alex舉的一個例子是有一個連續控制的環境裏,一個相似馬的四足機器人在跑步,結果模型不當心多看到了馬仰面朝天一頓亂踹後結果較好的狀況,因而你只能看到仰面朝天的馬了。

5.對環境的過擬合。DRL 少有在多個環境上玩得轉的。你訓練好的 DQN 在一個 Atari game上work 了,換一個可能就徹底不 work。即使你想要作遷移學習,也沒有任何保障你能成功。

6.不穩定性。

  • 讀 DRL 論文的時候會發現有時候做者們會給出一個模型表現隨着嘗試 random seed 數量降低的圖,幾乎全部圖裏模型表現最終都會降到 0。相比之下在監督學習裏不一樣的超參數或多或少都會表現出訓練帶來的變化,而 DRL 裏運氣很差可能很長時間你模型表現的曲線都沒有任何變化,由於徹底不 work。

  • 即使知道了超參數和隨機種子,你的實現只要稍有差異,模型的表現就能夠千差萬別。這可能就是 Deep Reinforcement Learning That Matters 一文裏 John Schulman 兩篇不一樣文章裏同一個算法在同一個任務上表現大相徑庭的緣由。

  • 即使一切都很順利,從我我的的經驗和以前同某 DRL 研究人員的交流來看只要時間一長你的模型表現就可能忽然從很好變成徹底不 work。緣由我不是徹底肯定,可能和過擬合和 variance 過大有關。

特別是上述第六點,幾乎是災難性的。做者提到本身實習的時候一開始實現  Normalized Advantage Function (NAF),爲了找出 Theano 自己的 bugs 花了六週,這仍是在 NAF 做者就在他旁邊能夠供他騷擾的狀況下的結果。緣由就是DRL的算法不少時候在沒找好超參數的狀況下就是不 work 的,因此你很難判斷本身的代碼到底有沒有 bug 仍是運氣很差。

做者也回顧了 DRL 成功的案例,他認爲 DRL 成功的案例其實很是少,大致包括:

  1. 各種遊戲:Atari Games, Alpha Go/Alpha Zero/Dota2 1v1/超級馬里奧/日本將棋,其實還應該有 DRL 最先的成功案例,93年的西洋雙陸棋(backgammon)。

  2. DeepMind 的跑酷機器人。

  3. 爲 Google 的能源中心節能。

  4. Google 的 AutoML。

做者認爲從這些案例裏得到的經驗教訓是 DRL 可能在有如下條件的狀況下更可能有好的表現,條件越多越好:

  1. 數據獲取很是容易,很是 cheap。

  2. 不要急着一上來就攻堅克難,能夠從簡化的問題入手。

  3. 能夠進行左右互搏。

  4. 獎勵函數容易定義。

  5. 獎勵信號很是多,反饋及時。

他也指出了一些將來潛在的發展方向和可能性:

  1. 局部最優或許已經足夠好。將來某些研究可能會指出咱們沒必要過於擔憂大部分狀況下的局部最優。由於他們比起全局最優並無差不少。

  2. 硬件爲王。在硬件足夠強的狀況下咱們或許就不用那麼在意樣本利用率了,凡事硬剛就能夠有足夠好的表現。各類遺傳算法玩起來。

  3. 人爲添加一些監督信號。在環境獎勵出現頻次過低的狀況下能夠引入自我激勵(intrinsic reward)或者添加一些輔助任務,好比DeepMind就很喜歡這套,以前還寫了一篇 Reinforcement Learning with Unsupervised Auxiliary Tasks(https://arxiv.org/abs/1611.05397) 。LeCun 不是嫌蛋糕上的櫻桃太少嗎,讓咱們多給他點櫻桃吧!

  4. 更多融合基於模型的學習從而提升樣本使用率。這方面的嘗試其實已經有不少了,具體能夠去看 Alex 提到的那些工做。但還遠不夠成熟。

  5. 僅僅把 DRL 用於 fine-tuning。好比最初 Alpha Go 就是以監督學習爲主,以強化學習爲輔。

  6. 自動學習獎勵函數。這涉及到 inverse reinforcement learning 和 imitation learning。

  7. 遷移學習和強化學習的進一步結合。

  8. 好的先驗。

  9. 有的時候複雜的任務反而更容易學習。Alex 提到的例子是 DeepMind 常常喜歡讓模型學習不少同一環境的變種來減少對環境的過擬合。我以爲這也涉及 curriculum learning,即從簡單的任務開始逐步加深難度。能夠說是層層遞進的遷移學習。另一個可能的解釋是不少時候人以爲困難的任務和機器以爲困難的任務是相反的。好比人以爲倒水很簡單,你讓機器人用學習的路子去學倒水就能夠很難。但反過來人以爲下圍棋很簡單而機器學習模型卻在下圍棋上把人擊敗了。

最後 Alex 整體仍是很是樂觀的。他說盡管如今有不少困難,使得 DRL 或許還不是一個強壯(robust)到全部人均可以輕易加入的研究領域而且不少時候一些問題用DRL遠沒有監督學習簡單和表現好,但或許過幾年你再回來 DRL 就 work 了也未知啊。這仍是很振奮人心的。田淵棟老師也表達過相似的想法,以爲正由於這個領域還不夠成熟因此還有不少機會。他們都是了不得的研究人員。

看到這篇文章我整體是很是激動的。但實話說也有些遺憾,若是去年暑假就有這篇文章的話也許我就會再慎重考慮一下到底要不要在實驗室沒有積累本身又離畢業和申請不遠的狀況下開始這樣一個主題了。這是一個教訓,就是開始一個領域前要對這個領域要有充分的瞭解,以前零零散散在網上也有了一點相關的聲音,好比 Karpathy 就提到他在實現 vanilla policy gradient 的時候也遇到了不少困難。

If it makes you feel any better, I’ve been doing this for a while and it took me last ~6 weeks to get a from-scratch policy gradients implementation to work 50% of the time on a bunch of RL problems. And I also have a GPU cluster available to me, and a number of friends I get lunch with every day who’ve been in the area for the last few years.

Also, what we know about good CNN design from supervised learning land doesn’t seem to apply to reinforcement learning land, because you’re mostly bottlenecked by credit assignment / supervision bitrate, not by a lack of a powerful representation. Your ResNets, batchnorms, or very deep networks have no power here.

[Supervised learning] wants to work. Even if you screw something up you’ll usually get something non-random back. RL must be forced to work. If you screw something up or don’t tune something well enough you’re exceedingly likely to get a policy that is even worse than random. And even if it’s all well tuned you’ll get a bad policy 30% of the time, just because.

Long story short your failure is more due to the difficulty of deep RL, and much less due to the difficulty of 「designing neural networks」.

來源:https://news.ycombinator.com/item?id=13519044

但我一開始並無注意到。其實導師也一直有提到說他以爲個人 project 比較有風險,特別是他以爲如今除了 Berkeley, OpenAI,DeepMind 以外不多有 DRL 作的不錯的實驗室,這自己就代表這個方向可能有一些無形的門檻。如今我以爲這些可能包括計算資源和設備(機器人),對相關 trick 和坑瞭然於胸的相對資深的研究人員等等。客觀上這些地方的人綜合水平和工程能力也是強的讓人髮指,直接競爭很是困難。雖然我本身比較弱,但這些對於打算進入 DRL 的同窗們都須要慎重考慮一下。

最後的最後仍是要強推 Alex 的這篇文章,他列的這些點不少 DRL 的研究人員可能已經很是瞭解了,但以前沒有人這樣完整、有組織地介紹一遍。對於想要作 DRL 的同窗們來講實在是福音。拙做是看完他文章後第一時間的感想和歸納,對於我不夠了解的有些地方就一筆帶過了,或者表述也不夠準確。原文很長,我在對大部份內容比較熟悉的狀況下看了一個半小時,但也頗有意思,仍是強烈推薦。

最後本文可能有些標題黨,並非真的要徹底勸退你們,Alex 的本意是但願你們更加冷靜地看待目前 DRL 研究的進展,避免重複踩坑。評論區裏有提到由於困難纔有作的價值,還有機器人、控制論背景的朋友提到他以爲 drl can do anything 若是你有正確的超參數,這些意見也很值得你們參考。

--------------------- 本文來自 人工智能愛好者俱樂部 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/r1unw1w/article/details/79385925?utm_source=copy 

相關文章
相關標籤/搜索