基于table的Q learning和Sarsa算法

本文介绍了在没有神经网络时,通过表格法实现的强化学习算法,包括Off-policy的Q learning(冒险想象派)和On-policy的Sarsa learning(保守实践派)。这两种算法在决策和更新Q表方面有相似之处,但Sarsa算法在更新时考虑了实际采取的动作。此外,还提到了Sarsa-lambda算法,其Lambda参数决定了更新的强度和未来价值的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Off-policy Q learning算法和On-policy Sarsa learning都是时序差分(TD)下对动作价值函数优化的单步方法,在没有神经网络之前,都是通过table的方法,下面简单介绍一下:

 

最佳决策可以通过遍历所有的情况去得到,有些时候情况比较多元,只能通过部分的情况去学习经验,然后得到一个亚最佳决策(趋近于最佳决策)。

那么如何得到亚最佳决策是我们关心的问题。

 

Off-policy Q learning算法(冒险想象派):


决策算法:在行为准则Q表(在状态s下所有可以选择动作的价值表)中,遵循e-greedy策略选取最大价值的动作进行执行,重复执行。

更新算法:更新行为准则Q表,通过价值的现实值和估计值。

Gamma值:如果 gamma 从 0 变到 1,对远处的价值看得越清楚, 所以机器人渐渐变得有远见, 不仅仅只看眼前的利益, 也为自己的未来着想。

O

Q-learning SARSA(State-Action-Reward-State-Action)都是强化学习(Reinforcement Learning, RL)中的基于模型的学习策略,用于解决马尔科夫决策过程(Markov Decision Process, MDP)问题。它们通常通过迭代的方式更新Q值表(或Q函数),以便找到从给定状态到目标状态的最优动作路径。 要在Python中用这两种算法实现山车(Mountain Car)游戏,你可以使用`gym`库,它是OpenAI Gym项目的一部分,提供了一系列经典控制任务,包括Mountain Car。以下是一个简化的例子,展示了如何使用Q-learningSARSA来解决这个游戏: ```python import gym import numpy as np # 创建环境 env = gym.make('MountainCar-v0') # 初始化参数 alpha = 0.5 # 学习率 gamma = 0.9 # 折扣因子 epsilon = 0.1 # 探索概率 num_episodes = 10000 # 总的训练次数 max_steps = env.spec.timestep_limit # 每个episode的最大步数 # Q-table初始化 q_table = np.zeros([env.observation_space.n, env.action_space.n]) for episode in range(num_episodes): state = env.reset() done = False for step in range(max_steps): if np.random.rand() < epsilon: action = env.action_space.sample() # 随机选择动作 else: action = np.argmax(q_table[state]) # 根据Q-value选择动作 next_state, reward, done, _ = env.step(action) if not done: # Q-learning update q_table[state, action] += alpha * (reward + gamma * np.max(q_table[next_state]) - q_table[state, action]) else: # 奖励终止状态 q_table[state, action] += alpha * reward state = next_state if done: break env.close() # 现在你可以查看优化后的Q-table,或通过Q-table来进行策略执行 ``` 请注意,这只是一个基础的框架,实际应用中你可能需要对探索-利用策略、记忆存储(如经验回放)等进行调整。此外,为了提高性能,可以使用更复杂的实现,比如优先队列或深度学习方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值