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


 

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

 

1. 強化學習基本概念

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

根據上圖的流程,任務的目標就出來了,那就是要能獲取盡可能多的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更好。

由於這種讓Reward越來越好的特性,所以這種算法就叫做強化學習Reinforcement Learning。

 

2. MDP(Markov Decision Process)

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

因此,一個基本的 MDP 可以用一個五元組$(S,A,P,R, \gamma)$表示,其中:

  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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM