これからの強化学習_2

# **これからの強化学習**  　　

理系大学院修士1年のはりまです。
自分の学習内容をメモ程度にまとめていきます。見辛いのは申し訳ありません。
分からないところは教えていただきたいです。

---


### **Chap.1 強化学習の基礎的理論**  　　

   - 強化学習の基礎的概念を、最新の見方をもとに簡潔に整理  　　
   
---

#### **1.2 強化学習の構成要素**

   - 強化学習の基本的な枠組みと、相互作用を記述するための数理モデルであるマルコフ決定過程
   - このモデルに基づいて、収益、価値、方策などの諸概念を定式化する

---

   - 強化学習の枠組みは、**エージェント**、**環境**、**相互作用**


   - 1時間ステップごとに状態、行動、報酬を受け取ったり引き渡したりする
   
   - **方策**・・・エージェントが行動を決定するためのルール
   
   - エージェントが**「行動」**を通して環境にはたらきかけ、その結果を**「報酬」**と**「状態」**という形で観測することを通じて、方策を改善するアルゴリズムを設計
   
   - 報酬関数をどのように定めるかが、重要な課題
   
---
   
   - **マルコフ決定過程**・・・状態空間$S$、行動空間$A(s)$、初期状態分布$P_0$、状態遷移確率$P(s'|s,a)$、報酬関数$r(s,a,s')$により記述される確率過程
   
      - 状態集合$S$をすべての状態からなる集合とする
      - この集合の要素を表す変数を$s$とする
      - $N$種類の状態からなる状態集合は以下の通り
      
      ```math
      S={s_1,s_2,...,s_N}
      ```
      
      - 時間ステップ$t$における状態を表す確率変数を$S_t$とする
      - 時間ステップ0から順に状態を並べて書くと、以下の通り
      $$S_0,S_1,S_2,...,S_t,...$$
      
      - 行動集合$A(s)$をある状態$s$において選択可能なすべての行動からなる集合とする
      $$A(s)={a_1,a_2,...,a_M}$$
      
      - 時間ステップ$t$における状態$S_t$において決定されたエージェントの行動を表す確率変数を$A_t$とする
      - 時間ステップ0から順に状態を並べて書くと、以下の通り
      $$A_0,A_1,A_2,...,A_t,...$$
      
      - $S_t$、$A_t$、$S_{t+1}$に依存して定まる報酬を表す確率変数を$R_t+1$とする
      - すべての実数の集合$R$のうち、いずれかの値をとる

---

   - **モデル**
   
      - 環境は、初期時刻における状態（初期状態）を確率的に決定する（**初期状態分布**）
      $$S_0\~P_0(s)$$
      
      - 次の状態は、現在の状態と行動によって確率的に決定される
      - エージェントが状態$s$において行動$a$を決定した際、状態が$s'$に遷移する確率を、以下のように与える
      $$P(s'|s,a)$$
      
      - $t+1$ステップ目における状態$S_{t+1}$は以下のように定まる
      $$S_{t+1}~P(s'|S_t,A_t)$$
      
      - **マルコフ性**・・・直前の状態のみで遷移確率が決まる性質
      
      - 環境は、現在の状態$S_t$と行動$A_t$、次の状態$S_{t+1}$に応じて、報酬$R_{t+1}$を決定する
      $$R_{t+1}=r(S_t,A_t,S_{t+1})$$
      
      - 行動はエージェントの方策（$\pi$）に基づいて決定される
      - ある状態において、行動が確率的に決定される方策のことを確率的方策とよぶ
      - 確率的方策$\pi$のもとで、ある状態$s$における、ある行動$a$が選択される確率を$\pi(a|s)$と表す
      
      
---

   - **三目並べ**
      - $3×3$の$9$マスに、それぞれのプレイヤーが石を置き、自分の石が三つ一直線に並んだら勝利
      
      - エージェントが勝利する盤面に対して正の報酬、敗北する盤面に対して負の報酬を与える
      - 初期状態分布は以下の通り
      
      ```math
P_0(s)=\begin{cases}1 \,\,\,\,\,\, (s=s_1) \\ 0 \,\,\,\,\,\, (otherwise) \end{cases}
```
      
      
   - **時間ステップとエピソード**

      - **時間ステップ**・・・エージェントと環境の相互作用における基本的な時間の単位
      
      - **エピソード**・・・タスク開始から終了までの時間をまとめたもので、複数の時間ステップからなる
      
   - **良い方策とは**
   
      - **収益**・・・ある期間で得られた累積の報酬（期間の中の報酬の和）
      
      - 時間ステップ$t$で得られた報酬を$R_t$、区間の長さを$T$として、収益$G_t$を以下のように定義
      
      ```math
      G_t=\sum^{T-1}_{\tau=0}{R_{t+1+\tau}}
      ```

      - より長期的な区間で利益を定義する
      
      ```math
      G_t=\lim_{T\rightarrow \infty} \frac{1}{T}\sum^{T-1}_{\tau=0}{R_{t+1+\tau}}
      ```
      - **割引報酬和**・・・未来の不確実性を、報酬を割り引く形で表現する利益
      
      ```math
      G_t=\sum^{\infty}_{\tau=0}\gamma^{\tau}R_{t+1+\tau}=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+...
      ```
      - 割引率$\gamma (0 \le \gamma \le 1)$はどれだけ未来を割り引くかを表す定数
      
      - 収益は長期的視野で得られる報酬を評価する指標
      
      - 状態を条件として収益の期待値をとり、これを**状態価値**とよぶことにする
      
      - **状態価値**・・・ある状態から方策$\pi$に従って行動を決定していったときに得られる収益の期待値
      
      ```math
      V^{\pi}(s)=E^{\pi}[ G_t|S_t=s ]
      ```
      - 「方策$\pi$のもとでの期待値」・・・時間ステップ$t$における状態$s$からエージェントが方策$\pi$に基づいて行動を決定していった場合の期待値
      
   - $T=1$の有限区間収益の例を考える
   
      - 考えるべき収益は以下の通り
      
      ```math
G_t=R_{t+1}
```
      - 時間ステップ$t+1$において状態が$s'$である確率は以下の通り
      
      ```math
P(S_{t+1}=s',A_t=a|S_t=s)=P(S_{t+1}=s'|S_t=s,A_t=a) \pi(a|s)
```
      - 状態価値は、状態$S_t$を条件とした期待値をとることで、以下の通り
      
      $$\begin{eqnarray*} V^{\pi}(s)&=& E^{\pi}[G_t|S_t=s] \\ 
                                   &=& \sum_{s' \in S} \sum_{a \in A(s)} P(S_{t+1}=s',A_t=a|S_t=s) r(s,a,s') \\
                                   &=& \sum_{s' \in S} \sum_{a \in A(s)} P(S_{t+1}=s'|S_t=s,A_t=a) \pi(a|s) r(s,a,s') \end{eqnarray*} $$
                  
   - $T=2$の有限区間収益の例を考える
   
      - 考えるべき収益は以下の通り
      
      ```math
G_t=R_{t+1}+R_{t+2}
```
      - 期待値は以下の通り
      
      ```math
\begin{eqnarray*}
      V^{\pi}(s) &=& E[G_t|S_t=s]=E^\pi[R_{t+1}+R_{t+2}|S_t=s] \\
                 &=& \sum_{s''\in S}\sum_{a'\in A(s)}\sum_{s'\in S}\sum_{a\in A(s)} P(S_{t+2}=s'',A_{t+1}=a',S_{t+1}=s',A_t=a|S_t=s)\{r(s,a,s')+r(s',a',s'')\} \\
                 &=& \sum_{s''\in S}\sum_{a'\in A(s)}\sum_{s'\in S}\sum_{a\in A(s)} P(S_{t+2}=s''|S_{t+1}=s',A_{t+1}=a')\pi(a'|s')×P(S_{t+1}=s'|S_t=s,A_t=a)\pi(a|s)\{r(s,a,s')+r(s',a',s'')\}
      \end{eqnarray*}
```
   - $\pi$を固定して$s$を変化させる場合
   
      - 様々な状態に対して、ある固定された方策に基づいて行動を決定していったときに獲得される期待収益を評価
      - ある方策$\pi$のもとでの、その状態の良さを表す指標として使うことができる（**状態価値関数**）

   - $s$を固定して$\pi$を変化させる場合

      - 様々な方策に対して、ある状態から行動を始めて獲得されることが期待される収益を評価
      - ある状態$s$から始めた場合の、方策の良さを表す指標
   
$$
\forall s\in S,\,\,\,\,\, V^\pi(s) \ge V^{{\pi}^{'}}(s)\\ 
\exists s\in S,\,\,\,\,\, V^\pi(s) >  V^{{\pi}^{'}}(s)
$$  

   - **最適方策**
   
      - **最適状態価値観数**・・・$V^*(s)$
      
      ```math
\forall s\in S,\,\,\,\,\, V^*(s)=V^{{\pi}^{*}}(s)=\max_\pi V^\pi (s)
```
      - **行動価値観数**・・・$Q^\pi$
      
      ```math
Q^\pi(s,a)=E^\pi[G_t|S_t=s,A_t=a]
```
      - $A_t,S_{t+1},A_{t+1}$について、その出現確率によって期待値をとる
      - 一つ一つの状態や行動が連なった軌道
      
---
      
   - $T=1$の有限区間の収益
   
      ```math
X_1=\{\Xi=(s,a,s')|s\in S,a\in A,s'\in S\}
```
      - $\Xi$を**軌道**と呼ぶ
      
      - 初期状態を固定した軌道集合
      
      ```math
X_1|_s=\{\Xi=(s,a,s')|a\in A,s'\in S\}
```
      - 初期状態と行動を固定した軌道の集合
      
      ```math
X_1|_s(s,a)=\{\Xi=(s,a,s')|s'\in S\}
```
      - 収益を軌道の関数とみなす
      
      ```math
G_t=G_t(\Xi)
```
      ```math
V^\pi(s)=\sum_{\Xi\in X_1|_s}P(\Xi)G_t(\Xi)\\
      Q^\pi(s,a)=\sum_{\Xi\in X_1|_{(s,a)}}P(\Xi)G_t(\Xi)
```
      - $T=2$の場合
      
      ```math
X_2|_s=\{\Xi=(s,a,s',a',s'')|a\in A,s'\in S,a'\in A,s''\in S\}
```
      ```math
X_2|_{(s,a)}=\{\Xi=(s,a,s',a',s'')|s'\in S,a'\in A,s''\in S\}
```
   - 図1.2.5の環境において、状態価値を求めるときに考慮すべき軌道の集合は以下の通り
      
      ```math
X_1|_{s_1}=\{(s_1,a_1,s_3),(s_1,a_2,s_2)\}
```
      ```math
X_2|_{s_1}=\{(s_1,a_1,s_3,a_1,s_4),(s_1,a_1,s_3,a_2,s_1),(s_1,a_2,s_2,a_1,s_1),(s_1,a_2,s_2,a_2,s_4)\}
```
      - 行動価値を求めるときに考慮すべき軌道の集合は以下の通り
      
      ```math
X_1|_{(s_1,a_1)}=\{(s_1,a_1,s_3)\}
```
      ```math
X_2|_{(s_1,a_1)}=\{(s_1,a_1,s_3,a_1,s_4),(s_1,a_1,s_3,a_2,s_1)\}
```
      
      
      
   - 良い方策の求め方
   
      - **greedy方策**
      
      ```math
\pi(a|s)=\begin{cases}1 \,\,\,\,\,\, (a=\arg \max_aQ(s,a)) \\ 0 \,\,\,\,\,\, (otherwise) \end{cases}
```
      - 最適行動価値関数を推定していく
      - 時にはその時点で最良とは限らない行動を確率的に選択する必要がある
      
   - **$\epsilon$-greedy方策**
      
      ```math
\pi(a|s)=\begin{cases}1-\epsilon+\frac{\epsilon}{|A(s)|} \,\,\,\,\,\, (a= \arg \max_{a} Q(s,a)) \\\frac{\epsilon}{|A(s)|}  \,\,\,\,\,\, (otherwise) \end{cases}
```
   - **ボルツマン（ソフトマックス）方策**・・・選択確率がギブス分布に従う
      
      ```math
\pi(a|s)=\frac{\exp(Q(s,a)/T)}{\sum_{b\in A}\exp(Q(s,b)/T)}
```
      - $T$は温度パラメータ