强化学习的本质可以说为是对贝尔曼方程(
Bellman equation
)求最优近似解,强化学习的任务通常称为马尔可夫决策过程(
Markov Decision Process, MDP
)。
应用场景就不说了…
MDP( Markov Decision Process )
马尔可夫决策过程 M=(S, A, ,Psa, γ, R) :
- S :目标的状态集合
A :目标可以做的所有动作集合
s0−→−a0s1−→−a1s2−→−a3⋯- Psa :状态转移概率,某动作 a∈A 作用于当前状态 s∈S 上,则其转移到其他状态 s′∈S 的概率
- γ∈[0,1) :Discount factor,博弈论中称为’贴现因子’,可通俗的解释为10年后的一块钱在今天值多少。
-
R
:
S∗A→ℝ 奖赏( Reward )函数(若 (s, a) 对应的下一个状态 s′ 是唯一的则 R: s→ℝ )。目标以后的状态是我们想要的,就给一个比较大的奖赏值,反之就会得到较小的奖赏值。
至此MDP可表示为:
R(s0,a0)+γR(s1,a1)+γ2R(s2,a2)+γ3R(s3,a3)+⋯
MDP求解
定义:
- 策略
π: s→a
,即在当前状态
s
下如何选择动作
a 。 - 状态价值函数:
vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+γ3R(s3)+⋯|S0=s]=∑a∈Ap(a|s)(Ras+γ∑s′∈Spπ(s)ss′(s′)vπ(s′))
其中,
pπ(s)ss′(s′)=psπ(s)(s′)=p(St+1=s′|St=s,π(s)=a)
得贝尔曼方程( Bellman equation ):
Vπ(s)=R(s)+γ∑s′∈SPsπ(s)(s′)Vπ(s′) - 同理得动作价值函数:
qπ(s,a)=E[R(s0,a0)+γR(s1,a1)+γ2R(s2,a2)+γ3R(s3,a3)+⋯|S0=s,A0=a]
(注:当前状态
s
(白色圆)可能会有多个动作
求最优
求最优即寻找可以得到最大奖赏值的解,也就是最大化价值函数:
图:状态价值函数与动作价值函数之间的关系
即求贝尔曼最优方程:
而想通过贝尔曼方程求最优策略的话至少需要满足:
- 模型为动态模型
- 模型满足Markov特性(即当前状态由上一状态及动作得到的)
- 另外需要大量计算空间及时间
求解贝尔曼方程近似最优解的方法如下:
- Value Iteration
- Policy Iteration
- 时序差分(Q-learning、Sarsa)
- ……
本文只讲 Value Iteration,Policy Iteration
Value Iteration
- 初始化 V(s)=0
- 重复至V(s)收敛 {
更新 V(s)=R(s)+maxa∈Aγ∑s′Psa(s′)V(s′).
}
有两种更新方式:
- synchronous 同步更新:计算每个状态s的V(s)新值,立即更新
- asynchronous 异步更新:遍历所有状态s,按照某种顺序每次更新一个值
Policy Iteration
- 随机初始化策略 π
- 重复至收敛{
V:=Vπ
对于每个状态 s ,π(s)=argmaxa∈A∑s′Psa(s′)V(s′).
}
内部循环重复计算当前策略的值函数,然后使用当前值函数更新策略。最终
V
会收敛到