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