马尔科夫性某一状态信息包含了所有相关的历史,只要当前状态可知,所有的历史信息都不再需要,当前状态就可以决定未来,则认为该状态具有马尔科夫性
P ( S t + 1 ∣ S t ) = p ( S t + 1 ∣ S 1 , S 2 , ⋯ , S t ) P(S_{t+1}|S_t) = p(S_{t+1}|S_1, S_2, \cdots , S_t) P(St+1∣St)=p(St+1∣S1,S2,⋯,St)
马尔科夫过程又叫做马尔科夫链(Markov Chain)
,它是一个无记忆的随机过程,可以用一个元组
表示,其中
S
是有限数量的状态集 S = s 1 , s 2 , s 3 , ⋯ , s t S ={s_1, s_2, s_3, \cdots, s_t} S=s1,s2,s3,⋯,stP
是状态转移概率矩阵 p ( S t + 1 = s ′ ∣ s t = s ) , 其 中 s ′ 表 示 下 一 时 刻 的 状 态 , s 表 示 当 前 状 态 p(S_{t+1} = s'|s_t=s) , 其中 s' 表示下一时刻的状态,s 表示当前状态 p(St+1=s′∣st=s),其中s′表示下一时刻的状态,s表示当前状态马尔科夫奖励过程是在马尔科夫过程基础上增加了奖励函数 R R R 和衰减系数 γ \gamma γ, 用 < S , R , P , γ > <S,R,P,γ>表示
R s = E [ R t + 1 ∣ S t = s ] R_s = E[R_{t+1}|S_t=s] Rs=E[Rt+1∣St=s]
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ + γ T − t − 1 R T G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots + \gamma^{T-t-1}R_T Gt=Rt+1+γRt+2+γ2Rt+3+⋯+γT−t−1RT
v ( s ) = E [ G t ∣ S t = s ] v(s) = E[G_t|S_t = s] v(s)=E[Gt∣St=s]
Bellman Equation 贝尔曼方程
v ( s ) = E [ G t ∣ S t = s ] v(s) = E[G_t|S_t = s] v(s)=E[Gt∣St=s]
= E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ ∣ S t = s ] = E[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots|S_t = s] =E[Rt+1+γRt+2+γ2Rt+3+⋯∣St=s]
= E [ R t + 1 + γ ( R t + 2 + R t + 3 + ⋯ ) ∣ S t = s ] = E[R_{t+1} + \gamma(R_{t+2} + R_{t+3} + \cdots)|S_t=s] =E[Rt+1+γ(Rt+2+Rt+3+⋯)∣St=s]
= E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] =E[R_{t+1} + \gamma v(S_{t+1})|S_t = s] =E[Rt+1+γv(St+1)∣St=s]
= E [ R t + 1 ∣ S t = s ] ⏟ 当 前 的 奖 励 + γ E [ v ( S t + 1 ) ∣ S t = s ] ⏟ 下 一 时 刻 状 态 的 价 值 期 望 =\underbrace{E[R_{t+1}|S_t=s]}_{当前的奖励} + \underbrace{\gamma E[v(S_{t+1})|S_t = s]}_{下一时刻状态的价值期望} =当前的奖励 E[Rt+1∣St=s]+下一时刻状态的价值期望 γE[v(St+1)∣St=s]
使用贝尔曼方程状态价值 V V V可以表示为:
V ( s ) = R ( s ) ⏟ I m m e d i a t e r e w a r d + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V ( s ′ ) ⏟ D i s c o u n t e d s u m o f f u t u r e r e w a r d V(s) = \underbrace{R(s)}_{Immediate \; reward} + \underbrace{\gamma \sum_{s' \in S}P(s'|s)V(s')}_{Discounted \; sum \; of \; future \; reward} V(s)=Immediatereward R(s)+Discountedsumoffuturereward γs′∈S∑P(s′∣s)V(s′)
马尔科夫决策过程是在马尔科夫奖励过程的基础上加了 Decision
过程,相当于多了一个动作集合,可以用 < S , A , P , R , γ > <S,A,P,R,γ>
A A A 表示有限的行为集合
S S S表示有限的状态集合
P a P^a Pa is dynamics / transition model for each action
R R R 是奖励函数 R ( s t = s , a t = a ) = E [ R t ∣ s t = s , a t = a ] R(s_t=s, a_t = a) = E[R_t|s_t=s, a_t=a] R(st=s,at=a)=E[Rt∣st=s,at=a]
策略 (Policy)
s
采取可能的行为 a
的概率π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s) = P(A_t=a|S_t=s) π(a∣s)=P(At=a∣St=s)
状 态 转 移 概 率 : P π ( s ′ ∣ s ) = ∑ a ∈ A π ( a ∣ s ) P ( s ′ ∣ s , a ) 奖 励 函 数 : R π ( s ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) 状态转移概率:\quad P^\pi(s'|s) = \sum_{a \in A}\pi(a|s)P(s'|s, a) \\ 奖励函数:\quad R^\pi(s) = \sum_{a\in A}\pi(a|s)R(s,a) 状态转移概率:Pπ(s′∣s)=a∈A∑π(a∣s)P(s′∣s,a)奖励函数:Rπ(s)=a∈A∑π(a∣s)R(s,a)
状态转移概率可以描述为:在执行策略 π \pi π 时,状态从 s 转移至 s’ 的概率等于执行该状态下所有行为的概率与对应行为能使状态从 s 转移至 s’ 的概率的乘积的和。参考下图
奖励函数可以描述为:在执行策略 π \pi π 时获得的奖励等于执行该状态下所有行为的概率与对应行为产生的即时奖励的乘积的和。
我们引入策略,也可以理解为行动指南,更加规范的描述个体的行为,既然有了行动指南,我们要判断行动指南的价值,我们需要再引入基于策略的价值函数。
基于策略的状态价值函数(state value function)
v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s) = E_{\pi}[G_t|S_t = s] vπ(s)=Eπ[Gt∣St=s]
其中 G t G_t Gt 可以参照马科夫奖励过程。我们有了价值衡量标准,如果状态 s 是一个好的状态,如何选择动作到达这个状态,这时就需要判断动作的好坏,衡量行为价值。
基于策略的行为价值函数(action value function)
q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s, a) = E_{\pi}[G_t|S_t=s, A_t=a] qπ(s,a)=Eπ[Gt∣St=s,At=a]
q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ V π ( s ′ ) q_{\pi}(s,a) = R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s, a)} \cdot V_{\pi}(s') qπ(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)⋅Vπ(s′)
在某一个状态下采取某一个行为的价值,可以分为两部分:其一是离开这个状态的价值,其二是所有进入新的状态的价值于其转移概率乘积的和。参考下图右理解
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ⋅ q π ( s , a ) v_{\pi}(s) = \sum_{a \in A}\pi(a|s) \cdot q_{\pi}(s,a) vπ(s)=a∈A∑π(a∣s)⋅qπ(s,a)
我们知道策略就是用来描述各个不同状态下执行各个不同行为的概率,而状态价值是遵循当前策略时所获得的收获的期望,即状态 s 的价值体现为在该状态下遵循某一策略而采取所有可能行为的价值按行为发生概率的乘积求和。参照下图左理解
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ V π ( s ′ ) ) v_{\pi}(s) = \sum_{a \in A}\pi(a|s)\left(R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s, a)} \cdot V_{\pi}(s')\right) vπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)⋅Vπ(s′))
q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) ⋅ q π ( s ′ , a ′ ) q_{\pi}(s,a) = R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s, a)} \cdot \sum_{a' \in A}\pi(a'|s') \cdot q_{\pi}(s',a') qπ(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)⋅a′∈A∑π(a′∣s′)⋅qπ(s′,a′)
实例
假设 γ = 1 \gamma = 1 γ=1上图数字值为对于状态价值v(s),根据公式价值函数需要下一个状态的价值,终点的状态价值为0,利用递归的方式即可得到
5.5=0.5*(10+0)+0.5*(0+1*1)
1.65=0.5*(-2+0.4*3.5+0.4*5.5+0.2*1)+0.5*(-2+1*3.5)
可以把 Decision Making 分为两个过程
Prediction (评估给定的策略)
Control (寻找最优策略)
Prediction 满足动态规划的条件:
Iteration on Bellman exception backup
我们可以用所有的状态 s 在 t 时刻的价值 v t ( s ′ ) v_t(s') vt(s′) 来更新 v t + 1 ( s ) v_{t+1}(s) vt+1(s) 时刻的价值,然后迭代下去
V t + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ V t ( s ′ ) ) V t + 1 ( s ) = R π ( s ) + γ ∑ s ′ ∈ S P π ( s ′ ∣ s ) ⋅ V t ( s ′ ) V_{t+1}(s) = \sum_{a \in A}\pi(a|s)(R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s, a)} \cdot V_t(s')) \\ V_{t+1}(s) = R_\pi(s) + \gamma \sum_{s' \in S} P_{\pi}(s'|s) \cdot V_t(s') Vt+1(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)⋅Vt(s′))Vt+1(s)=Rπ(s)+γs′∈S∑Pπ(s′∣s)⋅Vt(s′)
V ∗ ( s ) = m a x π V π ( s ) V_*(s) = max_\pi V_\pi(s) V∗(s)=maxπVπ(s)
π ∗ ( s ) = a r g m a x π V ∗ ( s ) \pi^*(s) = argmax_\pi V^*(s) π∗(s)=argmaxπV∗(s)
根据以上几点,我们可以最大化最优行为价值函数找到最优策略
π ∗ ( a ∣ s ) = { 1 , if a = a r g m a x q ∗ ( s , a ) 0 , otherwise \pi^*(a|s) = \begin{cases} 1, & \text{if $a = argmax \; q^*(s,a)$} \\ 0, & \text{otherwise} \end{cases} π∗(a∣s)={1,0,if a=argmaxq∗(s,a)otherwise
π ′ = g r e e d y ( v π ) \pi' = greedy(v^{\pi}) π′=greedy(vπ)
如果我们有 一个 策略 π \pi π,我们可以用策略 估计出它的状态价值函数 v π ( s ) v_\pi(s) vπ(s), 然后根据策略改进提取出更好的策略 π ′ \pi' π′,接着再计算 v π ′ ( s ) v_{\pi'}(s) vπ′(s), 然后再获得更好的 策略 π ′ ′ \pi'' π′′,直到相关满足相关终止条件。
v i ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ v i − 1 ( s ′ ) ) v_i(s) = \sum_{a \in A}\pi(a|s)(R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s, a)} \cdot v_{i-1}(s')) vi(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)⋅vi−1(s′))
q π i ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ v π i ( s ′ ) π i + 1 ( s ) = a r g m a x a q π i ( s , a ) q^{\pi_i}(s,a) = R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s,a)} \cdot v^{\pi_i}(s') \\ \pi_{i+1}(s) = argmax_a \; q^{\pi_i}(s,a) qπi(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)⋅vπi(s′)πi+1(s)=argmaxaqπi(s,a)
Bellman Optimality Equation
v ∗ ( s ) = m a x a q ∗ ( s , a ) v_*(s) = max_a q_*(s,a) v∗(s)=maxaq∗(s,a)
q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P s ′ s a ⋅ V ∗ ( s ′ ) q_*(s,a) = R(s, a) + \gamma \sum_{s' \in S} P_{s's}^a \cdot V_*(s') q∗(s,a)=R(s,a)+γs′∈S∑Ps′sa⋅V∗(s′)
把上面两个式子结合起来有Bellman Optimality Equation
v ∗ ( s ) = m a x a ( R ( s , a ) + γ ∑ s ′ ∈ S P s ′ s a ⋅ V ∗ ( s ′ ) ) v_*(s) = max_a (R(s, a) + \gamma \sum_{s' \in S} P_{s's}^a \cdot V_*(s')) v∗(s)=maxa(R(s,a)+γs′∈S∑Ps′sa⋅V∗(s′))
q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P s ′ s a ⋅ m a x a ′ q ∗ ( s ′ , a ′ ) q_*(s,a) = R(s, a) + \gamma \sum_{s' \in S} P_{s's}^a \cdot max_{a'}q_*(s', a') q∗(s,a)=R(s,a)+γs′∈S∑Ps′sa⋅maxa′q∗(s′,a′)
v ∗ ( s ) = m a x a q ∗ ( s , a ) ⇓ v i + 1 ( s ) ← m a x a ∈ A ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ V i ( s ′ ) ) v_*(s) = max_a q_*(s,a) \\ \Downarrow \\ v_{i+1}(s) \leftarrow max_{a \in A} \; \left(R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s,a)} \cdot V_i(s')\right) v∗(s)=maxaq∗(s,a)⇓vi+1(s)←maxa∈A(R(s,a)+γs′∈S∑P(s′∣s,a)⋅Vi(s′))
π ∗ ( s ) = a r g m a x a q π ( s , a ) ⇓ π ∗ ( s ) ← a r g m a x a ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ⋅ V e n d ( s ′ ) ) \pi^*(s) = argmax_a \; q^{\pi}(s,a) \\ \Downarrow \\ \pi^*(s) \leftarrow argmax_a \; \left(R(s, a) + \gamma \sum_{s' \in S} P_{(s'|s,a)} \cdot V_{end}(s')\right) π∗(s)=argmaxaqπ(s,a)⇓π∗(s)←argmaxa(R(s,a)+γs′∈S∑P(s′∣s,a)⋅Vend(s′))
关于直观的理解 Policy Iteration 和 Value Iteration 可以访问下面的网址