DQN(Deep Q-learning)入門教程(一)之強化學習介紹

什麼是強化學習?

強化學習(Reinforcement learning,簡稱RL)是和監督學習,非監督學習並列的第三種機器學習方法,以下圖示:html

首先讓咱們舉一個小時候的例子:機器學習

你如今在家,有兩個動做選擇:打遊戲讀書。若是選擇打遊戲的話,你就跑到了網吧,選擇讀書的話,就坐在了書桌面前。你爸媽下班回家,若是發現你在網吧,就會給你一套社會主義的鐵拳,若是你在書桌面前的話,就會買根棒棒糖給你吃。函數

首先,你在家的時候並不知道選擇哪個動做,所以你可能會選擇study或者game。可是,當你接受了屢次社會主義的毒打和獎勵棒棒糖以後,你會發現選擇game會獲得懲罰,選擇study你會獲得獎勵。所以當你再次處於」home「狀態時,你就會偏向於選擇「study」。(這即是強化學習!!)學習

強化模型能夠建模以下:spa

以上面的爲例子,對以下進行說明:code

  • Agent:Agent也就是執行個體,咱們能夠操做執行個體作出不一樣的選擇(也就是動做Action)。htm

    圖中的「你」blog

  • Environment:咱們研究的環境,它有一個一個的狀態(State)。遊戲

    圖中你所處的位置狀態:網吧or書桌ip

  • Action:當Agent作出動做(action)的時候,環境會發生改變也就是State會發生改變。

    選擇Study或者Game後你會處於書桌或者網吧的狀態

  • Reward:當State發生改變時,環境會給予必定的獎勵(獎勵可爲正負)。

    拳頭or棒棒糖

總的來講,就是Agent在\(t\)時刻處於\(s_t\)狀態,它會作出某一個動做\(a_i\),致使\(t+1\)的狀態爲\(s_{t+1}\),同時在\(t+1\)時刻獲得的獎勵爲\(R_{t+1}\)

接下來咱們再介紹強化學習中稍微複雜一點的概念。這些概念是之後的基礎,也比較簡單,很容易理解。

策略(Policy)\(\pi\)

當Agent處於某一個state的時候,它作的Action是不肯定的,例如你能夠選擇study也能夠選擇game,也就是說你在某一個狀態是以必定的機率去選擇某一個action。也就是說,策略的選擇是一個條件機率\(\pi(a|s)\),這裏的\(\pi\)與數序中的\(\pi\)沒有任何關係,他只是表明一個函數而已(所以也能夠寫做\(f(a|s)\))。

\[\pi(a|s) = P(A_t=a | S_t=s) \]

此函數表明:在狀態\(s\)時採起動做\(a\)的機率分佈。

價值(value)

前面咱們說到過獎勵,當Agent在\(t\)時刻執行某個動做時,會獲得一個\(R_{t+1}\)。咱們能夠想一下蝴蝶效應,這個Action會影響\(R_{t+1}\),那麼他會不會影響\(R_{t+2},R_{t+3}……R_{t+n}\)呢?極可能會的,好比說在電遊中,你所作的某個選擇確定會對接下來的遊戲產生影響,這個影響能夠深遠,也能夠沒那麼深淵(對,我說的就是隱形守護者,mmp),所以狀態價值函數能夠表示爲:

\[v_{\pi}(s) = \mathbb{E}_{\pi}(R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...|S_t=s) \]

\(v_{\pi}(s)\)與策略函數\(\pi\)有關,能夠理解爲當Agent以策略\(\pi\)運行時,狀態\(s\)的價值是多少。也就是在此狀態下,我可以獲得多少回報。

在後面咱們會詳細的對這個函數進行分析。

$ \gamma$ 獎勵衰減因子

在上面的價值函數中,有一個變量\(\gamma\) ,即獎勵衰減因子,在[0,1]之間。若是爲0,則是貪婪法,即價值只由當前的獎勵決定,若是是1,則全部的後續狀態獎勵和當前獎勵一視同仁。通常來講取0到1之間的數。

環境的狀態轉化模型

因爲在某個狀態下,執行必定的action,可以達到新的一個狀態\(state_{t+1}\),可是\(state_{t+1}\)不必定是惟一的。環境的狀態轉化模型,能夠理解爲一個機率狀態機,它是一個機率模型,即在狀態\(t\)下采起動做\(a\),轉到下一個狀態\(s'\)的機率,表示爲\(P_{ss'}^a\)

探索率\(\epsilon\)

怎麼說的探索率呢?它主要是爲了防止陷入局部最優。好比說目前在\(s_1\)狀態下有兩個\(a_1,a_2\)。咱們經過計算出,發現執行\(a_1\)的動做比較好,可是爲了防止陷入局部最優,咱們會選擇以 \(\epsilon\) 的機率來執行\(a_2\),以\(1 - \epsilon\) 的機率來執行\(a_1\)。通常來講,\(\epsilon\) 隨着訓練次數的增長而逐漸減少。

馬爾科夫決策過程(MDP)

前面咱們說過某個狀態執行action能夠轉換成另一個state,能夠用機率表示爲:\(P_{ss'}^a\)。那麼這個機率與什麼有關呢?認真的考慮下,毋庸置疑,與目前的狀態\(s_t和a\)有關,可是一樣,它可能也與上一個狀態\(s_{t-1}\),上上個狀態\(s_{t-2}\)……有關,可是若是真的這樣考慮,就複雜了。

所以咱們將問題進行必定的簡化,簡化的方法就是假設狀態轉化的馬爾科夫性,也就是假設轉化到下一個狀態\(s'\)的機率僅與當前狀態\(s\)有關,與以前的狀態無關(也就是說將來與當前有關,與過去無關)。用公式表示就是:

\[P_{ss'}^a = \mathbb{P}(S_{t+1}=s'|S_t=s, A_t=a) \]

同時對於針對於策略 \(\pi\) 咱們也作MDP假設,也就是說,當前Agent所做的策略僅僅與當前狀態有關,與之前的狀態都沒有關係,所以:

\[\pi(a|s) = P(A_t=a | S_t=s) \]

一樣針對於價值函數\(v\),有:

\[v_{\pi}(s) = \mathbb{E}_{\pi}(R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...|S_t=s) \]

價值函數與Bellman方程

之因此咱們來分析這個價值函數,是由於它是強化學習的核心,爲何Agent可以自動學習,自動選擇某一個Action,其中一個量化標準就是它:

\[v_{\pi}(s) = \mathbb{E}_{\pi}(R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...|S_t=s) \]

令:

\[\begin{equation}G_{t}=R_{t+1}+\gamma R_{t+2}+\ldots=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1}\end{equation} \]

\(G_t\)表明Return,表明Agent從某一個狀態\(S_t\)開始直到終止狀態時全部獎勵的有衰減的之和。

則有:

\[v_{\pi}(s) = \mathbb{E}_{\pi}(G_t|S_t=s) \]

So:

\[\begin{equation}\begin{aligned} v_{\pi}(s) &=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots | S_{t}=s\right) \\ &=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma\left(R_{t+2}+\gamma R_{t+3}+\ldots\right) | S_{t}=s\right) \\ &=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma G_{t+1} | S_{t}=s\right) \\ &=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma v_{\pi}\left(S_{t+1}\right) | S_{t}=s\right) \end{aligned}\end{equation} \]

所以:

\[v_\pi(s)=\mathbb{E}\left[R_{t+1}+\gamma v\left(S_{t+1}\right) | S_{t}=s\right] \]

上述方程即是Bellman方程的基本形態。所以咱們能夠知道,當前狀態的價值與獎勵\(\R_{t+1}\)和下一個狀態的價值有關。

動做價值函數

這裏再說一下動做價值函數,它表明着在當前state下,作某一個action的價值:

\[q_{\pi}(s,a) = \mathbb{E}_{\pi}(G_t|S_t=s, A_t=a) = \mathbb{E}_{\pi}(R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...|S_t=s,A_t=a) \]

一樣,咱們利用Bellman方程,能夠將上式轉化成:

\[q_{\pi}(s,a) = \mathbb{E}_{\pi}(R_{t+1} + \gamma q_{\pi}(S_{t+1},A_{t+1}) | S_t=s, A_t=a) \]

動做價值函數與狀態價值函數之間能夠相互進行轉化:

\[v_{\pi}(s) = \sum\limits_{a \in A} \pi(a|s)q_{\pi}(s,a) \\ q_{\pi}(s,a) = R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^av_{\pi}(s') \]

圖示說明以下:圖來自(強化學習(二)馬爾科夫決策過程(MDP)

綜上可得:

\[\begin{equation}\begin{aligned} v_{\pi}(s) &=\sum_{a \in A} \pi(a | s)\left(R_{s}^{a}+\gamma \sum_{s^{\prime} \in S} P_{s s^{\prime}}^{a} v_{\pi}\left(s^{\prime}\right)\right) \\ q_{\pi}(s, a) &=R_{s}^{a}+\gamma \sum_{s^{\prime} \in S} P_{s s^{\prime}}^{a} \sum_{a^{\prime} \in A} \pi\left(a^{\prime} | s^{\prime}\right) q_{\pi}\left(s^{\prime}, a^{\prime}\right) \end{aligned}\end{equation} \]

總結

OK,強化學習的入門介紹就到這裏,經過這篇博客,咱們知道了:

  • 策略 \(\pi\) :表示在某一個狀態下,action的機率分佈函數\(\pi(a|s) = P(A_t=a | S_t=s)\)

  • \(\gamma\) :獎勵衰減因子,表示後續獎勵的佔比

  • 探索率\(\epsilon\):表示Agent以 \(\epsilon\) 的機率來隨機選擇action

  • 狀態轉化模型:表示執行某個action後,狀態變化的機率函數\(P_{ss'}^a = \mathbb{P}(S_{t+1}=s'|S_t=s, A_t=a)\)

  • 狀態價值函數:表示 \(t\) 時刻的狀態 \(s_{t}\) 能得到的將來回報(return)的指望\(v_\pi(s)=\mathbb{E}\left[R_{t+1}+\gamma \left(S_{t+1}\right) | S_{t}=s\right]\)

  • 動做價值函數:表示 \(t\) 時刻的狀態 \(s\),選擇一個 action 後能得到的將來回報(return)的指望

    \(q_{\pi}(s,a) = \mathbb{E}_{\pi}(R_{t+1} + \gamma q_{\pi}(S_{t+1},A_{t+1}) | S_t=s, A_t=a)\)

參考

相關文章
相關標籤/搜索