强化学习-2-马尔可夫决策过程
FrWalker强化学习的笔记、理解、感悟及代码实现,仅按个人思维进行精华总结和记录,使用的教程:动手学强化学习
马尔可夫奖励过程(Markov Reward Process, MRP)
不考虑动作策略,一个马尔可夫奖励过程由一个状态空间S、一个转移概率矩阵P、一个奖励函数R、一个折扣因子γ和一个初始状态s0组成。
- 状态空间S表示马尔可夫过程的状态集合。
- 转移概率矩阵P是一个S*S的矩阵,其中P(s,s’)表示在状态s下执行动作a后转移到状态s’的概率。
- 奖励函数R(s)表示转移到状态s可以获得的奖励
- 折扣因子γ取值在0~1之间,用于衡量短期奖励与长期奖励的折扣系数
价值函数
从一个状态
其中,
所有状态的价值组成价值函数,即
进一步得到贝尔曼方程:
矩阵求解析解:
1 | def compute(P, rewards, gamma, states_num): |
马尔可夫决策过程(Markov Decision Process, MDP)
马尔可夫决策过程(Markov Decision Process,MDP)是指一个由状态、动作、转移概率和奖励组成的随机过程,其中状态的转移仅依赖于当前状态和动作,而与历史无关。
相比MRP,引入了动作决策,奖励函数和状态转移同时取决于状态s和动作a。
- r(s,a)是奖励函数,此时奖励可以同时取决于状态s和动作a,在奖励函数只取决于状态s时,则退化为r(a);
- p(s’|s,a)是状态转移概率,表示在状态s下执行动作a后转移到状态s’的概率;
状态、动作价值函数及两者关系
定义基于策略
定义基于策略
得到两个价值函数的贝尔曼期望方程:
状态、动作价值函数的关系
在使用策略中,状态的价值等于在该状态下基于策略采取所有动作的概率与相应的价值相乘再求和的结果:
使用策略时,状态下采取动作的价值等于即时奖励加上经过衰减后的所有可能的下一个状态的状态转移概率与相应的价值的乘积:
FROM MDP TO MRP
根据策略所有动作的概率进行加权,得到无动作的奖励函数(奖励函数的定义由到达状态s的奖励改为到达状态s能够产失的奖励期望即s后所有动作产生奖励的期望):
将采取动作的概率与使s转移到s’的概率相乘再求和,得到无动作的状态转移概率:
根据
1 | def compute(P, rewards, gamma, states_num): |
根据状态价值函数和动作价值函数的关系,求得动作价值函数:
使用蒙特卡洛采用计算状态价值函数
随机生成多条状态序列,从后向前统计每个状态出现的次数和回报,计算期望来近似价值函数V:
1.定义MDP过程
1 | S = ["s1", "s2", "s3", "s4", "s5"] |
2.根据动作策略采样
1 | Pi = { |
3.从后向前统计每个状态的出现次数和总回报
1 | def MC(episodes, V, N, gamma): |
4.总流程
1 | episodes = sample(MDP, Pi, 20, 1000) |
占用度量与最优策略
占用度量
占用度量衡量的是一个策略的好坏,即在给定策略
下,动作状态对(s,a)被访问到的概率:
占用度量相同等价于策略相同:
通过代码采样,用状态对的频率来估计占用度量:
1 | def occupancy(episodes, s, a, timestep_max, gamma): |
最优策略
贝尔曼最优方程: