赞
踩
SARSA 和 Q-learning 都是强化学习中常见的算法。它们的目标都是学习表格,来指导智能体在环境中做出决策。
两种算法的区别在于它们对于未来奖励的处理方式:
Q-learning 是一种 off-policy 的算法,它会选择当前状态下最大 Q 值对应的动作作为决策。
Q值更新方式:
Q
(
s
,
a
)
←
Q
(
s
,
a
)
+
α
[
r
+
γ
max
a
′
Q
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
]
Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma\max_{a'}Q(s',a')-Q(s,a)]
Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]
而 SARSA 则是一种 on-policy 的算法,它会在当前状态下按照某种策略选择一个动作,然后在下一个状态下再按照相同的策略选择动作,并根据这个过程计算出一个 Q 值。
Q值更新方式:
Q
(
s
,
a
)
←
Q
(
s
,
a
)
+
α
[
r
+
γ
Q
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
]
Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma Q(s',a')-Q(s,a)]
Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]
Q-learning 更侧重于学习最大化的长期奖励,而 SARSA 更侧重于学习按照某个策略的短期奖励。
紫色为小车:
数学模型:[[np.cos(theta), 0],[np.sin(theta), 0],[0, 1.0]]
红色为障碍物:
碰撞:-5.0
绿色为目标区域:
到达:+2.0
其他奖励:
为了保证小车尽快到达目标区域,每step消耗0.02(奖励:-0.02)
距离奖励:奖励:(上一次距目标点距离-当前距目标点距离)*系数
输入:动作{0: 前进, 1: 左转, 2: 右转}
输出:下一个状态,奖励,结束标志位,其他信息
古月居原文链接:https://www.guyuehome.com/42286
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。