Deep Learning專欄--強化學習之MDP、Bellman方程(1)

 

本文主要介紹強化學習的一些基本概念:包括MDP、Bellman方程等, 而且講述瞭如何從 MDP 過渡到 Reinforcement Learning。html

 

1. 強化學習基本概念

這裏仍是放上David Silver的課程的圖,能夠很清楚的看到整個交互過程。這就是人與環境交互的一種模型化表示,在每一個時間點,大腦agent會從能夠選擇的動做集合A中選擇一個動做$a_t$執行。環境則根據agent的動做給agent反饋一個reward $r_t$,同時agent進入一個新的狀態。web

根據上圖的流程,任務的目標就出來了,那就是要能獲取儘量多的Reward。Reward越多,就表示執行得越好。每一個時間片,agent根據當前的狀態來肯定下一步的動做。也就是說咱們須要一個state找出一個action,使得reward最大,從 state 到 action 的過程就稱之爲一個策略Policy,通常用$\pi $表示。算法

強化學習的任務就是找到一個最優的策略Policy從而使Reward最多。函數

在運行強化學習算法以前,首先須要獲得一系列的狀態,動做和反饋,這個過程一般是agent隨機獲得的:學習

$$ (s_1,a_1,r_1,s_2,a_2,r_2,…s_t,a_t,r_t) $$優化

這就是一系列的樣本Sample。強化學習的算法就是須要根據這些樣原本改進Policy,從而使得獲得的樣本中的Reward更好。lua

因爲這種讓Reward愈來愈好的特性,因此這種算法就叫作強化學習Reinforcement Learning。htm

 

2. MDP(Markov Decision Process)

強化學習的問題均可以模型化爲MDP(馬爾可夫決策過程)的問題,MDP 其實是對環境的建模;MDP 與常見的 Markov chains 的區別是加入了action 和 rewards 的概念。blog

所以,一個基本的 MDP 能夠用一個五元組$(S,A,P,R, \gamma)$表示,其中:ci

  1. $S$是一個有限狀態集;
  2. $A$是一個有限動做集;
  3. $P$是一個狀態轉移機率矩陣,$P_a(s, s′)=P(s_{t+1}=s′|s_t=s, a_t=a)$表示在狀態$s$下執行動做$a$後轉移到狀態 $s′$的機率;
  4. $R$是一個獎勵函數,$R_a(s, s′)$ 表示在狀態 $s$ 下執行動做 $a$ 後轉移到狀態 $s′$ 所獲得的即時回報(reward);
  5. $\gamma$是一個折扣因子,通常取值在 [0,1];用來區分當前回報和將來回報的重要性,通常會加在將來的回報前,減少將來回報的權重。

所以,MDP 的核心問題就是找到一個策略 $\pi(s)$ 來決定在狀態 $s$ 下選擇哪一個動做,這種狀況下MDP就變成了一個 Markov chain,且此時的目標跟咱們前面提到的強化學習的目標是一致的。

 

3. 回報與價值函數

狀態的好壞等價於對將來回報的指望。所以,引入回報(Return) 來表示某個時刻$t$的狀態將具有的回報:

$$ G_t = R_{t+1} + \gamma R_{t+2} + … = \sum_{k=0}^\infty\gamma^kR_{t+k+1} $$

上面 $R$ 是 Reward 反饋,$\gamma$ 是 discount factor(折扣因子),跟前面 MDP 中的符號的含義一致。

從上面的式子能夠, 除非整個過程結束,不然咱們沒法獲取全部的 reward 來計算出每一個狀態的 Return,所以,再引入一個概念:價值函數(value function),記爲 $V(s)$,經過 $V(s)$ 來表示一個狀態將來的潛在價值。從定義上看,value function 就是回報的指望

$$ V(s) = \mathbb E[G_t|S_t = s] $$

引出價值函數,對於獲取最優的策略Policy這個目標,咱們就能夠經過估計 value function 來間接得到優化的策略。道理很簡單,經過價值函數能夠知道每一種狀態的好壞,這樣咱們就知道該怎麼選擇了(如選擇動做使得下一狀態的潛在價值最大),而這種選擇就是咱們想要的策略。

咱們須要估算 Value Function,只要可以計算出價值函數,那麼最優決策也就獲得了。所以,問題就變成了如何計算Value Function

根據前面 $G_t$ 和 $V(s)$ 的定義,有:

$$ \begin{align} V(s) & = \mathbb E[G_t|S_t = s]\\ & = \mathbb E[R_{t+1}+\gamma R_{t+2} + \gamma ^2R_{t+3} + …|S_t = s]\\ & = \mathbb E[R_{t+1}+\gamma (R_{t+2} + \gamma R_{t+3} + …)|S_t = s]\\ & = \mathbb E[R_{t+1}+\gamma G_{t+1}|S_t = s]\\ & = \mathbb E[R_{t+1}+\gamma v(S_{t+1})|S_t = s] \end{align} $$

則有:

$$ V(s) = \mathbb E[R_{t+1} + \gamma V(S_{t+1})|S_t = s] $$

上面這個公式就是Bellman方程的基本形態。從公式上看,當前狀態的價值和下一步的價值以及當前的反饋Reward有關, 其中透出的含義就是價值函數的計算能夠經過迭代的方式來實現

 

4. 從 MDP 到 Reinforcement Learning

回到 MDP 問題,若是咱們知道了轉移機率 $P$ 和獎勵函數 $R$,那麼即可經過下面的方法求出最優策略 $\pi(s)$, 首先,結合上面提到的價值函數和Bellman方程有:

公式1:

$$ \pi(s):=\arg \max_a\ {\sum_{s’}P_{a}(s,s’)(R_{a}(s,s’)+\gamma V(s’))} $$

公式2:

$$ V(s) := \sum_{s’}P_{\pi(s)}(s,s’)(R_{\pi(s)}(s,s’) + \gamma V(s’)) $$

公式 1 表示在狀態 $s$ 下的採起的最優動做,公式 2 表示在狀態 $s$ 下的價值,能夠看到二者有依存關係;

而在 轉移機率 $P$ 和獎勵函數 $R$已知的狀況下,求解 MDP 問題常見作法有 Value iterationPolicy iteration.

4.1 Value iteration

在 Value iteration 中,策略函數 $\pi$ 沒有被使用,迭代公式以下:

$$ V_{i+1}(s) := \max_a \sum_{s’} P_a(s,s’)(R_a(s,s’) + \gamma V_i(s’)) $$

下標 $i$ 表示第 $i$ 次迭代,在每輪迭代中須要計算每一個狀態的價值,而且直到兩次迭代結果的差值小於給定的閾值才能認爲是收斂。

計算的出收斂的價值函數後,經過公式1就可以得出策略函數 $\pi$ 了,其迭代過程以下圖所示:

 

4.2 Policy iteration

Policy iteration同時更新價值 $V$ 和策略 $\pi$, 且通常可分紅兩步:

Policy Evaluation,策略評估,就是上面公式2的過程。目的是在策略固定的狀況下更新Value Function 直到 value 收斂,從另外一個角度來說就是爲了更好地估計基於當前策略的價值
Policy Improvement,策略改進,就是上面公式1的過程。就是根據更新後的 Value Function 來更新每一個狀態下的策略直到策略穩定
這個方法本質上就是使用當前策略($\pi$)產生新的樣本,而後使用新的樣本更好的估計策略的價值($V(s)$),而後利用策略的價值更新策略,而後不斷反覆。理論能夠證實最終策略將收斂到最優.

具體的算法流程以下所示:

 

4.3 區別與侷限

問題來了,上面的 Policy Iteration 和 Value Iteration有什麼區別, 爲何一個叫policy iteration,一個叫value iteration?

緣由其實很好理解,policy iteration 最後收斂的 value $V$ 是當前 policy 下的 value 值(也作對policy進行評估),目的是爲了後面的policy improvement獲得新的policy;因此是在顯式地不停迭代 policy。

而value iteration 最後收斂獲得的 value 是當前state狀態下的最優的value值。當 value 最後收斂,那麼最優的policy也就獲得的。雖然這個過程當中 policy 在也在隱式地更新,可是一直在顯式更新的是 value,因此叫value iteration。

從上面的分析看,value iteration 較 之policy iteration更直接。不過問題也都是同樣,都須要知道轉移機率 $P$ 和獎勵函數 $R$。

可是對於 Reinforcement Learning 這一類問題,轉移機率 $P$ 每每是不知道,知道轉移機率 $P$ 也就稱爲得到了模型 Model,這種經過模型來獲取最優動做的方法也就稱爲 Model-based 的方法。可是現實狀況下,不少問題是很可貴到準確的模型的,所以就有 Model-free 的方法來尋找最優的動做,像 Q-learning,Policy Gradient,Actor Critic這一類方法都是 model-free 的。

前面的方法問題是須要已知轉移機率 $P$, 目的是爲了遍歷當前狀態後的全部可能的狀態,所以若是採用貪婪的思想,那麼就不須要不遍歷後面全部的狀態,而是直接採起價值最大的狀態動做來執行。

Q-learning 實際上就是採用這種思想的,Q-Learning的基本思想是根據 value iteration 獲得的,但要明確一點是 value iteration 每次都對全部的Q值更新一遍,也就是全部的狀態和動做。但事實上在實際狀況下咱們沒辦法遍歷全部的狀態,還有全部的動做,所以,咱們只能獲得有限的系列樣本。具體的算法流程會再下一篇文章具體介紹。

綜上,本文主要介紹了強化學習的任務和一些概念,以及從 MDP 如何過渡到 Reinforcement,在後續的文章中會介紹value-based的Q-learning 和DQN方法,Policy gradient 類方法以及結合二者的 Actor Critic 及DDPG方法。 

 


參考資料:

1. 吳良超的學習筆記:強化學習筆記(1)-概述

2. DQN 從入門到放棄4 動態規劃與Q-Learning

相關文章
相關標籤/搜索