Markov Chain→ Markov Reward Process (MRP)→ Markov Decision Processes (MDP)
马尔可夫链
状态转移序列满足马尔可夫(马尔可夫链性质):下一状态只取决于当前状态,和之前的状态不相关。
描述了状态转移之间的关系,可以用状态转移矩阵表示状态变换的概率。
马尔可夫的例子:
每步概率都是0.4,0.4,0.2的概率分布
马尔可夫奖励过程(MRP)
马尔可夫奖励过程(MRP)即在马尔可夫过程中多一个奖励函数,当达到某一状态时将得到什么样的奖励。
概念
Horizon:
每一episode最大步数
Return:
每一时间步获得收益之和:
更希望得到及时的奖励,未来的奖励将会打折扣γ
疑问:因为当今奖励占的权重较大,如果存在否定当今行为(例如让一追三),选择其他行为未来的收益总和更大呢?
Value Function:
为什么需要折扣因子(Discount Factor):
- 避免马尔可夫有环
- 将不确定性表现出来,希望得到及时奖励
- γ=0,只取决于当前奖励;γ=1,未来奖励和当前奖励权重一样
如何计算value function?
Bellman equation:
$$ P(s'|s) :当前状态转移到未来状态的关系 $$通过矩阵求幂的过程即可求出V(Value function),但是时间复杂度太大了。
优化:迭代计算Value function
- 动态规划 Dynamic Programming
- 蒙特卡罗方法 Monte-Carlo
- 时间差分 Temporal-Difference
Dynamic Programming动态规划,迭代法
Monte-Carlo evaluation蒙特卡罗
将多次轨迹奖励累加,当大于一定轨迹数量后,G除以轨迹数量得到价值Value
Temporal-Difffference learning时间差分(MC+DP二者结合,后续介绍)
Markov Decision Process (MDP)决策
马尔可夫决策过程(MDP)即在马尔可夫奖励过程(MRP)基础上增加了决策过程(action)
Policy in MDP:
MDP的policy:在某一St下,采取什么action 。如果已知policy,即已知π(a|s),已知每个state执行某个action的概率。后面的P(s’|s)π 、V(t)π 等指的是在某π下的状态转移概率和价值函数。
π
(
a
∣
s
)
=
P
(
a
t
=
a
∣
s
t
=
s
)
π(a|s)=P(a_t=a|s_t=s)
π(a∣s)=P(at=a∣st=s)
MDP->MRP
当policy已知,π(a|s)已知,MDP问题将转化为MRP,原先MRP需要知道P(s’|s),现在变成了需要知道P(s’|s,a),即在某一状态下,采取某种action转移到下一状态的概率。
MRP和MDP的直观区别
Value function for MDP
MDP中的Bellman Expectation Equation
Backup推导
两层加和,内层加和是从叶子结点backup到父结点,外层加和是backup到图中的根节点(两个等式同理)。
Policy evaluation in MDP(value prediction)
Policy Evaluation又叫value prediction,即已知policy,来计算value funciton的值vπ(s)。
Example
红色框“policy π(s)=Left with γ” 就是在该过程的policy π。
Control in MDP: policy iteration and value iteration
动态规划(Dynamic Programming):
先寻找子问题的最佳解,然后再子问题逐步求解,最终得到原始问题的最佳解。
(MDP中:Bellman equation给出递归分解,价值函数储存并重用解决方案)
Policy evaluation on MDP
思路:还是之前提到的根据MDP+policy转化为MRP,不断迭代得到V。可以用MC/DP/TD等方法求解。
得到
Optimal Value Function
Finding Optimal Policy
如果已知最优Q函数,如何根据Q函数找到最佳策略?
任何一个MDP问题都有确定的最优策略。如果我们知道就可以直接得到optimal policy。
Policy Search
穷举策略,将会有|A||s|种可能,复杂度太高=>常见方法:
- policy iteration
- value iteration
MDP control即根据值函数求的最佳策略
MDP最优策略是Deterministic、Stationary 、not unique的。
Policy iteration
1、policy evaluation,根据policy计算价值函数
2、根据得到的价值函数使用greedy得到心得策略拍π’=greedy(vπ)
policy improvement
得到新的policy后重新计算value funciton继续迭代。
证明过程(为什么policy improvement有效)
Value Iteration
当以下等式成立时,Bellman Optimality Equation成立。取得最优价值函数
v
π
(
s
)
=
max
a
∈
A
q
π
(
s
,
a
)
v^π(s)=\max_{a\in A}q^π(s,a)
vπ(s)=a∈Amaxqπ(s,a)
得到
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LwxQq1Ag-1632214923911)(C:/Users/jz/AppData/Roaming/Typora/typora-user-images/image-20210921121536766.png)]
Difffference between Policy Iteration and Value Iteration
- Policy Iteration由policy evaluation和policy improvement两部分组成
- Value Iteration则是直接利用Bellman Optimality Equation迭代求解,最后再有一个policy extraction,由动作值获得最终策略
Policy Iteration
Value Iteration
区别这两种Iteration的生动的解释:
策略迭代:https://zhuanlan.zhihu.com/p/34006925
价值迭代:https://zhuanlan.zhihu.com/p/33229439
Bellman Equation和MDP问题
MDP Prediction问题:可直接用Bellman Expectation Equation迭代求解
MDP Control问题:可用Bellman Expectation Equation的方法(Policy iteration)或直接使用Bellman Optimality Equation进行值迭代(Value Iteration)。
Bellman Equation和MDP问题
[外链图片转存中…(img-tfy2lH9O-1632214923918)]
MDP Prediction问题:可直接用Bellman Expectation Equation迭代求解
MDP Control问题:可用Bellman Expectation Equation的方法(Policy iteration)或直接使用Bellman Optimality Equation进行值迭代(Value Iteration)。