--- tags: RL --- # Reinforcement Learning | Introduction and Model-Based Control 111學年第二學期選修交大資工所謝秉均老師開設之強化學習原理。 因為觀念複雜且不容易消化,所以決定在每次上完課之後,好好把課堂學到的東西整理成筆記,內化成自己的。 (希望我能堅持下去QQ) 另外我在上這堂課的同時,也有看 Stanford 的線上 RL 課程,所以筆記可能也會稍微整合一些些 Stanford 線上課的內容。 Reinforcement Learning | Stanford Online: https://www.youtube.com/watch?v=FgzM3zpZ55o&list=PLoROMvodv4rOSOPzutgyCTapiGlY2Nd8u&index=1 ## Introduction ### Overview 我們可以用一句話簡述強化學習 (Reinforcement Learning): Learn to take a sequences of actions to achieve a specific goal in an unknown environment. - Learn: 表示我們事先不知道環境是如何活動的 - Sequence of actions: 表示和環境多次的互動 - Goal: 例如獲得高 reward RL 的四個重點議題,也讓 RL 和其他機器學習方法有所分別: * Optimization: Agent 需要最佳化自己的 action 來獲得最大的 reward * Exploration: 透過與環境互動來嘗試不同的決定並學習,但可能會面臨 exploration 與 exploitation 兩者的 trade off * Delayed consequences: 某個決定可能之後才有影響 * Generalization: Agent 是否能判斷某個 action 在之前沒經歷過的 state 下的好壞? > 比較: > Supervised Learning: Optimization, Generalization > Imitation Learning: Optimization, Generalization, Delayed consequences ### Sequential Decision Making Agent 和 Environment 的互動可以用下圖來表示: ![](https://i.imgur.com/CsjbwV1.png) > 另一種 trajectory 的註記方式為:$s_{0}, a_{0}, r_{0}, s_{1}, ...$ ,兩個都可以 在 agent 和 environment 的交互之下,一個 agent 會採取一連串的 actions $\{a_{t}\}$,並觀察到一連串的 states $\{s_{t}\}$ 以及獲得一連串的 rewards $\{r_{t}\}$。 一個 RL 演算法常包含以下要素: 1. **Model**: 描述環境會如何針對 agent 的行為而改變 包含 **transition model**,是所有 states 的集合 $S$ 的機率分布: $$ P(s_{t+1}=s^\prime|s_{t}=s, a_{t}=a) $$ 以及 **reward model**: $$ r(s_{t}=s, a_{t}=a)=\mathbb{E}[r_{t}|s_{t}=s, a_{t}=a] $$ 2. **Policy**: 從 states 映射到 actions 的函數,決定 agent 會如何採取的 action 可以是 deterministic 的: $$ \pi(s)=a $$ 也可以是 stochastic 的: $$ \pi(a|s)=P(a_{t}=a|s_{t}=s) $$ 3. **Value function**: 當遵從某個 policy 時,在特定 state 或 action 之下可以獲得的 future rewards,定義為: $$ V^\pi(s_{t}=s)=\mathbb{E}_{\pi}[r_{t+1}+\gamma r_{t+2}+\gamma ^2 r_{t+3}+...|s_{t}=s] $$ 以上三點更詳細的概念會在後續陸續提到。 根據是否有明確的 model,RL algorithm 可以被分為以下兩種: * Model-based * Model-free 下圖分類了各種不同的 RL agents: ![](https://i.imgur.com/XEO0m1n.png =500x) ## Markov Decision Process 建構環境 (Model the environment) 的方法有很多種,其中最基礎且重要的方法是 Markov Decision Process (MDP)。 ### Markov chain Markov chain 是一種隨機過程,我們可以用經典的 Mars Rover Problem 作為例子: ![](https://i.imgur.com/6OZsugy.png) 一個抽樣的 trajectory 記作 $s_{0}, s_{1}, s_{2}, ..., s_{t}, s_{t+1}, ...$,例如 $x_{3}, x_{4}, x_{5}, x_{4}, x_{5}, ...$,而箭頭上的數值代表 transition probability,例如 $P(s_{t+1}=x_{2}|s_{t}=x_{1})=0.5$ Markov chain 符合 Markov property,意即給定當前的 state ,則未來和過去的狀態無關。 :::info **Markov Property** A state $s_{t}$ is Markov if and only if $$ P(s_{t+1}|s_{t})=P(s_{t+1}|s_{1}, ..., s_{t}) $$ ::: :::info **Markov Chain** A Markov chain $(S, P)$ is specified by: 1. State space $S$: a (finite) set of possible states. 2. Transition matrix $P=[P_{ss^\prime}]$ with elements $P_{ss^\prime}=P(s_{t+1}=s^\prime|s_{t}=s)$ ::: $P$ 是一個 $|S|\times|S|$ 的矩陣,即 $$ P= \left[ \begin{array}{ccc} P_{11} & P_{12} & ... & P_{1n} \\ P_{21} & P_{22} & ... & P_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ P_{n1} & P_{n2} & ... & P_{nn} \end{array} \right] $$ 其中 $P_{ij}=P(s_{t+1=j}|s_{t=i})$ $P$ 具有兩個性質: 1. 每個 entry 都是非負的 這是因為每個 entry 都是一個機率值,不會出現負數 2. Row sum = 1 例如:$P$ 的第一行是由 $s_{1}$ 轉換到 $s_{1}, ..., s_{n}$ 的機率,故全部的值相加會等於 $1$ ### Markov Reward Process 在 Markov chain 的基礎上,加上 reward function,則我們可以定義 Markov Reward Process: :::info **Markov Reward Process** An MRP $(S, P, R, \gamma)$ is specified by *Underlying dynamics*: 1. State space $S$ 2. Transition matrix $P=[P_{ss^\prime}]$ with $P_{ss^\prime}=P(s_{t+1}=s^\prime|s_{t}=s)$ *Task*: 3. Reward function $R_{s}=\mathbb{E}[r_{t+1}|s_{t}=s]$ 4. Discount factor $\gamma \in [0, 1]$ ::: Markov Reward Process 用於描述一個在不同狀態之間轉換的系統,其中每個狀態都有一個與之相關聯的即時 reward,並且轉換的過程滿足 Markov Property。 :::warning **Return** $G_{t}$ is the cumulative discounted rewards over a single trajectory from $t$ onward (random). $$ G_{t}=r_{t+1}+\gamma r_{t+2}+\gamma ^2 r_{t+3}+...=\sum_{k=0}^\infty \gamma^k r_{t+k+1} $$ ::: :::warning **State-value function** $V(s)$ is the expected return if state $s$ is the starting state. $$ \begin{aligned} V(s) &=\mathbb{E}[G_{t}|s_{t}=s] \\ &= \mathbb{E}[r_{t+1}+\gamma r_{t+2}+\gamma ^2 r_{t+3}+...|s_{t}=s] \end{aligned} $$ ::: Return 的計算十分簡單。同樣再以 Mars Rover Problem 作為例子,令在 $x_{1}$ 的 reward $R_{1}=0.05$,$R_{6}=1$,其他為 $0$。令 $\gamma = 0.9$,對於 episode $x_{5}, x_{6}, x_{6}, x_{5}, x_{4}$,return 為: $$ G_{t} = 0 + (1 \times 0.9) + (1 \times 0.9^2) + (0 \times 0.9^3) + (0 \times 0.9^4) $$ 而 state-value function $V(s)$ 該如何計算呢? 因為 $V(s)$ 是 $G_{t}$ 的期望值,一個非常直觀的方法是使用暴力解,只要我們抽樣夠多的 trajectories,則它們 $G_{t}$ 的平均即是 $V(s)$。 另一種較常見的方法是使用 dynamic programming: $$ \begin{aligned} V(s) &=\mathbb{E}[G_{t}|s_{t}=s] \\ &= \mathbb{E}[r_{t+1}+\gamma r_{t+2}+\gamma ^2 r_{t+3}+...|s_{t}=s] \\ &= \mathbb{E}[r_{t+1}+\gamma G_{t+1}|s_{t}=s] \\ &= \mathbb{E}[r_{t+1}|s_{t}=s]+ \gamma \mathbb{E}[G_{t+1}|s_{t}=s] \\ &= R_{s} + \gamma \sum_{s^\prime} P(s^\prime|s_{t}=s) \mathbb{E}[G_{t+1}|s_t=s, s_{t+1}=s^\prime] \\ &= R_{s} + \gamma \sum_{s^\prime} P(s^\prime|s_{t}=s) \mathbb{E}[G_{t+1}|s_{t+1}=s^\prime] \\ &= R_{s} + \gamma \sum_{s^\prime} P_{ss^\prime} V(s^\prime) \end{aligned} $$ > $\mathbb{E}[G_{t+1}|s_t=s, s_{t+1}=s^\prime]=V(s^\prime)$ 是因為符合 Markov Property 由此我們導出在 MRP 使用的 Bellman Expectation Equation: :::warning **Bellman Expectation Equation** for MRP $$ V(s)=R_{s} + \gamma \sum_{s^\prime} P_{ss^\prime} V(s^\prime) $$ ::: Bellman Expectation Equation 寫成矩陣型式: $$ V=R+ \gamma PV \\ => \left[ \begin{array}{ccc} V(s_1) \\ V(s_2) \\ \vdots \\ V(s_n) \end{array} \right] = \left[ \begin{array}{ccc} R_1 \\ R_2 \\ \vdots \\ R_n \end{array} \right] + \gamma \left[ \begin{array}{ccc} P_{11} & P_{12} & ... & P_{1n} \\ P_{21} & P_{22} & ... & P_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ P_{n1} & P_{n2} & ... & P_{nn} \end{array} \right] \left[ \begin{array}{ccc} V(s_1) \\ V(s_2) \\ \vdots \\ V(s_n) \end{array} \right] $$ 因為 $V=R+ \gamma PV$,經由推導我們可得 $V=(I - \gamma P)^{-1} R$,得到 $V$ 之解。 然而若直接計算反矩陣來得到解,計算的時間複雜度為$O(n^3)$,非常沒有效率,故我們需要其他的解法,這會在之後的內容中介紹。 --- 在 MRP 中我們還使用到了 discount factor $\gamma$。直觀而言,我們較不在乎離當前時間越遠的未來,故 future reward 會乘上 $\gamma$;數學上,有了 discount factor,可以避免 return 無法收斂。 $\gamma$ 的選擇: * Continuing environment: 固定的 $\gamma < 1$ * Episodic environment: $\gamma \leq 1$ ### Markov Decision Process 在 Markov Reward Process 的基礎上,加上各種可能的 actions ,則我們可以定義 Markov Decision Process: :::info **Markov Decision Process** An MDP $(S, A, P, R, \gamma)$ is specified by *Underlying dynamics*: 1. State space $S$ 2. Action space $A$ 3. Transition matrix $P=[P_{ss^\prime}^a]$ with $P_{ss^\prime}^a=P(s_{t+1}=s^\prime|s_{t}=s, a_t=a)$ *Task*: 3. Reward function $R_{s}^a=\mathbb{E}[r_{t+1}|s_{t}=s, a_t=a]$ 4. Discount factor $\gamma \in [0, 1]$ ::: > MDP 描述一個由狀態、行動、獎勵和轉移概率所構成的決策過程 有了 states 和 actions 後,我們便能夠定義 **policy**: :::warning A (randomized) **policy** $\pi$ is a conditional distribution over possible actions given state $s$, i.e., for any $s \in S$, $a \in A$, $$ \pi(a|s):=P(a_t=a|s_t=s) $$ ::: 因為我們已經假設整個過程符合 Markov Property,故這裡我們專注於討論 stationary policy,意指 $\pi$ 和時間沒有關係。 對於一個 MDP,如果我們固定 policy $\pi(a|s)$,則: $$ P_{ss^\prime}^\pi = \sum_{a \in A} \pi(a|s) P_{ss^\prime}^a $$ > 此固定 policy 之下由 $s \rightarrow s^\prime$ 的機率 = $\sum_{a \in A}$ (此 policy 下在 $s$ 下採取 $a$ 的機率) X (採取 $a$ 時 $s \rightarrow s^\prime$ 的機率) $$ R_{s}^\pi = \sum_{a \in A} \pi(a|s) R_{s}^a $$ > 此固定 policy 之下 $s$ 作為起點的 reward = $\sum_{a \in A}$ (此 policy 下在 $s$ 下採取 $a$ 的機率) X (採取 $a$ 時 $s$ 作為起點的 reward) :::danger 綜合以上兩點,我們可以發現對於一個 MDP,如果我們固定 policy $\pi(a|s)$,則我們可以得到 $\pi$-induced MRP $(S, P^\pi, R^\pi, \gamma)$ ::: 多了 actions 之後,我們便可以定義 MDP 的 return 和 state-value function: :::warning **Return** $G_{t}$ is the cumulative discounted rewards over a single trajectory from $t$ onward (random). $$ G_{t}=r_{t+1}+\gamma r_{t+2}+\gamma ^2 r_{t+3}+...=\sum_{k=0}^\infty \gamma^k r(s_{t+k+1}, a_{t+k+1}) $$ ::: :::warning **State-value function** $V^\pi(s)$ is the expected return if state $s$ is the starting state. $$ V^\pi(s)=\mathbb{E}[G_{t}|s_{t}=s;\pi] $$ ::: 值得注意的是,$V^\pi(s)$ 具有隨機性,來源包含: 1. Reward 2. State transition 3. Policy ## Model-Based Evaluation and Control ### MDP Policy Evaluation 我們該如何評價一個 policy 的好壞呢? 在此需要先介紹新的定義: :::warning **Action-value function** $Q^\pi(s, a)$ is the expected return if we start from state $s$ and take action $a$, and then follow the original policy $\pi$. $$ Q^\pi(s, a)= \mathbb{E}[G_t|s_t=s, a_t=a;\pi] $$ ::: ![](https://i.imgur.com/SgsGL7V.png) $V^\pi(s)$ 和 $Q^\pi(s, a)$ 是具有關聯性的,可以互相以對方表示,也可以寫成遞迴式: :::warning **Bellman Expectation Equations**: * $V$ written in $Q$: $$ V^\pi(s)= \sum_{a \in A} \pi(a|s)Q^\pi(s, a) $$ * $Q$ written in $V$: $$ Q^\pi(s, a)=R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V^\pi(s^\prime) $$ * $V$ written in $V$: $$ V^\pi(s)=\sum_{a \in A} \pi(a|s) \Bigr[R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V^\pi(s^\prime) \Bigr] $$ * $Q$ written in $Q$: $$ Q^\pi(s, a)=R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a \Bigr[\sum_{a^\prime \in A} \pi(a^\prime|s^\prime)Q^\pi(s^\prime, a^\prime) \Bigr] $$ ::: 因為 $V^\pi$ 可以寫成自己的遞迴式,因此給定一個 policy $\pi$,我們可以找出 $V^\pi$ 的值,此即為 policy evaluation。 兩種 policy evaluation 的方法: 1. Non-iterative policy evaluation Matrx form: $$ \begin{aligned} &V^\pi=R^\pi+ \gamma P^\pi V^\pi \\ =>\ &V^\pi=(I- \gamma P^\pi)^{-1} R^\pi \end{aligned} $$ 3. Iterative policy evaluation :::info **Iterative MDP Policy Evaluation (IPE)** For a fixed policy $\pi$: Initialize $V_0^\pi(s)=0$ for all $s$ For $k = 1, 2, ...$ &emsp;for all $s$ &emsp;&emsp;$V^\pi_k(s)=\sum_{a \in A} \pi(a|s) \Bigr[R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V^\pi_{k-1}(s^\prime) \Bigr]$ ::: 代入 $V_0^\pi(s)$ 可以得到 $V_1^\pi(s)$,代入 $V_1^\pi(s)$ 可以得到 $V_2^\pi(s)$,迭代直到 converge。 > 如果初始值 $V_0^\pi(s)=V^\pi(s)$,則一次迴圈就收斂啦 ___ 我們可能會好奇,利用 IPE 計算是否真的能夠使 $V^\pi_k(s)$ 收斂至 $V^\pi(s)$? 考慮一個 matrix vector space $V_0^\pi(s), V_1^\pi(s), ..., V_k^\pi(s) \in \mathbb{R}^{|S|}$,我們可以透過證明以下兩步驟來證明 IPE 會使 $V_k^\pi(s)$ converge: 1. IPE is an contraction operator. 2. Under any contraction operator, the points converge to a fixed point. 定義 IPE Operator: :::warning **IPE Operator** (also called **Bellman Expectation Backup Operator**) $$ T^\pi(V):=R^\pi+ \gamma P^\pi V $$ ::: 我們使用 $L_\infty$-norm 來衡量兩個 value function $V, V^\prime$ 之間的距離: $$ ||V-V^\prime||_\infty := max_{s \in S} |V(s) - V(s^\prime)| $$ **IPE is an contraction operator.** *proof*: $$ \begin{aligned} ||T^\pi(V) - T^\pi(V^\prime)||_\infty &= ||(R^\pi+ \gamma P^\pi V) - (R^\pi+ \gamma P^\pi V^\prime)||_\infty \\ &= \gamma ||P^\pi(V-V^\prime)||_\infty \\ &\leq \gamma ||V-V^\prime||_\infty \end{aligned} $$ > 第二行至第三行不等式成立是因為 $P^\pi$ 的每個 entry 都 $\leq 1$ 我們稱 $T^\pi$ 為 $\gamma$-contraction operator。 **Under any contraction operator, the points converge to a fixed point.** 上述可以根據 Banach Fixed-Point Theorem 得證: :::info **Banach Fixed-Point Theorem** For any non-empty complete metric space, if $T$ is a $\gamma$-contraction operator, then $T$ has a unique fixed point. ::: > Complete: 表示極限 (limit) 是在 space 裡面 :::danger Summary: Under **IPE**, the value function $V_k^\pi$ converges to the correct $V^\pi$, for **any** initialization $V_0^\pi$. ::: ### Finding Optimal Policy 我們知道如何進行 policy evaluation 了,根據計算出來的評價,以下討論如何去找到最佳的 (optimal) policy。 定義: :::warning **Optimal State-Value Function** $$ V^*(s)=\max_\pi V^\pi(s) $$ ::: > 對任意 state $s$ 遵循最佳 policy 所能得到的 expected return :::warning **Optimal Action-Value Function** $$ Q^*(s, a)=\max_\pi Q^\pi(s, a) $$ ::: > 對任意 state $s$ 執行 $a$ 後再遵循最佳 policy 繼續執行所能得到的 expected return 什麼條件下才能說一個 policy 比另一個更好呢? :::info **Partial Ordering of Policies** $$ \pi \geq \pi^\prime \ \rm{if} \ V^\pi(s) \geq V^{\pi^\prime}(s), \forall s $$ ::: > 注意!一定要對每個狀態都成立 :::info **Optimal Policy** A policy $\pi^*$ is an **optimal policy** if it is better than or equal to all other policies, i.e. $$ \pi^* \geq \pi,\ \rm{for\ all} \ \pi $$ ::: $\pi^*$ 無論如何都會存在嗎? :::info **Theorem (Existence of Optimal Policy)** For any finite MDP, there always exists an optimal policy $\pi^*$ s.t. $$ \pi^* \geq \pi,\ \rm{for\ all} \ \pi $$ ::: ___ Optimal policy 存在,但該如何找到? 當我們計算出了每個狀態下的最佳 action-value function $Q^*(s, a)$ 時,我們便可以依此找出最優策略: $$ \pi^*(a|s) = \arg\max_{a\in A} Q^*(s,a) $$ 也就是說對於每一個狀態 $s$,我們都能夠確定最佳的動作 $a$(即最大化 $Q^*(s,a)$ 的動作) ,從而找到對應的 optimal policy。 因此,**計算出 $Q^*(s, a)$ 等同於找到 optimal policy**。 接下來將討論如何找到 $Q^*(s, a)$。 定義: :::warning **Bellman Optimality Equations**: * $V^*$ written in $Q^*$: $$ V^*(s)= \max_a Q^*(s, a) $$ * $Q^*$ written in $V^*$: $$ Q^*(s, a)=R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V^*(s^\prime) $$ * $V^*$ written in $V^*$: $$ V^*(s)=\max_a \Bigr[R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V^*(s^\prime) \Bigr] $$ * $Q^*$ written in $Q^*$: $$ Q^*(s, a)=R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a (\max_a Q^*(s^\prime, a)) $$ ::: Bellman Optimality Equations 因為需要取最大值,無法像 Bellman Expectation Equations 一樣使用線性代數解得答案。以下為兩種 iterative 的求解方法: 1. Value Iteration 2. Policy Iteration #### Value Iteration 我們知道 Bellman Optimality Equation: $$ V^*(s)=\max_a \Bigr[R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V^*(s^\prime) \Bigr] $$ 因此我們可以透過 Bellman Optimality Equation 定義 Bellman Optimality Operator: :::warning **Bellman Optimality Operator** $$ T^*(V)= \max_{a \in A} (R^a + \gamma P^a V) $$ ::: 利用 Bellman Optimality Operator 進行 Value Iteration: :::info **Value Iteration** Initialize $k=0$ and set $V_0(s)=0$ for all $s$ Repeat until convergence: $V_{k+1} \leftarrow T^*(V_k)$ ::: 計算 $V_{k+1}=T^*(V_k)$ 等同於計算: for each $s$ &emsp; $V_{k+1}(s)=\max_a \Bigr[R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V_k(s^\prime) \Bigr]= \max_a Q_k(s, a)$ $\sum_{s^\prime \in S} P_{ss^\prime}^a V^*(s^\prime)$ 需花 $O(|S|)$,找所有 action 中的 max 花 $O(|A|)$,而每步驟要對所有 states 計算花 $O(|S|)$,故 value iteration 的時間複雜度為 $O(|S|^2|A|)$。 值得注意的是,在未收斂之前,我們在迭代的過程中計算出的 intermediate value function $V_k$ 可能不能對應到任何特定的 policy。 當我們找到 $V^*$ 之後,便可以透過 greedy policy 來找到最佳 policy。對於所有 $s$,選擇一個 action $a$,使得 $Q^*(s, a) = r + \gamma V^*(s')$ 最大化,即 $$ \pi^*(s) = \arg\max_a Q^*(s, a) = \arg\max_a \left( R(s, a) + \gamma \sum{s'} P(s'|s, a) V^*(s')\right) $$ 此 policy 即為 optimal policy。 --- Value Iteration 並不是很好理解,我們用馬力歐找寶藏的遊戲作為例子來解釋 Value Iteration 整個過程: ![](https://i.imgur.com/ENiFDM5.png =300x) * States: 馬力歐的位置,在九宮格上共 9 種可能 * Actions: 上下左右,若有寶箱可拿寶箱 * Reward: * 馬力歐拿到寶箱,$R^a_s=0$ * 馬力歐朝任一方向移動,$R^a_s=-1$ * 假設 $\gamma=1$,且除非撞到牆壁,否則 $P^a_{ss^\prime}=1$ 假設座標由右至左、由上至下標註,寶箱在 (2, 3)。每一次迭代中,對於每個 state,我們都根據 Bellman optimality equation 計算它們的下一步 value,即計算 $$ V_{k+1}(s)=\max_a \Bigr[R_{s}^a + \gamma \sum_{s^\prime \in S} P_{ss^\prime}^a V_k^*(s^\prime) \Bigr]= \max_a Q_k(s, a) $$ 迭代過程如下: ![](https://i.imgur.com/C5KvIkI.png) * 初始化:所有 states 的 $V_0(S)=0$ * 第一次 iteration * $V_1((2, 3))=0+0=0$ * 其他 states $V_1(s)$ 之值皆為 $-1$,例如:$V_1((1, 1))=-1+0=-1$ * 第二次 iteration * $V_2((2, 3))=0+0=0$ * 對於 $(1, 1)$ ,往下或往右可以有最大的 value,故 $V_2((1, 1))=(-1)+(-1)=-2$,$(1, 2), (2, 1), (3, 1), (3, 2)$ 同理 * 對於 $(1, 3)$ ,往右可以有最大的 value,故 $V_2((1, 3))=(-1)+0=-1$,其他位於寶箱附近的 states 同理 * 第三次 iteration * $V_3((2, 3))=0+0=0$ * 對於 $(1, 1)$ ,往下或往右可以有最大的 value,故 $V_3((1, 1))=(-1)+(-2)=-3$,其他距離寶箱 3 步的 states 同理 * 對於 $(1, 2)$ ,往下或往右可以有最大的 value,故 $V_3((1, 2))=(-1)+(-1)=-2$,其他距離寶箱 2 步的 states 同理 * 對於 $(1, 3)$ ,往右可以有最大的 value,故 $V_3((1, 3))=(-1)+0=-1$,其他位於寶箱附近的 states 同理 * 第四次 iteration 所有 $V(s)$ 皆沒有變化,故已收斂 > 參考資料: https://zhuanlan.zhihu.com/p/33229439 ___ 能夠用 Value Iteration 來找最佳 policy 的原因是 Value Iteration 收斂的性質: :::info **Value iteration converges on $V^*$** For any initial $V_0$, value iteration achieves that $V_k \rightarrow V^*$ (in $L_\infty$-norm) ::: 此性質可透過以下三步來證明: **1. $T^*$ is a contraction operator.** *proof:* $$ \begin{aligned} ||T^*(V)-T^*(\hat{V})||_\infty &= \max_s |T^*(V(s))-T^*(\hat{V(s)})| \\ &= \max_s |\max_a(R^a_s + \gamma \sum_{s^\prime} P^a_{ss^\prime} V(S^\prime)) - \max_{a^\prime}(R^{a^\prime}_s + \gamma \sum_{s^\prime} P^{a^\prime}_{ss^\prime} V(S^\prime))| \\ &\leq \max_s\max_a|(R^a_s + \gamma \sum_{s^\prime} P^a_{ss^\prime} V(S^\prime)) - (R^{a}_s + \gamma \sum_{s^\prime} P^{a}_{ss^\prime} V(S^\prime))| \\ &\leq \max_s\max_a|\gamma \sum_{s^\prime} P^a_{ss^\prime} (V(s^\prime) - \hat{V}(s^\prime))| \\ &\leq \gamma ||(V-\hat{V})||_\infty \end{aligned} $$ => $T^*$ is a $\gamma$-contraction operator. **2. Under a contraction operator, ${V_k}$ shall converge to the unique fixed point.** *proof:* Since $T^*$ is a $\gamma$-contraction operator in a complete metric space, by Banach Fixed Point Theorem, $T^*$ converges to the unique fixed point. **3. Since $V^*$ is a fixed point, $V_k \rightarrow V^*$ due to uniqueness.** > 若 $\gamma$ 很接近 $1$,則 value iteration 可能會迭代無限次而不收斂。 #### Policy Iteration Policy iteration 的目的是透過交替進行 policy evaluation 和 policy improvement,逐步優化 policy,直到找到最佳 policy。 ![](https://i.imgur.com/NoiJDQr.png =500x) 1. Policy evaluation: 固定 policy,計算出對應的 $V^\pi(s)$,可使用任意 policy evaluation 的演算法 2. Policy improvement: 找出 policy $\pi^\prime \geq \pi$,可使用任意 policy improvement 的演算法 :::info **Policy Iteration** (註:這裡針對 deterministic policy) Initialize $k=0$ and set $\pi_0(s)$ arbitrarily for all $s$ While $k=0$ or $\pi_k \neq \pi_{k-1}$: &emsp;Derive $V^{\pi_k}$ via **policy evaluation** for $\pi_k$ &emsp;Derive $\pi_{k+1}$ by greedy **one-step policy improvement** ::: :::info **One-Step Policy Improvement** Given $V^{\pi_k}$, compute $Q^{\pi_k}(s, a)$: $$ Q^{\pi_k}(s, a)=R(s, a)+\gamma \sum_s P(s^\prime|s, a) V^{\pi_k}(s^\prime) $$ Derive the new policy $\pi_{k+1}$ for all states $s$: $$ \pi_{k+1} (s) = \arg\max_a Q^{\pi_k}(s,a) $$ ::: 為何 One-step policy improvement 合理? 假設我們採取 $\pi_{k+1}$ 只進行一步動作,之後的動作維持遵循 $\pi_k$,會比從頭到尾都遵循 $\pi_k$ 來得更好。這是因為 $\pi_{k+1}$ 選擇的 action 是使得 $Q^{\pi_k}(s,a)$ 最大的 action,因此 $$ \begin{aligned} V^{\pi_{k+1}}(s) &= Q^{\pi_k}(s, \pi_{k+1}(s))\\ &= \max_a Q^{\pi_k}(s,a) \\ &\geq R(s, \pi_k(s))+\gamma \sum_s P(s^\prime|s,a) V^{\pi_k}(s^\prime) \\ &= V^{\pi_k}(s) \end{aligned} $$ 若從頭到尾都採取 $\pi_{k+1}$,也會比遵循 $\pi_k$ 好: :::info **Theorem (Monotonic Policy Improvement)** Under the one-step policy improvement step, we have $V^{\pi_{k+1}}(s) \geq V^{\pi_k}(s), \forall s$, and hence $\pi_{k+1} \geq \pi_k$ ::: *proof:* $$ \begin{aligned} V^{\pi_k}(s) &\leq \max_a Q^{\pi_k}(s, a)\\ &= \max_a R(s,a) + \gamma \sum_{s^\prime \in S} P(s^\prime|s,a)V^{\pi_k}(s^\prime) \\ &= R(s, \pi_{k+1}(s))+\gamma \sum_{s^\prime \in S} P(s^\prime|s,\pi_{k+1}(s))V^{\pi_k}(s^\prime) \\ &\leq R(s, \pi_{k+1}(s))+\gamma \sum_{s^\prime \in S} P(s^\prime|s,\pi_{k+1}(s))\max_{a^\prime} Q^{\pi_k}(s^\prime, a^\prime) \\ &= R(s, \pi_{k+1}(s))+\gamma \sum_{s^\prime \in S} P(s^\prime|s,\pi_{k+1}(s))\\ &\ \ \ \ \times(R(s^\prime,\pi_{k+1}(s)) + \gamma \sum_{s^{\prime\prime} \in S} P(s^{\prime\prime}|s^\prime,\pi_{k+1}(s^\prime))V^{\pi_k}(s^{\prime\prime})) \\ &... \\ &= V^{\pi_{k+1}}(s) \end{aligned} $$ 這個證明的想法可以用 “Peeling off" 的概念來想像: ![](https://i.imgur.com/9BzdjVu.jpg) 已知由 $s$ 遵循 $\pi_{k+1}$ 到 $s^\prime$ 後再遵循 $\pi_k$ 比從頭到尾遵循 $\pi_k$ 來得好,則同理,由 $s^\prime$ 遵循 $\pi_{k+1}$ 到 $s^{\prime\prime}$ 後再遵循 $\pi_k$ 也會比從 $s^\prime$ 到尾都遵循 $\pi_k$ 來得好,以此類推。 ___ 若我們得到 $\pi_{k+1}=\pi_k$,則代表 policy iteration 收斂了,且也表示 Bellman optimality equation 被 $\pi_k$ 滿足: $$ V^{\pi_k}(s) = \max_a Q^{\pi_k}(s,a) $$ 此時 $\pi_k$ 必為 optimal policy。 :::danger Policy Iteration 和 Value Iteration 共同證明了 optimal policy 存在 ::: 值得一提的是,在只討論 deterministic policy 的情況下,policy iteration 會在有限次數的迭代內停下來。這是因為 deterministic policy 的數量為 $|A|^{|S|}$,因此我們最多迭代 $|A|^{|S|}$ 次一定會停下。 ### Quick Summary | Problem | Bellman Equation | Algorithm | | -------- | -------- | -------- | | Prediction | Bellman Expectation Equation | IPE | | Control | Bellman Expectation Equation <br> + Greedy Policy Improvement| Policy Iteration | | Control | Bellman Optimality Equation | Value Iteration | ## Next Reinforcement Learning | Policy Gradient https://hackmd.io/@tsen159/RLNote2