強化學習的真正價值與現實難題

0 評論 1844 瀏覽 4 收藏 14 分鐘

強化學習的框架之爭只是序曲,隨著各種難度超乎想象的實際問題被一一解決,很多有趣的事情將會發生。

假如你是應用開發者,不懂算法,又想開發一個帶AI功能的APP,你會選擇:

1.自己從頭訓練一個AI模型;

2.使用開發平臺的訓練框架和API;

答案顯而易見——能夠提供技術解決方案及低準入門檻的后者才是王道。

但面對眾多開發平臺的深度學習框架,需要考慮的問題可就多了:兼容性、社群資源、框架遷移等等不一而足。

而最近,框架之爭的焦點又轉移到強化學習身上了。

谷歌在去年推出了基于TensorFlow的強化學習框架Dopamine,強化學習界的明星OpenAI也將很多算法放上了baseline,百度也在前不久更新了PaddlePaddle的強化學習框架PARL;就連一向低調的網易,都公布了自主研發的強化編程(Reinforced Programing)框架……

對于大部分開發者來說,強化學習到底能帶來什么,與深度學習框架有何區別,自家應用又該何去何從,恐怕還有點云里霧里的。

所以,我們今天不妨就來厘清強化學習的真正價值與現實難題。

01

深度學習、強化學習、深度強化學習,傻傻分不清楚?

經過幾年的市場教育,大多數開發者對于深度學習框架能夠做什么、怎么做,已經比較有譜了。但是各大平臺隨即推出的強化學習框架或者深度強化學習框架,就讓人有點蒙圈了。它們之間的區別在哪里,又分別承擔著怎樣的職責呢?

我們舉個例子來解釋一下這三種機器學習方法的不同吧:

假如我是個種植工廠,想要做一個能夠識別蘋果好壞的APP,那么就需要一個深度學習開發框架,在上面搭建訓練過程。幾乎所有開發平臺都有現成的圖像識別API,我只需要把訓練用的圖片(也就是各種各樣的蘋果照片)拖進系統,就可以得到一個訓練好的蘋果識別模型了。

但如果我更懶一點,想要一個能自己學會采摘優質成熟蘋果的機器人呢?深度學習就有點搞不定了。

這時我需要用強化學習框架來訓練一個智能體,每當它摘下一個新鮮漂亮的好蘋果,就會收到來自系統的獎勵,進行正強化——要是錯誤摘下了沒熟或者爛掉的蘋果,就沒有獎勵甚至會被扣分,進行負強化。

為了得到更多的回報,智能體會就更愿意選擇那些好果子來摘,而放棄那些會帶來0分甚至負分的果子。通過這種方法,我就得到了一個最大化摘到好果子的智能機器人,豈不是美滋滋?

但嘗到甜頭的我又不滿足了,不僅想讓它學會摘黃瓜摘西紅柿,而且還懶得再訓練一遍。這時候就需要一種全新的算法,將深度學習與強化結合學習起來,只要告訴它新的獎勵機制,機器就能通過深度神經網絡自主get類似技能,不需要我再手把手訓練。

以前,我還需要自己一行行敲代碼,現在只要有一個開發框架+訓練樣本,就可以輕松擁有永不疲倦、勤奮學習、還會舉一反三的智能體,這樣的誘惑試問誰能拒絕?

當然,這里只是簡單解釋一下它們的工作模式,真要訓練出這樣一個智慧模型并應用于自家產品上,是一個更為復雜的綜合工程。

不過,增加了強化學習功能的開發框架,大大降低了強化學習訓練的編程難度和工作量,對于想做強化學習但又無力從零開始搭建環境和訓練的技術人員和企業來說,無疑是個好消息。

02

AI開發新寵:強化學習究竟有什么用?

如今,強化學習不僅成了學術界的寵兒,相關研究論文在各大頂會中的比例飛速上升;各家開發平臺也都把強化學習框架當成重點來部署和爭奪。但問題也隨之而來:框架只能降低一部分開發門檻,定制化模型、調試、兼容等工作依然需要企業投入大量人力物力財力,如果費了大力氣得到的成果最后無法應用或者不切實際,對開發者來說無疑是非常殘酷的。

因此在貿然“以身效法”之前,有必要先搞搞清楚:強化學習到底強在哪些地方?開發者又應該在何種情況下向它投誠?

先解釋一下強化學習的核心邏輯,那就是智能體(Agent)可以在環境(Environment)中根據獎勵(Reward)的不同來判斷自己在什么狀態(State)下采用什么行動(Action),從而最大限度地提高累積獎勵。

比如擊敗圍棋世界冠軍的Alpha Go,在《Dota 2》中血虐人類玩家的OpenAI Five,打下Atari 2600游戲最高分的DeepMind DQN,都是基于強化學習實現的。

那么它具體有哪些特征呢?大致可以總結為三個方面:

  1. 訓練樣本。強化學習是通過環境給出的獎懲結果來學習,需要帶有回報的數據。
  2. 交互方式。強化學習的學習過程是動態的,需要與環境進行交互來完成,不是給什么樣本就學什么,沒有環境都白搭。
  3. 解決問題。強化學習的邏輯更像人腦,主要解決的是智能決策問題,比如游戲打出高分、通用機器人、推薦系統等等。

這些特殊設定,使得強化學習可以在很多應用領域表現得比傳統深度學習更為出色,比如:

控制類智能:工業上多關節機械臂的實時控制,讓機器人觀看YouTube 視頻學習動作并應用到現實場景中,又或者是幫助無人車學習如何應對人和動物亂穿馬路這樣的特殊情況;

序列問題:比如文本序列預測,通過行為反饋讓搜索排序達到最優效果;電商推薦系統, 根據用戶對推薦列表的反饋(忽略、點擊或購買)來實時改變推薦策略。對話生成:比如體驗更好的人機多輪對話,讓機器人能夠持續生成有意義的對話,而不是亂說一氣地尬聊;與深度學習相結合,實現更好的機器雙語翻譯效果。

傳統深度學習已經能很好地解決機器感知和識別問題,但人類對機器智能的要求顯然不止于此,能夠應對復雜現實中決策型問題的強化學習,以及二者的融合,自然成為AI應用未來的重點發展方向。

這種情況下,掌握了算法先發優勢的技術平臺相繼推出RL框架,無疑是爭奪開發者和入口權的最好布局。

03

強化學習框架之爭,究竟拼些什么?

當然,強化學習雖然取得了很多“炫酷”的成就,但其應用的局限也是顯而易見的,不得不預先做好準備:比如強化學習就像剛出生的嬰兒,所有技能都要從零開始訓練,需要花很多時間才能教會它掌握一個任務目標;

而且,強化學習只能根據即時反饋指令來進行動作,下圍棋、打dota或許很牛,但面對個性化語音助手這樣需要記憶和推理能力的任務,就有點力不從心;

另一個困擾的問題是:目前的強化學習算法在穩定性和效率上參差不齊,想要真正滿足現實場景的應用需求,還有待加強。

因此,如何選擇適合自身業務的強化學習框架來試水,或許是開發者當下最為關心的問題。

就強化學習的發展方向和各個平臺的特點來看,我們有幾個不成熟的小建議供參考:

1.平臺的穩定及復現性

深度學習是穩定的,有固定的數據集和固定目標,超參數出現很小的改動,最終的性能也不會受到太大影響。但強化學習(或者深度強化學習)就不是如此了,訓練結果會受到隨機幾率、樣本效率、算法穩定性等多重影響,從而帶來結果上的巨大差異,降低成功的復現率。

更嚴重的情況是:機器認為自己無論怎么嘗試都會導致失敗,直接崩潰不學了。

為了解決隨機性和復現的問題,不同平臺的解決方案也不盡相同。

比如谷歌是實現訓練環境和測試環節的標準化。為代碼提供60款游戲的測試覆蓋范圍和訓練數據,并使用街機學習環境(Arcade Learning Environment)進行標準化經驗評估。

而百度則是盡可能多地覆蓋相關算法——PARL框架提供algorithm集合,里面包含了大量主流的經典算法和完整的超參數列表,以保障模型的復現率。

2.靈活性&易用性

大多數開發者的終極需求,是希望借助技術框架打破算法的桎梏自由馳騁,釋放自己的新想法和商業創造力。因此,框架設計一方面要平衡多元業務場景和簡易訓練方式之間的矛盾,另一方面則要跟上技術趨勢的發展快速迭代。

比如谷歌的街機學習環境,智能體在其中是如何工作的,理解起來就非常簡單,并且有詳細的文檔記錄和原始日志。除此之外,谷歌還推出了一個TensorBoard的可視化工具套件,幫助幫助開發者在短時間內清晰直觀地梳理、驗證和迭代新想法。

3.框架與業務的耦合性

盡管我們說強化學習距離產業端落地還有遙遠的距離,但技術框架從基礎開發就為產業結合做好準備,顯然能加快這一進程。

因此,技術框架與產業端業務需求的耦合,就成為開發平臺生命力的一大保障。比如百度加快跟進強化學習框架,就很好地填補了中文文檔和訓練數據在強化學習算法中的不足。

另外需要考慮的,則是中文世界的開發者數量、數據規模、用戶體量,對技術框架的支持能力也是一大挑戰。基于PaddlePaddle對大規模工業級排序/推薦等稀疏模型的支持能力,百度的PARL得以輕松擴展到百億級別數據或特征的訓練,這種并行提速的能力,更符合中國市場的真實需求。

當然,影響強化學習性能和用戶選擇的因素還有很多,比如社區資源的豐富,算法質量,應用工具的多元化等等。總體而言,現階段想要低門檻、短時間地訓練處一個好的強化學習模型,還是很困難。但正如吳恩達所說的,“短期悲觀,長期樂觀”,深度強化學習作為機器智能接下來的發展方向,是毋庸置疑的。

想要贏得未來,這個新的競爭高地不得不去占領。

 

作者:腦極體,微信公眾號:腦極體

本文由 @腦極體 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來源于 Unsplash,基于CC0協議

給作者打賞,鼓勵TA抓緊創作!
3人打賞
更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!