強化學習-基礎知識

1. 前言

在機器學習中,咱們比較熟知的是監督式學習,非監督學習,此外還有一個大類就是強化學習。強化學習是機器學習的一個重要分支,是多學科多領域交叉的一個產物,它的本質是解決自動進行決策,而且能夠作連續決策。算法

2. 強化學習定義

它主要包含五個元素,Agent(智能體),Environment(環境),State(狀態),Action(行動),Reward(獎勵),強化學習的目標就是得到最多的累計獎勵。機器學習

強化學習經典圖:函數

image

這張圖很好的解釋了智能體和環境之間的相互做用。在某個時間步t,智能體處於狀態\(s_t\),採起動做\(a_t\)。而後環境會返回一個新的狀態\(s_{t+1}\)和一個獎勵\(r_{t+1}\)。獎勵處於\(t+1\)時間步是由於它是由環境在\(t+1\)的狀態\(s_{t+1}\)返回的,所以讓它們兩個保持一致更加合理。學習

2.1 強化學習例子

小孩想要走路,但在這以前,他須要先站起來,站起來以後還要保持平衡,接下來還要先邁出一條腿,是左腿仍是右腿,邁出一步後還要邁出下一步。spa

小孩就是Agent,他試圖經過採起Action(即行走)來操縱Environment(行走的表面),而且從一個狀態State轉變到另外一個狀態State(即他走的每一步),當他完成任務的子任務(即走了幾步)時,孩子獲得Reward(給巧克力吃),而且當他不能走路時,就不會給巧克力。blog

如圖所示:io

image

3. 強化學習和監督學習, 非監督學習的區別

image

3.1 強化學習和非監督學習的區別

非監督學習不是學習輸入到輸出的映射,而是學習出模式。例如在向用戶推薦新聞文章的任務中,非監督式會找到用戶先前已經閱讀過相似的文章並向他們推薦其一,而強化學習將經過向用戶先推薦少許的新聞,並不斷得到來自用戶的反饋,最後構建用戶可能會喜歡的文章的「知識圖」。class

3.2 強化學習和監督學習的區別

監督學習就比如你在學習的時候,有一個導師在旁邊指點,他知道怎麼是對的怎麼是錯的,但在不少實際問題中,有成千上萬種組合方式的狀況,不可能有一個導師知道全部可能的結果。im

而這時,強化學習會在沒有任何標籤的狀況下,經過先嚐試作出一些行爲獲得一個結果,經過這個結果是對仍是錯的反饋,調整以前的行爲,就這樣不斷的調整,算法可以學習到在什麼樣的狀況下選擇什麼樣的行爲能夠獲得最好的結果。d3

4. 強化學習的基本概念

  1. State(縮寫s)環境的狀態,t時刻環境的狀態\(s_t\)是它的環境狀態集中某一個狀態。
  2. Action(縮寫a)智能體的動做,t時刻個體採起的動做\(a_t\)是它的動做集中某一個動做。
  3. Reward(縮寫r)環境的獎勵,t時刻個體在狀態\(s_t\)採起的動做\(a_t\)對應的獎勵\(r_{t+1}\)會在t+1時刻獲得。
  4. Policy(縮寫\(\pi\))個體的策略,它表明個體採起動做的依據,即個體會依據策略\(\pi\)來選擇動做。最多見的策略表達方式是一個條件機率分佈\(\pi(a|s)\), 即在狀態s時採起動做a的機率。即\(\pi(a|s)=P(a_t=a|s_t=s)\).此時機率大的動做被個體選擇的機率較高。
  5. Value(縮寫v)個體在策略\(\pi\)和狀態s時,採起行動後的價值,通常用\(v_\pi(s)\)表示。這個價值通常是一個指望函數。雖然當前動做會給一個延時獎勵\(r_{t+1}\),可是光看這個延時獎勵是不行的,由於當前的延時獎勵高,不表明到了\(t+1\),\(t+2\),...時刻的後續獎勵也高。好比下象棋,咱們能夠某個動做能夠吃掉對方的車,這個延時獎勵是很高,可是接着後面咱們輸棋了。此時吃車的動做獎勵值高可是價值並不高。所以咱們的價值要綜合考慮當前的延時獎勵和後續的延時獎勵。價值函數\(v\pi(s)\)通常能夠表示爲下式,不一樣的算法會有對應的一些價值函數變種,但思路相同。
    \[ v_\pi(s)=E_{\pi}(r_{t+1}+\gamma{r_{t+2}}+\gamma^2{r_{t+3}}+...|s_t=s) \]
  6. \(\gamma\)是模型要素,即獎勵衰減因子,在[0,1]之間。若是爲0,則是貪婪法,即價值只由當前延時獎勵決定,若是是1,則全部的後續狀態獎勵和當前獎勵一視同仁。大多數時候,咱們會取一個0到1之間的數字,即當前延時獎勵的權重比後續獎勵的權重大。
  7. \(P^a_{ss'}\)第七個是環境的狀態轉化模型,能夠理解爲一個機率狀態機,它能夠表示爲一個機率模型,即在狀態\(s\)下采起動做\(a\),轉到下一個狀態\(s'\)的機率,表示爲\(P^a_{ss'}\)
  8. \(\epsilon\)是探索率,這個比率主要用在強化學習訓練迭代過程當中,因爲咱們通常會選擇使當前輪迭代價值最大的動做,可是這會致使一些較好的但咱們沒有執行過的動做被錯過。所以咱們在訓練選擇最優動做時,會有必定的機率\(\epsilon\)不選擇使當前輪迭代價值最大的動做,而選擇其餘的動做。

以上8個就是強化學習模型的基本要素了。固然,在不一樣的強化學習模型中,會考慮一些其餘的模型要素,或者不考慮上述要素的某幾個,可是這8個是大多數強化學習模型的基本要素。

相關文章
相關標籤/搜索