【David Silver强化学习公开课之一】强化学习入门
【轉載請注明出處】chenrudan.github.io
本文是David Silver強化學習公開課第一課的總結筆記。第一課主要解釋了強化學習在多領域的體現,主要解決什么問題,與監督學習算法的區別,完整的算法流程由哪幾部分組成,其中的agent又包含什么內容,以及解釋了強化學習涉及到的一些概念。
本課視頻地址:RL Course by David Silver - Lecture 1: Introduction to Reinforcement Learning。
本課ppt地址:http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/intro_RL.pdf。
文章的內容是課程的一個總結和討論,會按照自己的理解來組織。個人知識不足再加上英語聽力不是那么好可能會有一些理解不準的地方,歡迎一起討論。
1. 強化學習是什么
強化學習是多學科多領域交叉的一個產物,它的本質就是解決“decision making”問題,即學會自動進行決策。在computer science領域體現為機器學習算法。在Engineering領域體現在決定the sequence of actions來得到最好的結果。在Neuroscience領域體現在理解人類大腦如何做出決策,主要的研究是reward system。在Psychology領域,研究動物如何做出決策,動物的行為是由什么導致的。在Economics領域體現在博弈論的研究。這所有的問題最終都歸結為一個問題,人為什么能夠并且如何做出最優決策。
強化學習是一個Sequential Decision Making問題,它需要連續選擇一些行為,從而這些行為完成后得到最大的收益最好的結果。它在沒有任何label告訴算法應該怎么做的情況下,通過先嘗試做出一些行為得到一個結果,通過判斷這個結果是對還是錯來對之前的行為進行反饋,然后由這個反饋來調整之前的行為,通過不斷的調整,算法能夠學習到在什么樣的情況下選擇什么樣的行為可以得到最好的結果。
強化學習與監督學習有著不少區別,首先監督學習是有一個label的,這個label告訴算法什么樣的輸入對應著什么樣的輸出,而強化學習沒有label告訴它在某種情況下應該做出什么樣的行為,只有一個做出一系列行為后最終反饋回來的reward signal,這個signal能判斷當前選擇的行為是好是壞。其次強化學習的結果反饋有延時,有時候可能需要走了很多步以后才知道以前的某一步的選擇是好還是壞,而監督學習做了比較壞的選擇會立刻反饋給算法。強化學習面對的輸入總是在變化,輸入不像監督學習是獨立同分布的。而每當算法做出一個行為,它影響了下一次決策的輸入。
2. 強化學習組成
圖1 強化學習組成部分(圖片來源[1])強化學習決策流程見上圖。需要構造出一個agent(圖中的大腦部分),agent能夠執行某個action,例如決定機器人超哪個方向走,圍棋棋子下在哪個位置。agent能夠接收當前環境的一個observation,例如當前機器人的攝像頭拍攝到場景。agent還能接收當它執行某個action后的reward,即在第t步agent的工作流程是執行一個動作AtAt,獲得該動作之后的環境觀測狀況OtOt,以及獲得這個動作的反饋獎賞RtRt。而環境environment則是agent交互的對象,它是一個行為不可控制的對象,agent一開始不知道環境會對不同action做出什么樣的反應,而環境會通過observation告訴agent當前的環境狀態,同時環境能夠根據可能的最終結果反饋給agent一個reward,例如圍棋棋面就是一個environment,它可以根據當前的棋面狀況估計一下黑白雙方輸贏的比例。因而在第t步,environment的工作流程是接收一個AtAt,對這個動作做出反應之后傳遞環境狀況和評估的reward給agent。reward獎賞RtRt,是一個反饋標量值,它表明了在第t步agent做出的決策有多好或者有多不好,整個強化學習優化的目標就是最大化累積reward。例如在射擊游戲中,擊中敵方的一架飛機,最后的得分會增加,那么這一步的reward就是正值。
3. 一些變量
history是所有動作、狀態、獎賞的序列,Ht=A1,O1,R1,…,At,Ot,RtHt=A1,O1,R1,…,At,Ot,Rt
environment state,SetSte,環境當前的狀態,它反應了環境發生什么改變。這里需要明白的一點是環境自身的狀態和環境反饋給agent的狀態并不一定是相同的,例如機器人在走路時,當前的environment狀態是一個確定的位置,但是它的camera只能拍到周圍的景象,無法告訴agent具體的位置,而拍攝到的照片可以認為是對環境的一個observation,也就是說agent并不是總能知道環境是如何發生改變的,只能看到改變后的一個結果展示。
agent state,SatSta,是agent的現在所處狀態的表示,它可以是history的任何函數。
information(Markov) state,它包含了history的所有有用信息。一個狀態StSt有馬爾可夫性質是指下一個時刻的狀態僅由當前狀態決定,與過去狀態無關。這里定義可以看出environment state是有馬爾可夫性質的(這個概念不明白可以暫時不管)。
如果說environment是Fully Observable的,那么就是說agent能夠直接看到環境當前的狀態,在這種情況下agent state與environment state是相等的。而如果說environment是Partially Observable Environments,那么就是上面機器人的那個例子,agent能獲取到的不是直接的環境狀態。
4. Agent的組成
一個agent由三部分組成Policy、Value function、Model,但這三部分不是必須同時存在的。
Policy,它根據當前看到的observation來決定action,是從state到action的映射。有兩種表達形式,一種是Deterministic policy即a=π(s)a=π(s),在某種狀態s下,一定會執行某個動作a。一種是Stochastic policy即π(a|s)=p[At=a|St=s]π(a|s)=p[At=a|St=s],它是在某種狀態下執行某個動作的概率。
Value function,它預測了當前狀態下未來可能獲得的reward的期望。Vπ(s)=Eπ[Rt+1+rRt+2+…|St=s]Vπ(s)=Eπ[Rt+1+rRt+2+…|St=s]。用于衡量當前狀態的好壞。
Model,預測environment下一步會做出什么樣的改變,從而預測agent接收到的狀態或者reward是什么。因而有兩種類型的model,一種是預測下一個state的transition model即Pass′=p[St+1=s′|St=s,At=a]Pss′a=p[St+1=s′|St=s,At=a],一種是預測下一次reward的reward model即Ras=E[Rt+1|St=s,At=a]Rsa=E[Rt+1|St=s,At=a]
因而根據是否選取這三個部分agent可分為下圖中紅色字體標出來的五種類型(這里有一個迷宮的例子很好,建議看原視頻1:08:10起)。Model Free是指不需要去猜測environment的工作方式,而Model based則是需要學習environment的工作方式。
圖2 Agent的分類(圖片來源[1])5. 探索和利用
強化學習是一種試錯(trial-and-error)的學習方式,一開始不清楚environment的工作方式,不清楚執行什么樣的行為是對的,什么樣是錯的。因而agent需要從不斷嘗試的經驗中發現一個好的policy,從而在這個過程中獲取更多的reward。
在這樣的學習過程中,就會有一個在Exploration和Exploitation之間的權衡,前者是說會放棄一些已知的reward信息,而去嘗試一些新的選擇,即在某種狀態下,算法也許已經學習到選擇什么action讓reward比較大,但是并不能每次都做出同樣的選擇,也許另外一個沒有嘗試過的選擇會讓reward更大,即Exploration希望能夠探索更多關于environment的信息。而后者是指根據已知的信息最大化reward。例如,在選擇一個餐館時,Exploitation會選擇你最喜歡的餐館,而Exploration會嘗試選擇一個新的餐館。
以上是第一課的一些相關內容,主要是介紹了一些基礎概念,從而對強化學習有一個基礎的認識。
6. 引用
總結
以上是生活随笔為你收集整理的【David Silver强化学习公开课之一】强化学习入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简述生成式对抗网络 GAN
- 下一篇: 细说反射,Java 和 Android