強化學(xué)習(xí)的真正價值與現(xiàn)實難題

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

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

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

1.自己從頭訓(xùn)練一個AI模型;

2.使用開發(fā)平臺的訓(xùn)練框架和API;

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

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

而最近,框架之爭的焦點又轉(zhuǎn)移到強化學(xué)習(xí)身上了。

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

對于大部分開發(fā)者來說,強化學(xué)習(xí)到底能帶來什么,與深度學(xué)習(xí)框架有何區(qū)別,自家應(yīng)用又該何去何從,恐怕還有點云里霧里的。

所以,我們今天不妨就來厘清強化學(xué)習(xí)的真正價值與現(xiàn)實難題。

01

深度學(xué)習(xí)、強化學(xué)習(xí)、深度強化學(xué)習(xí),傻傻分不清楚?

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

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

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

但如果我更懶一點,想要一個能自己學(xué)會采摘優(yōu)質(zhì)成熟蘋果的機器人呢?深度學(xué)習(xí)就有點搞不定了。

這時我需要用強化學(xué)習(xí)框架來訓(xùn)練一個智能體,每當它摘下一個新鮮漂亮的好蘋果,就會收到來自系統(tǒng)的獎勵,進行正強化——要是錯誤摘下了沒熟或者爛掉的蘋果,就沒有獎勵甚至?xí)豢鄯?,進行負強化。

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

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

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

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

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

02

AI開發(fā)新寵:強化學(xué)習(xí)究竟有什么用?

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

因此在貿(mào)然“以身效法”之前,有必要先搞搞清楚:強化學(xué)習(xí)到底強在哪些地方?開發(fā)者又應(yīng)該在何種情況下向它投誠?

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

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

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

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

這些特殊設(shè)定,使得強化學(xué)習(xí)可以在很多應(yīng)用領(lǐng)域表現(xiàn)得比傳統(tǒng)深度學(xué)習(xí)更為出色,比如:

控制類智能:工業(yè)上多關(guān)節(jié)機械臂的實時控制,讓機器人觀看YouTube 視頻學(xué)習(xí)動作并應(yīng)用到現(xiàn)實場景中,又或者是幫助無人車學(xué)習(xí)如何應(yīng)對人和動物亂穿馬路這樣的特殊情況;

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

傳統(tǒng)深度學(xué)習(xí)已經(jīng)能很好地解決機器感知和識別問題,但人類對機器智能的要求顯然不止于此,能夠應(yīng)對復(fù)雜現(xiàn)實中決策型問題的強化學(xué)習(xí),以及二者的融合,自然成為AI應(yīng)用未來的重點發(fā)展方向。

這種情況下,掌握了算法先發(fā)優(yōu)勢的技術(shù)平臺相繼推出RL框架,無疑是爭奪開發(fā)者和入口權(quán)的最好布局。

03

強化學(xué)習(xí)框架之爭,究竟拼些什么?

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

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

另一個困擾的問題是:目前的強化學(xué)習(xí)算法在穩(wěn)定性和效率上參差不齊,想要真正滿足現(xiàn)實場景的應(yīng)用需求,還有待加強。

因此,如何選擇適合自身業(yè)務(wù)的強化學(xué)習(xí)框架來試水,或許是開發(fā)者當下最為關(guān)心的問題。

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

1.平臺的穩(wěn)定及復(fù)現(xiàn)性

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

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

為了解決隨機性和復(fù)現(xiàn)的問題,不同平臺的解決方案也不盡相同。

比如谷歌是實現(xiàn)訓(xùn)練環(huán)境和測試環(huán)節(jié)的標準化。為代碼提供60款游戲的測試覆蓋范圍和訓(xùn)練數(shù)據(jù),并使用街機學(xué)習(xí)環(huán)境(Arcade Learning Environment)進行標準化經(jīng)驗評估。

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

2.靈活性&易用性

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

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

3.框架與業(yè)務(wù)的耦合性

盡管我們說強化學(xué)習(xí)距離產(chǎn)業(yè)端落地還有遙遠的距離,但技術(shù)框架從基礎(chǔ)開發(fā)就為產(chǎn)業(yè)結(jié)合做好準備,顯然能加快這一進程。

因此,技術(shù)框架與產(chǎn)業(yè)端業(yè)務(wù)需求的耦合,就成為開發(fā)平臺生命力的一大保障。比如百度加快跟進強化學(xué)習(xí)框架,就很好地填補了中文文檔和訓(xùn)練數(shù)據(jù)在強化學(xué)習(xí)算法中的不足。

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

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

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

 

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

本文由 @腦極體 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來源于 Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!