马尔可夫决策过程不过是引入"决策"的马氏过程.
P i j ( a ) = P { X n + 1 = j ∣ X 0 , a 0 , X 1 , a 1 , . . . , X n = i , a n = 1 } = P { X n n + 1 = j ∣ X n = i , a n = a } \begin{split} P_{ij}(a) &= P\{X_{n+1} = j|X_0, a_0, X_1, a_1, ..., X_n = i, a_n = 1\} \\ &=P\{X_n{n+1} = j|X_n = i, a_n = a\} \end{split} Pij(a)=P{Xn+1=j∣X0,a0,X1,a1,...,Xn=i,an=1}=P{Xnn+1=j∣Xn=i,an=a}
状态转移家族很取决于 X n X_n Xn和 a n a_n an.
引入"随机化"的策略(policy)---------- β ⃗ \vec{\beta} β, 就是所谓的"因时制宜".
β ⃗ = { β i ( a ) , a ∈ A , i = 1 , 2 , . . . M } \vec{\beta} = \{\beta_i(a),\ a\in A, i = 1,2,...M \} β={βi(a), a∈A,i=1,2,...M}
A A A表示行动集, "智能体"从行动集中选取其中一个元素/行动.
对于某个特定的 β i ( a ) \beta_i(a) βi(a), 其意义为: 在状态 i i i下, 选取行动 a a a的概率.
易知
{ 0 ≤ β i ( a ) ≤ 1 ∀ i , a ∑ a β i ( a ) = 1 ∀ i \begin{cases} 0 \leq\beta_i(a) \leq 1 \ \ \ \ \ &\forall i,a \\ \sum \limits_a \beta_i(a) = 1 &\forall i \end{cases} ⎩ ⎨ ⎧0≤βi(a)≤1 a∑βi(a)=1∀i,a∀i
所以对于某个策略 β ⃗ \vec{\beta} β下的MDP, 相应的状态转移概率可以表示如下:
P i j ( β ⃗ ) = P β ⃗ { X n + 1 = j ∣ X n = i } = ∑ a P i j ( a ) β i ( a ) \begin{split} P_{ij}(\vec{\beta}) &= P_{\vec{\beta}}\{X_{n+1} = j|X_n = i\} \\ &=\sum \limits_a P_{ij}(a)\beta_i(a) \end{split} Pij(β)=Pβ{Xn+1=j∣Xn=i}=a∑Pij(a)βi(a)
从这一状态转移概率的表达式, 可以很清楚地看到MDP和MP的不同:
马氏链的状态转移概率是一个单纯的数, 而MDP的状态转移概率不仅有一个"策略"的前提, 而且是一个加权和, 一个不同行动下, i到j的状态转移概率的加权和, 权重就是( 给定策略 β ⃗ \vec{\beta} β下 )选取行动 a a a的概率 β i ( a ) \beta_i(a) βi(a).
假设对于任意的策略 β ⃗ \vec{\beta} β, 所导致的马氏链 { X n , n = 0 , 1 , . . . } \{X_n, n=0,1,...\} {Xn,n=0,1,...}都是各态历经的(ergodic).
下面我们来证明MDP中最重要的一个命题.
对于任意策略 β ⃗ \vec{\beta} β, 记 π i a \pi_{ia} πia为, “给定策略 β ⃗ \vec{\beta} β下, 稳态情形时 ( n → ∞ ) (n\rightarrow \infin) (n→∞)MDP既处于状态 i i i又采取了行动 a a a的概率”, 即
π i a = lim n → ∞ P β ⃗ { X n = i , a n = a } \pi_{ia} = \lim _{n\rightarrow \infin} P_{\vec{\beta}}\{X_n = i, a_n = a\} πia=n→∞limPβ{Xn=i,an=a}
易知 π ⃗ = ( π i a ) \vec{\pi} = (\pi_{ia}) π=(πia)是一个类似表示概率分布的东西(分布向量或者分布矩阵), 而且对于 π ⃗ \vec{\pi} π, 必须满足:
{ π i a ≥ 0 , ∀ i , a ∑ i ∑ a π i a = 1 ∑ a π j a = ∑ i ∑ a ′ π i a ′ P i j ( a ′ ) ∀ j \begin{cases} \pi_{ia} \geq 0, \ \forall i, a \\ \sum \limits_i \sum \limits_a \pi_{ia} = 1 \\ \sum \limits_a \pi_{ja} = \sum \limits_i \sum \limits_{a'} \pi_{ia'}P_{ij}(a') \ \forall j \end{cases} ⎩ ⎨ ⎧πia≥0, ∀i,ai∑a∑πia=1a∑πja=i∑a′∑πia′Pij(a′) ∀j
三个条件对应的方程, 其物理含义都是显然的, 其中, 第三个条件方程的左边代表稳态时MDP处于状态 j j j的概率, 而等式右边则是状态 j j j对应的"切面包定理".
因此, 我们我们可以说, 在MDP中, 对于任意一个策略 β ⃗ \vec{\beta} β, 都会存在某个满足上述三个条件的概率分布向量 π ⃗ \vec{\pi} π.
但是, 反过来也是成立的:
对于任意一个 ( 二维 ) 概率分布向量 π ⃗ , 如果该向量满足上述三个条件 , 则必然存在 一个策略为 β ⃗ 的马尔科夫决策过程 , 使得稳态时 , 其既处于状态 i 又采取了行动 a 的 概率恰好等于 π i a \begin{split} &对于任意一个(二维)概率分布向量\vec{\pi}, 如果该向量满足上述三个条件, 则必然存在\\ &一个策略为\vec{\beta}的马尔科夫决策过程, 使得稳态时, 其既处于状态i又采取了行动a的\\ &概率恰好等于\pi_{ia} \end{split} 对于任意一个(二维)概率分布向量π,如果该向量满足上述三个条件,则必然存在一个策略为β的马尔科夫决策过程,使得稳态时,其既处于状态i又采取了行动a的概率恰好等于πia
证明这一反命题的思路, 是要构造那个策略 β ⃗ \vec{\beta} β, 这个策略肯定不是凭空产生的, 而是要根据上述三个条件, 和从马氏链的性本身入手.
我们先形式地写出一个MDP, 和一个策略 β ⃗ \vec{\beta} β.
我们将该MDP使用策略 β ⃗ \vec{\beta} β的稳态情形时, 既处于状态 i i i又采取了行动 a a a的概率记为 P i a P_{ia} Pia.
如果策略 β ⃗ \vec{\beta} β真的存在, P i a = π i a P_{ia} = \pi_{ia} Pia=πia就会成立.
我们先看看 P i a P_{ia} Pia满足什么样的性质.
易知
{ P i a ≥ 0 , ∀ i , a ∑ i ∑ a P i a = 1 P j a = ∑ i ∑ a ′ P i a ′ P i j ( a ′ ) β j ( a ) \begin{cases} P_{ia} \geq 0 , \ \forall i, a \\ \sum \limits_i \sum \limits_a P_{ia} = 1 \\ P_{ja} = \sum \limits_i \sum \limits_{a'} P_{ia'}P_{ij}(a')\beta_j(a) \end{cases} ⎩ ⎨ ⎧Pia≥0, ∀i,ai∑a∑Pia=1Pja=i∑a′∑Pia′Pij(a′)βj(a)
第三个式子的推导过程如下
P j a = lim n → ∞ P β ⃗ { X n + 1 = j , a n + 1 = a } = lim n → ∞ ∑ i , a ′ P β ⃗ { X n + 1 = j , a n + 1 = a ∣ X n = i , a n = a ′ } P β ⃗ { X n = i , a n = a ′ } = lim n → ∞ ∑ i , a ′ P β ⃗ { X n + 1 = j , a n + 1 = a ∣ X n = i , a n = a ′ } P i a ′ = lim n → ∞ ∑ i , a ′ P β ⃗ { a n + 1 = a ∣ X n + 1 = j , X n = i , a n = a ′ } P β ⃗ { X n + 1 = j ∣ X n = i , a n = a ′ } P i a ′ = lim n → ∞ ∑ i , a ′ P β ⃗ { a n + 1 = a ∣ X n + 1 = j } P β ⃗ { X n + 1 = j ∣ X n = i , a n = a ′ } P i a ′ = ∑ i , a ′ β j ( a ) P i j ( a ′ ) P i a ′ = ∑ i ∑ a ′ P i a ′ P i j ( a ′ ) β j ( a ) \begin{split} P_{ja} &= \lim _{n\rightarrow \infin} P_{\vec{\beta}}\{X_{n+1} = j, a_{n+1} = a\} \\ &=\lim _{n\rightarrow \infin} \sum \limits_{i,a'}P_{\vec{\beta}}\{X_{n+1} = j, a_{n+1} = a|X_n = i, a_n = a'\}P_{\vec{\beta}}\{X_{n} = i, a_{n} = a'\} \\ &=\lim _{n\rightarrow \infin} \sum \limits_{i,a'}P_{\vec{\beta}}\{X_{n+1} = j, a_{n+1} = a|X_n = i, a_n = a'\}P_{ia'} \\ &=\lim _{n\rightarrow \infin} \sum \limits_{i,a'}P_{\vec{\beta}}\{ a_{n+1} = a|X_{n+1} = j,X_n = i, a_n = a'\}P_{\vec{\beta}}\{X_{n+1} = j|X_n = i, a_n = a'\}P_{ia'} \\ &=\lim _{n\rightarrow \infin} \sum \limits_{i,a'}P_{\vec{\beta}}\{ a_{n+1} = a|X_{n+1} = j\}P_{\vec{\beta}}\{X_{n+1} = j|X_n = i, a_n = a'\}P_{ia'} \\ &= \sum \limits_{i,a'}\beta_j(a) P_{ij}(a') P_{ia'} \\ &=\sum \limits_i \sum \limits_{a'} P_{ia'}P_{ij}(a')\beta_j(a) \end{split} Pja=n→∞limPβ{Xn+1=j,an+1=a}=n→∞limi,a′∑Pβ{Xn+1=j,an+1=a∣Xn=i,an=a′}Pβ{Xn=i,an=a′}=n→∞limi,a′∑Pβ{Xn+1=j,an+1=a∣Xn=i,an=a′}Pia′=n→∞limi,a′∑Pβ{an+1=a∣Xn+1=j,Xn=i,an=a′}Pβ{Xn+1=j∣Xn=i,an=a′}Pia′=n→∞limi,a′∑Pβ{an+1=a∣Xn+1=j}Pβ{Xn+1=j∣Xn=i,an=a′}Pia′=i,a′∑βj(a)Pij(a′)Pia′=i∑a′∑Pia′Pij(a′)βj(a)
对比上下的三条件方程组:
{ π i a ≥ 0 , ∀ i , a ∑ i ∑ a π i a = 1 ∑ a π j a = ∑ i ∑ a ′ π i a ′ P i j ( a ′ ) ∀ j \begin{cases} \pi_{ia} \geq 0, \ \forall i, a \\ \sum \limits_i \sum \limits_a \pi_{ia} = 1 \\ \sum \limits_a \pi_{ja} = \sum \limits_i \sum \limits_{a'} \pi_{ia'}P_{ij}(a') \ \forall j \end{cases} ⎩ ⎨ ⎧πia≥0, ∀i,ai∑a∑πia=1a∑πja=i∑a′∑πia′Pij(a′) ∀j
和
{ P i a ≥ 0 , ∀ i , a ∑ i ∑ a P i a = 1 P j a = ∑ i ∑ a ′ P i a ′ P i j ( a ′ ) β j ( a ) \begin{cases} P_{ia} \geq 0 , \ \forall i, a \\ \sum \limits_i \sum \limits_a P_{ia} = 1 \\ P_{ja} = \sum \limits_i \sum \limits_{a'} P_{ia'}P_{ij}(a')\beta_j(a) \end{cases} ⎩ ⎨ ⎧Pia≥0, ∀i,ai∑a∑Pia=1Pja=i∑a′∑Pia′Pij(a′)βj(a)
易知, 求出策略 β ⃗ \vec{\beta} β要在最后一个方程做文章.
将下面的方程组中的最后一个方程改为:
∑ a P j a = ∑ a ∑ i ∑ a ′ P i a ′ P i j ( a ′ ) β j ( a ) \sum \limits_aP_{ja} = \sum \limits_a \sum \limits_i \sum \limits_{a'} P_{ia'}P_{ij}(a')\beta_j(a) a∑Pja=a∑i∑a′∑Pia′Pij(a′)βj(a)
如果 P i a = π i a P_{ia} = \pi_{ia} Pia=πia成立, 则应该有
∑ a β j ( a ) = 1 \sum \limits_a \beta_j(a) = 1 a∑βj(a)=1
由 β i ( a ) = P { β ⃗ 选择 a ∣ 状态为 i } \beta_i(a) = P\{\vec{\beta} 选择 a|状态为i\} βi(a)=P{β选择a∣状态为i}的物理意义, 且根据条件概率
P { β ⃗ 选择 a ∣ 状态为 i } = P { β ⃗ 选择 a 且 状态为 i } P { 状态为 i } = P i a P { 状态为 i } = P i a ∑ a P { 状态为 i ∣ ( 状态为 i 时 ) 选择行动 a } = P i a ∑ a P i a \begin{split} P\{\vec{\beta} 选择 a|状态为i\} &= \frac{P\{\vec{\beta} 选择 a \ 且 \ 状态为i\}}{P\{状态为i\}} \\ &=\frac{P_{ia}}{P\{状态为i\}} \\ &=\frac{P_{ia}}{\sum \limits_{a} P\{状态为i|(状态为i时)选择行动a\}} \\ &=\frac{P_{ia}}{\sum \limits_{a}P_{ia}} \end{split} P{β选择a∣状态为i}=P{状态为i}P{β选择a 且 状态为i}=P{状态为i}Pia=a∑P{状态为i∣(状态为i时)选择行动a}Pia=a∑PiaPia
不难看出, 只要让策略 β ⃗ \vec{\beta} β满足
β i ( a ) = π i a ∑ a π i a \beta_i(a) = \frac{\pi_{ia}}{\sum \limits_{a}\pi_{ia}} βi(a)=a∑πiaπia
即可. 这就证明了策略的存在性. 则就证明了命题.
这个命题的重要性, 在于去确定某种条件下最优的策略. 假定我们有一个MDP, 而且我们知道, 在处于状态 i i i时, 采取行动 a a a能获得回报 R ( i , a ) R(i, a) R(i,a), 则 R ( X n , a n ) R(X_n, a_n) R(Xn,an)就是我们在 n n n时刻所得到的收益.
则统计意义下, 给定策略 β ⃗ \vec{\beta} β, MDP所进行的每一步的平均收益就是
E β ⃗ = lim n → ∞ [ ∑ i = 1 n R ( X i , a i ) n ] E_{\vec{\beta}} = \lim_{n\rightarrow \infin} \left[\frac{\sum \limits_{i=1}^{n}R(X_i ,a_i)}{n}\right] Eβ=n→∞lim ni=1∑nR(Xi,ai)
假设 π i a \pi_{ia} πia表示"给定策略 β ⃗ \vec{\beta} β下, 稳态情形时 ( n → ∞ ) (n\rightarrow \infin) (n→∞)MDP既处于状态 i i i又采取了行动 a a a的概率", 则概率意义下, 稳态时MDP的平均收益为:
E β ⃗ = ∑ i ∑ a π i a R ( i , a ) E_{\vec{\beta}} = \sum \limits_i \sum \limits_{a} \pi_{ia}R(i, a) Eβ=i∑a∑πiaR(i,a)
我们上面的命题, 说明了策略和分布的等价性. 因此, 为了最大化每一步的平均收益而去选择一个最优策略 β ⃗ ∗ \vec{\beta}^* β∗, 实际上等价于去寻找一个所谓的最优分布 π ⃗ ∗ = ( π i a ) ∗ \vec{\pi}^* = (\pi_{ia})^* π∗=(πia)∗.
该过程可以用一个优化问题表述:
max π ⃗ ∑ i ∑ a π i a R ( i , a ) s . t . π i a ≥ 0 ∑ i ∑ a π i a = 1 ∑ a π j a = ∑ i ∑ a ′ π i a ′ P i j ( a ′ ) ∀ j \begin{split} \max \limits_{\vec{\pi}} &\sum \limits_i \sum \limits_{a} \pi_{ia}R(i, a) \\ s. t.\ \ \ \ &\pi_{ia} \geq 0 \\ & \sum \limits_i \sum \limits_a \pi_{ia} = 1 \\ & \sum \limits_a \pi_{ja} = \sum \limits_i \sum \limits_{a'} \pi_{ia'}P_{ij}(a') \ \forall j \end{split} πmaxs.t. i∑a∑πiaR(i,a)πia≥0i∑a∑πia=1a∑πja=i∑a′∑πia′Pij(a′) ∀j
这是一个线性规划问题!
如果找到 π ⃗ ∗ = ( π i a ) ∗ \vec{\pi}^* = (\pi_{ia})^* π∗=(πia)∗, 则让
β i ( a ) ∗ = π i a ∗ ∑ a π i a ∗ \beta_i(a)^* = \frac{\pi_{ia}^*}{\sum \limits_{a}\pi_{ia}^*} βi(a)∗=a∑πia∗πia∗
即可.