深度強化學習從入門到大師:簡介篇(第一部分)
本文為 AI 研習社編譯的技術博客,原標題 :
An introduction to Reinforcement Learning
作者 | Thomas Simonini
翻譯 | 斯蒂芬?二狗子、Disillusion
校對 | 斯蒂芬?二狗子 審核 | 就2 整理 | 菠蘿妹
原文鏈接:
https://medium.freecodecamp.org/an-introduction-to-reinforcement-learning-4339519de419
深度強化學習從入門到大師:簡介篇(第一部分)
您將使用的一些編程環境
本文是深度強化學習課程的一部分,使用 Tensorflow 進行實踐。點擊這裡查看教學大綱。
強化學習是一種重要的機器學習類型,其中智能體通過執行操作和查看結果來了解如何在環境中執行操作。
近年來,我們在這個迷人的研究領域看到了很多改進。例如包括 2014年的DeepMind 的 Deep Q 學習架構,在2016 年 AlphaGo 擊敗李世石,2017年OpenAI 和 PPO 等。
DeepMind DQN
在本系列文章中,我們將重點學習目前用於解決強化學習問題的不同架構,包括 Q-learning, Deep Q-learning, Policy Gradients, Actor Critic, and PPO.
在這第一篇文章中,您將學到:
什麼是強化學習,以及獎勵機制是如何成為核心理念的
強化學習的三種方法
深層強化學習的「深層」意味著什麼
在深入實現 Deep Reinforcement Learning 智能體之前掌握這些內容非常重要。
強化學習背後的理念是,智能體 Agent 將通過與環境互動並獲得執行行動的獎勵來學習環境。
從與環境的互動中學習來自人們的自然經驗。想像一下,你是一個在起居室里的孩子。你看到一個壁爐,你接近它。
它很溫暖,很積極,你感覺很好 (積極獎勵+1)。 你感覺火是一件好事。
但是你試著觸摸火焰。哎喲! 它會燒傷你的手 (負獎勵-1)。你已經明白,當你離足夠遠時火是積極的,因為它會產生溫暖。但是太靠近它會燒傷你。
這就是人類通過互動學習的方式。強化學習是一種從行動中學習的計算方法。
強化學習過程讓我看一個智能體學習如何玩超級馬里奧的一個例子。強化學習(RL)過程可以建模為一個循環,其具體工作方式如下:
Agent從環境 Environment 獲取狀態S0(在我們的例子中,從超級馬里奧兄弟(環境)接收遊戲(狀態)的 first frame )
基於該狀態S0, 智能體採取行動A0(我們的智能體將向右移動)
環境轉換到新狀態S1( new frame )
環境給智能體帶來一些獎勵R1( not dead :+1)
強化學習循環輸出state,action和reward的序列,agent的目的是最大化預計累計獎勵(expected cumulative reward)
獎勵假設函數的核心思想
為什麼 Agent 的目標是最大化預期的累積獎勵?
實際上,強化學習是基於獎勵假設的想法。所有目標都可以通過預期累積獎勵的最大化來描述。
這就是為什麼在強化學習中,為了獲得最佳行為,我們需要最大化預期的累積獎勵。
每個時間步t的累積獎勵可定義為:
這相當於
感謝 Pierre-Luc Bacon 的修正
但是,實際上,我們不能光添加這樣的獎勵。早期(在遊戲開始時)提供的獎勵更有用,因為它們比未來獎勵更好預測。
假設你的 agent 是這隻小老鼠而你的對手就是貓。目標是在 agent 被貓吃掉之前吃最多的乳酪。
正如我們在圖中可以看到的那樣, 老鼠在附近吃乳酪的可能性比接近貓的乳酪更可能( agent 越接近貓,就越危險)。
因此,貓附近的獎勵,即使它更大(更多的乳酪),也應該被將打折扣。因為我們不確定 agent 能不能吃到。
為了給獎勵打折,可以這樣做:
我們定義了一個名為gamma的折扣率。它必須介於0和1之間。
伽瑪越大,折扣越小。這意味著學習,agent 更關心長期獎勵。
另一方面,伽瑪越小,折扣越大。這意味著我們的 agent 更關心短期獎勵(最近的乳酪)。
累積的折扣預期獎勵是:
感謝 Pierre-Luc Bacon 的修正
簡單來說,每個獎勵將通過伽瑪的時間步長指數倍進行折扣。隨著時間步長的增加,貓越來越接近我們的 agent,因此未來的獎勵的獲得越來越不可能發生。
情節性任務 或 連續性任務任務是強化學習問題的一個實例,我們可以定義兩種類型的任務:情節性 和 連續性。
情節性任務(episodic tasks)
這種情況下,強化學習任務會有一個起點和終點(一個最終狀態)。這會創建一個劇情:一個狀態 States, 行動 Actions, 獎勵Rewards, 新狀態 New States 的列表
例如,想想超級馬里奧兄弟,一個劇情開始於新馬里奧人物的出生點出來併到結束:當馬里奧被殺或者達到了關卡的末尾。
新劇情的開始
持續性任務
這些是永遠持續的任務(沒有終點狀態)。在這種情況下,agent必須學習如何選擇最佳操作並同時與環境交互。
例如, agent 進行自動股票交易。對於此任務,沒有起點和終點狀態。agent 會持續執行,直到我們決定阻止他。
我們有兩種學習方式:
在劇集結束時收集獎勵,然後計算最大預期未來獎勵: 蒙特卡洛方法
估算每一步的獎勵: 時序差分方法
蒙特卡洛
當劇集結束時(智能體達到「終端狀態」),Agent 會查看總累積獎勵,看看它的表現如何。在蒙特卡洛方法中,獎勵僅在比賽結束時收到。
然後,我們運用學到知識開始一個新的遊戲。 Agent 會在每次迭代時做出更好的決策。
我們來舉個例子:
如果我們採取迷宮環境:
總是從同一個起點開始。
如果貓吃了老鼠或者老鼠移動超過20步,我們就會終止這一集劇情。
在劇集結束時,我們有一個 State, Actions, Rewards, 和 New States的列表
獎勵總額 Gt 被統計(看看老鼠的表現如何)。
根據上面的公式更新V( st )。
然後用這個新知識開始一個新遊戲。
通過運行越來越多的劇集, Agent 將學會更好, 並更好地發揮。
時序差分方法:每一步的學習
TD學習不會等到劇集結束時更新最大預期未來獎勵估計:它將更新其在該經歷中發生的非最終狀態St的價值估計V.
該方法稱為TD(0) 或一步TD(在任何單個步驟之後更新值函數)。
TD方法只等到下一步更新值估計值。在時間 t + 1,它們使用觀察到的獎勵 Rt + 1和當前估計值V(St + 1)立即得到TD目標。
TD目標是一個估計值:事實上,可以通過將其更新為一步目標來更新先前估計V(St)。
勘探/開發權衡在研究解決強化學習問題的不同策略之前,我們必須涵蓋另一個非常重要的主題:勘探/開發權衡。
勘探是尋找有關環境的更多信息。
開發是利用已知信息來最大化獎勵。
請記住,我們的RL智能體的目標是最大化預期的累積獎勵。但是,我們可能會陷入局部陷阱。
在這個遊戲中,我們的滑鼠可以有無限量的小乳酪(每個+1)。但在迷宮的頂端有一大片乳酪(+1000)。
但是,如果只專註於獎勵,agent永遠不會達到巨大的乳酪。它只會得到最近的獎勵來源,即使這個來源很小(利用)。
但如果我們的經紀人進行了一些探索,那麼它就有可能獲得巨大的回報。
這就是我們所說的勘探/開採權衡。我們必須定義一個有助於處理這種權衡的規則。我們將在以後的文章中看到處理它的不同方法。
強化學習的三種方法既然我們已經定義好了強化學習的主要元素,那麼讓我們繼續討論解決強化學習問題的三種方法。這些是基於數值,策略,模型的的方法。
基於數值
在基於數值的RL中,目標是優化價值函數 V(s)。
價值函數是一個函數,表明agent在每個狀態獲得的最大預期未來獎勵。
每個狀態的數值是以該狀態為起始點,agent在未來積累的獎勵總額的期望。
Agent使用此函數在逐步地中選擇的狀態,使其獲得期望最大。
在迷宮示例中,在每個步驟中我們將採用最大值:-7,然後是-6,然後是-5(依此類推)以達到目標。
基於策略
在基於策略的RL中,我們希望在不使用值函數的情況下直接優化策略函數 π(s)。
該策略定義了給定時間的智能體行為。
action = policy(state)
通過學習一種策略函數。這使我們得到每個狀態到最佳的相應操作的映射。
我們有兩種策略類型:
確定性:給定狀態下的策略將始終返回相同的操作。
隨機:輸出行動上的分別概率。
正如我們在此處看到的,該策略直接指出了針對每個步驟採取的最佳操作。
基於模型
在基於模型的 RL 中,我們對環境進行建模。這意味著我們創建了一個環境行為的模型。
問題是每個環境都需要不同的模型表示。這就是為什麼我們不會在即將發表的文章中談論這種類型的強化學習。
介紹深度強化學習深層強化學習引入深層神經網路來解決強化學習問題——因此得名「深層」。
例如,在下一篇文章中,我們將研究Q-Learning(經典強化學習)和深度Q-Learning。
你將看到兩者的不同之處。在第一種方法中,我們使用傳統的演算法來創建一個Q表,它可以幫助我們找到針對每種狀態的操作。
在第二種方法中,我們將使用神經網路(根據狀態(q值)來估計獎勵)。
Udacity的Q learning notebook激發了上圖的靈感
恭喜!在這篇文章中有很多信息。在繼續之前,一定要真正掌握上述內容。在進入有趣的部分之前,掌握這些元素是很重要的:創建可以玩電子遊戲的人工智慧。
重要提示:本文是關於深度強化學習的一系列免費博客文章的第一部分。要了解更多信息和資源,請查看教學大綱。
想要繼續查看該篇文章相關鏈接和參考文獻?
長按鏈接點擊打開或點擊【深度強化學習從入門到大師:簡介篇(第一部分)】:
https://ai.yanxishe.com/page/TextTranslation/1390
AI研習社每日更新精彩內容,觀看更多精彩內容:雷鋒網雷鋒網雷鋒網
用PyTorch來做物體檢測和追蹤用 Python 做機器學習不得不收藏的重要庫初學者怎樣使用Keras進行遷移學習一文帶你讀懂 WaveNet:谷歌助手的聲音合成器等你來譯:
強化學習:通往基於情感的行為系統如何用Keras來構建LSTM模型,並且調參高級DQNs:利用深度強化學習玩吃豆人遊戲用於深度強化學習的結構化控制網路 (ICML 論文講解)

※賈躍亭難撼許家印 緊急仲裁員全面駁回Smart King剝奪資產抵押申請
※5G產業生態是關鍵 中國移動董事長尚冰提出四點四考
TAG:雷鋒網 |