马尔可夫决策过程

1. 马尔可夫决策过程

马尔可夫决策过程不过是引入"决策"的马氏过程.
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=jX0,a0,X1,a1,...,Xn=i,an=1}=P{Xnn+1=jXn=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), aA,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)=1i,ai
所以对于某个策略 β ⃗ \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=jXn=i}=aPij(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=nlimPβ {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} πia0, i,aiaπia=1aπja=iaπiaPij(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} Pia0, i,aiaPia=1Pja=iaPiaPij(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=nlimPβ {Xn+1=j,an+1=a}=nlimi,aPβ {Xn+1=j,an+1=aXn=i,an=a}Pβ {Xn=i,an=a}=nlimi,aPβ {Xn+1=j,an+1=aXn=i,an=a}Pia=nlimi,aPβ {an+1=aXn+1=j,Xn=i,an=a}Pβ {Xn+1=jXn=i,an=a}Pia=nlimi,aPβ {an+1=aXn+1=j}Pβ {Xn+1=jXn=i,an=a}Pia=i,aβj(a)Pij(a)Pia=iaPiaPij(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} πia0, i,aiaπia=1aπja=iaπiaPij(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} Pia0, i,aiaPia=1Pja=iaPiaPij(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) aPja=aiaPiaPij(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=aP{状态为i(状态为i)选择行动a}Pia=aPiaPia
不难看出, 只要让策略 β ⃗ \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β =nlim ni=1nR(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β =iaπ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.    iaπiaR(i,a)πia0iaπia=1aπja=iaπiaPij(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
即可.

你可能感兴趣的:(随机过程,机器学习,算法,概率论)