半马尔科夫决策过程

什么是半马尔科夫决策过程?

想搞清楚什么是半马尔科夫决策过程(Semi-MDP,SMDP),我们需要先复习一下马尔科夫决策过程(Markov Decision Process, MDP)。因为MDP其实是SMDP的一个特例。(不同之处仅在于:状态转移概率矩阵P上,其他均是一样,为了起到触类旁通之效,我会带大家先回顾一下MDP)

相信大家对MDP并不陌生,毕竟对于咱们这种搞强化学习(reinforcement learning,RL)的人来说,MDP之与RL就好比是水之于鱼、天空之于鸟,毕竟MDP可是RL的数学理论支撑。

回顾多年前的知识点————MDP

马尔科夫决策过程MDP本来就是一个非常简单的概念,读起来挺高深、挺复杂、挺装的,但其实它很简单。当文章的公式、符号一多,我一看文章就会犯困。本人切身感受到过这种折磨,所以,这篇文章力求————简洁明了!

出现马尔科夫性的前因后果

在很久很久以前,地球上还没有出现‘马尔科夫决策过程’这一名词。并且在我们的现实世界里,人们早已发现现实世界里的环境转化,转化到下一个状态s′的概率既与上一个状态s有关,还与上上个状态,以及上上上个状态有关。这就会导致我们的环境转化模型非常复杂,复杂到难以建模。因此我们需要对环境转化模型进行简化,即固执的认为状态具有马尔科夫性(马尔科夫性:就是下一时刻的状态S’只受当前状态S的影响,与之前的所有状态无关)。

MP、MRP、MDP的区别与联系

  1. 可以用一个二元组<S, P>表示,S是状态(集合),P是状态转移概率矩阵,且状态S具有马尔可夫性。这个二元组就是马尔科夫过程(MP),它是一个无记忆的随机过程。
  2. 在马尔科夫过程的基础上加上奖励函数R和衰减系数γ,构成一个四元组<S,R,P,γ>就叫马尔科夫奖励过程(MRP)。
  3. 在马尔科夫奖励过程的基础上加上Decision过程,即就是加上一个动作集合A,就是马尔科夫决策过程(MDP)。

半马尔可夫决策过程————SMDP

马尔科夫决策过程(MDP)有2种类型,包括离散时间MDP、连续时间 MDP。其中离散时间MDP的时间和状态都是离散的,状态转移依赖1步转移矩阵;连续时间MDP与离散时间MDP的不同之处在于其状态发生变化的时刻是任意时刻且为连续值,并且相邻状态的停留时间服从指数分布,指数分布有一个特点——无记忆性。

在数学里,指数分布是唯一无记忆的连续分布,几何分布是唯一无记忆的离散分布。而几何分布的连续形式就是指数分布。

你可能会问:什么是无记忆性?

小明在自家小卖部苦苦等待第一位上门的客人,已经等待三个小时了,小明想去上厕所,可是只有憋着,因为它想到等了这么久了,客人上门的概率会随着时间的推移而不断提高,所以一定要等到客人之后再去上厕所。这个事件是可看成一个指数分布的,由于指数分布具有无记忆性,前面等的三个小时是沉没成本,并不会影响之后的来客概率。小明该去上厕所就去上厕所,三个小时的等待与提高来客率毫无关系。这就是无记忆性。

SMDP与MDP的区别与联系

SMDP是连续时间的,它依然具有马尔可夫性,它的相邻状态的停留时间服从随机分布,并不是指数分布。也就是说,MDP考虑的情况简单,相邻状态的停留时间服从指数分布,因此转移概率是时间常数和无记忆的,这限制了MDP的实际应用。为了克服MDP的局限性,SMDP具有更一般的概率分布和时变过渡率,因此具有更广泛的实际应用。比如,网络中单节点工作状态的转换是个随机过程, 即工作状态之间的转换不是等概率事件,相应的转移率是时变的。针对这种现实问题我们没有办法把它看成一个MDP,必须要用到SMDP对其进行建模了。

虽然SMDP的状态转移矩阵P的转移概率是时变的,但是它依然能写成和MDP类似的最优价值函数:

在这里插入图片描述

关于强化学习算法在求解SMDP的贝尔曼方程的应用,目前有:
RVI Q-learning、R-learning、GR-learning都可以对SMDP的贝尔曼方程进行迭代求解。

随带提一嘴:

你或许听说过Q-Learning,但是,你可曾听闻另一招从天而降的算法————
R-Learning!!!!
R-Learning算法是Q-Learning的推广,我们知道,Q-Learning算法里的最大化奖励函数是带有衰减因子γ的,而R-Learning算法针对没有衰减因子γ的奖励函数,也能使累计回报最大化。

参考文献:

1.一篇知乎文章(无记忆性)
2.另一篇知乎文章
3.Schwartz A. A reinforcement learning method for maximizing undiscounted rewards[C]//Proceedings of the tenth international conference on machine learning. 1993, 298: 298-305.
4.Singh, S.P.: Reinforcement learning algorithms for average-payoff Markovian decision processes. In: AAAI Conference on Artificial Intelligence, pp. 700–705 (1994)
5.Yang, J., Li, Y., Chen, H., Li, J. (2017). Average Reward Reinforcement Learning for Semi-Markov Decision Processes.

  • 12
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
马尔科夫决策过程(Markov Decision Process,MDP)一种用于描述序贯决策问题的数学模型。在代码实现上,可以使用Python的相关库来构和求解MDP问题,例如使用numpy和gym库。 下面是一个简单的马尔科夫决策过程代码示例: ```python import numpy as np # 定义MDP的状态空间、动作空间、状态转移概率和奖励函数 states = ['S1', 'S2', 'S3'] # 状态空间 actions = ['A1', 'A2'] # 动作空间 transition_probs = { 'S1': { 'A1': {'S1': 0.2, 'S2': 0.8}, 'A2': {'S2': 1.0} }, 'S2': { 'A1': {'S1': 0.6, 'S3': 0.4}, 'A2': {'S3': 1.0} }, 'S3': { 'A1': {'S3': 1.0}, 'A2': {'S1': 0.7, 'S3': 0.3} } } rewards = { 'S1': {'A1': {'S1': -10, 'S3': 5}, 'A2': {'S3': 0}}, 'S3': {'A1': {'S3': 0}, 'A2': {'S1': 20, 'S3': -5}} } # 定义MDP的价值函数和策略 values = {state: 0 for state in states} # 价值函数 policy = {state: np.random.choice(actions) for state in states} # 策略 # 迭代求解MDP的最优策略和最优价值函数 discount_factor = 0.9 # 折扣因子 num_iterations = 100 # 迭代次数 for _ in range(num_iterations): new_values = {} for state in states: action = policy[state] new_value = sum(transition_probs[state][action][next_state] * (rewards[state][action][next_state] + discount_factor * values[next_state]) for next_state in states) new_values[state] = new_value values = new_values new_policy = {} for state in states: action_values = {action: sum(transition_probs[state][action][next_state] * (rewards[state][action][next_state] + discount_factor * values[next_state]) for next_state in states) for action in actions} best_action = max(action_values, key=action_values.get) new_policy[state] = best_action policy = new_policy # 输出最优策略和最优价值函数 print("Optimal Policy:") for state, action in policy.items(): print(f"State: {state}, Action: {action}") print("Optimal Values:") for state, value in values.items(): print(f"State: {state}, Value: {value}") ``` 这段代码实现了一个简单的马尔科夫决策过程,包括定义状态空间、动作空间、状态转移概率和奖励函数,以及迭代求解最优策略和最优价值函数。在代码中,使用了折扣因子来衡量未来奖励的重要,并通过迭代更新价值函数和策略来逐步优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值