馬可夫決策過程

在數學中，**馬可夫決策過程**（英語：Markov decision process，**MDP**）是離散時間隨機控製過程。 它提供了一個數學框架，用於在結果部分隨機且部分受決策者控制的情況下對決策建模。 MDP 對於研究通過動態規劃解決的最佳化問題很有用。 MDP 至少早在 1950 年代就已為人所知； 一個對馬可夫決策過程的核心研究是羅納德・霍華德於 1960 年出版的《動態規劃和馬可夫過程》。 它們被用於許多領域，包括機器人學，自動化，經濟學和製造業。 MDP 的名稱來自俄羅斯數學家安德雷・馬可夫，因為它們是馬可夫鏈的推廣。

在每個時間步驟中，隨機過程都處於某種狀態 $s$ ，決策者可以選擇在狀態 $s$ 下可用的動作 $a$ 。 該隨機過程在下一時間步驟會隨機進入新狀態 $s'$ ，並給予決策者相應的回饋 $R_{a}(s,s')$ 。 

隨機過程進入新狀態 $s'$ 的機率受所選操作影響。 具體來說，它是由狀態轉換函數 $P_{a}(s,s')$ 給出的。 因此，下一個狀態 $s'$ 取決於當前狀態 $s$ 和決策者的動作 $a$ 。 但是給定 $s$ 和 $a$ ，它條件獨立於所有先前的狀態和動作； 換句話說，MDP 的狀態轉換滿足馬可夫性質。

馬可夫決策過程是馬可夫鏈的推廣，不同之處在於添加了行動（允許選擇）和獎勵（給予動機）。反過來說，如果每個狀態只存在一個操作和所有的獎勵都是一樣的，一個馬可夫決策過程可以歸結為一個馬可夫鏈。

## 定義

馬可夫決策過程是一個 4 元組 $(S,A,P_{a},R_{a})$ ，其中:

 * $S$ 是狀態空間的集合，
* $A$ 是動作的集合，也被稱為動作空間（比如說 $A_{s}$ 是狀態 $s$ 中可用的動作集合），
* $P_{a}(s,s')=\Pr(s_{t+1}=s'\mid s_{t}=s,a_{t}=a)$ 是 $t$ 時刻 $s$ 狀態下的動作 $a$ 導致 $t+1$ 時刻進入狀態 $s'$ 的機率，
* $R_{a}(s,s')$ 狀態 $s$ 經過動作 $a$ 轉換到狀態 $s'$ 後收到的即時獎勵（或預期的即時獎勵）。

狀態和行動空間可能是有限的，也可能是無限的。一些具有可數無限狀態和行動空間的過程可以簡化為具有有限狀態和行動空間的過程。

策略函數 $\pi $ 是從狀態空間（ $S$ ）到動作空間（ $A$ ）的（潛在機率）映射。

### 優化目標

馬可夫決策過程的目標是為決策者找到一個好的「策略」：一個函數 $\pi $ ，它指定決策者在狀態 $s$ 時將選擇的動作 $\pi (s)$ 。一旦以這種方式將馬可夫決策過程與策略組合在一起，就可以確定在每個狀態的動作，並且生成的組合行為類似於馬可夫鏈（因為在狀態 $s$ 的動作都由 $\pi (s)$ 決定， $\Pr(s_{t+1}=s'\mid s_{t}=s,a_{t}=a)$ 簡化為 $\Pr(s_{t+1}=s'\mid s_{t}=s)$ ，成為一個馬可夫轉移矩陣）。

目標是選擇一個策略 $\pi $ ，使隨機獎勵的累積函數最大化，通常是在潛在的無限範圍內的預期貼現總和:

　
: $E\left[\sum _{t=0}^{\infty }{\gamma ^{t}R_{a_{t}}(s_{t},s_{t+1})}\right]$ （我們選擇 $a_{t}=\pi (s_{t})$ 也就是策略給出的動作）。並且期望值為 $s_{t+1}\sim P_{a_{t}}(s_{t},s_{t+1})$ 。

其中 $\ \gamma \ $ 是折現因子，滿足 $0\leq \ \gamma \ \leq \ 1$ ，通常接近於 1（例如，對於貼現率 r，存在 $\gamma =1/(1+r)$ ）。較低的折扣率促使決策者傾向於儘早採取行動，而不是無限期地推遲行動。

使上述函數最大化的策略稱為_最優策略_，通常用 $\pi ^{*}$ 表示。一個特定的 MDP 可能有多個不同的最佳策略。由於馬可夫決策過程的性質，可以證明最優策略是當前狀態的函數，就像上面所敘述的那樣。

### 模擬模型

在許多情況下，很難明確地表示轉移機率分布 $P_{a}(s,s')$ 。在這種情況下，可以使用模擬器通過提供來自轉換發行版的示例來隱式地對 MDP 建模。隱式 MDP 模型的一種常見形式是情景環境模擬器，它可以從初始狀態啟動，生成後續狀態，並在每次接收到操作輸入時給予獎勵。通過這種方式，我們可以模擬出目標經過的狀態、採取的行動以及獲得的獎勵（統稱「軌跡」）。

另一種形式的模擬器是生成模型，即能夠生成下一個狀態的樣本並提供所有狀態和行動獎勵的單步驟模擬器。在用偽代碼表示的算法中， $G$ 通常用來表示生成模型。例如，表達式 $s',r\gets G(s,a)$ 可以表示從生成模型中取樣的動作，其中 $s$ 和 $a$ 是當前狀態和動作， $s'$ 和 $r$ 是下一步的狀態和獎勵。與情景模擬器相比，生成模型的優勢在於它可以從任何狀態獲取數據，而不僅僅是在軌跡中遇到的狀態。

這些模型類形成了訊息內容的層次結構：顯式模型通過從分布中採樣簡單地生成生成模型，並且生成模型的重複應用生成軌跡模擬器。在相反的方向上，只能通過迴歸分析研究近似模型。可用於特定 MDP 的模型類型在確定哪種解決方案算法合適方面起著重要作用。例如，下一節中描述的動態規劃算法需要一個顯式模型，而蒙蒙地卡羅樹搜尋需要一個生成模型（或可以在任何狀態下複製的情景模擬器），而大多數強化學習算法只需要一個軌跡模擬器 。

## 算法

可以通過各種方法（例如動態規劃）找到具有有限狀態和動作空間的 MDP 的解決方案。本節中的算法適用於具有有限狀態和動作空間並明確給出轉移機率和獎勵函數的 MDP，但基本概念可以擴展到處理其他問題類別，例如使用函數趨近。

為有限狀態和動作 MDP 計算最優策略的標準算法系列需要存儲兩個按狀態索引的數列：第一個數列是 $V$ ，用來儲存實數，以及策略 $\pi $ ，用來存動作。在算法結束時， $\pi $ 將存儲每一個狀態時的解決方案，而 $V(s)$ 將存儲從狀態 $s$ 遵循該解決方案獲得的獎勵的折扣總和（平均）。

　
: $V(s):=\sum _{s'}P_{\pi (s)}(s,s')\left(R_{\pi (s)}(s,s')+\gamma V(s')\right)$

　
: $\pi (s):={\underset {a}{\operatorname {arg\,min} }}\left\{\sum _{s'}P(s'\mid s,a)\left(R(s'\mid s,a)+\gamma V(s')\right)\right\}$

它們的順序取決於你所採用的算法的變體，可以一次或逐個狀態地對所有狀態執行它們，並且對某些狀態比其他狀態更頻繁。 只要沒有狀態被永久排除在任何一個步驟之外，算法最終將得出正確的解決方案。

### 著名的變體

#### 數值迭代

數值迭代也稱為反向歸納，不使用 $\pi $ 函數。相反， $\pi (s)$ 的值在需要時在 $V(s)$ 內計算。 將 $\pi (s)$ 的計算代入 $V(s)$ 的計算得出組合步驟：

　
: $V_{i+1}(s):=\max _{a}\left\{\sum _{s'}P_{a}(s'|s)\left(R_{a}(s,s')+\gamma V_{i}(s')\right)\right\},$

其中 $i$ 是迭代數，值迭代從 $i=0$ 和 $V_{0}$ 開始，作為價值函數的猜測。

## 參見

* 馬可夫鏈
* 半馬可夫過程
* 隨機漫步
* 布朗運動
* 馬可夫模型
* 隱馬可夫模型
* 學習自動機
* 部分可觀察馬可夫決策過程

## 參考文獻

## 外部連結