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=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∗
即可.