深度強化學習分析研究
大小:0.6 MB 人氣: 2017-10-09 需要積分:1
標簽:深度強化學習(2256)
原作者Tambet Matiisen在文章結尾列出了對本文內容給出意見和建議的讀者,以及深入了解這些技術的在線文檔和視頻鏈接,受篇幅所限,譯文不再贅述。感謝Tambet Matiisen授權《程序員》翻譯和刊載。原文鏈接:http://neuro.cs.ut.ee/demystifyingdeep-reinforcement-learning/
本文為《程序員》文章,未經允許不得轉載,更多精彩請訂閱2016年《程序員》
盡管監督式和非監督式學習的深度模型已經廣泛被技術社區所采用,深度強化學習仍舊顯得有些神秘。這篇文章將試圖揭秘這項技術,并解釋其背后的邏輯。受眾讀者主要是有機器學習或者神經網絡背景,卻還沒來得及深入鉆研強化學習技術的朋友。
文章大綱如下:
強化學習面臨的主要挑戰是什么?我們將會在此討論credit assignment問題和探索-利用的取舍。
如何用數學表達式表示強化學習過程?我們將定義馬爾科夫決策過程,并用它來解釋強化學習過程。
該如何構建長期策略?我們定義了“未來回報折扣(discounted future reword)”概念,它構成了下一節算法的基礎。
如何預測和估計未來回報?我們將會定義并且解釋簡單的基于表的Q-learning算法。
如果狀態空間過大了怎么辦?我們演示了如何用一個(深度)神經網絡模型來替換Q-table算法。
在真正使用它之前我們還需要做些什么?我們將會討論經驗重播技術,用神經網絡來穩定學習過程。
都完成了嗎?最后,我們會考慮一些針對探索-利用問題的簡單解決方案。
強化學習
我們以Breakout(打磚塊)游戲為例。在游戲中,玩家將操控屏幕底部的一塊滑板,讓球反彈后撞擊屏幕上部的磚塊,直到所有磚塊都破碎。每當球擊中了磚塊,磚塊會消失,玩家的得分會增加——玩家得到了獎勵回報。
圖1 Atari Breakout游戲(圖片來源:DeepMind)
假設你想訓練一個神經網絡模型來玩這款游戲。網絡的輸入將是屏幕圖像,輸出結果是三種動作:向左、向右和撞擊(接住球)。我們可以把它當做一個分類問題——對每一幀屏幕圖像,你是需要左移、右移還是撞擊。聽起來很直白嗎?沒錯,接著你需要,大量的訓練樣本數據。當然,你可以用專家級玩家的游戲視頻作為訓練數據,但這不是我們的學習方式。我們不需要外人千百次地告訴我們每一幀圖像該選擇哪一種操作動作。我們只需要偶爾得到一些正反饋信息,剩下的一切事情我們自己就能搞定。
這就是強化學習試圖去解決的任務。強化學習介于監督式學習和非監督式學習之間。監督式學習的每個訓練樣本都有一個標簽,非監督式學習的訓練樣本沒有標簽,強化學習的訓練樣本有稀疏并且時間滯后的標簽——即獎勵回報。模型僅基于這些獎勵回報從環境中學習正確的行為。
盡管概念非常直觀,在實際操作中卻充滿了挑戰。舉個例子,當你在“打磚塊”游戲中擊中了磚塊并且得到了獎勵回報,這個回報往往與最近的幾次動作(移動滑板)并沒有關聯。調整滑板位置、撞擊球使其反彈,所有這些復雜工作在得到回報之前早已完成了。這被稱為credit assignment問題——也就是說,是由于之前的哪些行為才取得的回報,它們的貢獻程度是什么。
當你用某一種策略取得了一定的回報之后,你是打算繼續做下去,還是嘗試一些可能獲得更大回報的方法呢?在上面的“打磚塊”游戲中,一種簡單的策略就是移到屏幕的左邊界等著。球飛向左側的情況總是比右側更多些,所以你在游戲結束前總是能很容易地得到大概10分。你對這個成績已經感到滿意了,還是想得到更多?這就是所謂的探索-利用困境——是應該利用好已知有效的方法,還是要發掘其它可能更好的方法。
強化學習是我們(或者所有的動物)如何學習的一種重要模型。來自父母的獎勵、在學習取得的成績、工作的薪水——這些都是回報的形式。Credit assignment問題和探索-利用困境在我們每天的工作和感情生活中都會遇到。因此研究這個問題是十分重要的,游戲組成了一只嘗試各種新方法的絕妙沙盒。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%