Q-Learning 、Sarsa与 DQN算法

Q-Learning 、Sarsa与 DQN算法

Q-Learning算法

一、算法思想:
QLearning是强化学习算法中value-based的算法,Q即为 Q ( s , a ) Q(s,a) Q(s,a) 就是在某一时刻的 s 状态下 ( s ∈ S ) (s∈S) (sS) ,采取动作 a ( a ∈ A ) a (a∈A) a(aA) 动作能够获得收益的期望,环境会根据 agent 的动作反馈相应的回报reward r r r,所以算法的主要思想就是将 State 与 Action 构建成一张 Q-table 来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。

Q-Table a1 a2
s1 q(s1,a1) q(s1,a2)
s2 q(s2,a1) q(s2,a2)
s3 q(s3,a1) q(s3,a2)

Qlearning的主要优势就是使用了时间差分法TD(融合了蒙特卡洛和动态规划)能够进行离线学习, 使用 bellman方程可以对马尔科夫过程求解最优策略

二、参数更新方式
利用时间差分法对Q-table的Q值进行计算更新:

Q ( s , a ) ← Q ( s , a ) + α [ r + γ m a x a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a)←Q(s,a)+α[r+γmax_{a^′}Q(s^′,a^′)−Q(s,a)] Q(s,a)Q(s,a)+α[r+γmaxaQ(s,a)Q(s,a)]

根据下一个状态 s ’ s^’ s 中选取最大的 Q ( s ′ , a ′ ) Q(s^{'} , a^{'}) Q(s,a) 值乘以奖励衰减因子 γ γ γ 加上真实回报值作为 Q现实,而根据过往Q表里面的 Q ( s , a ) Q(s,a) Q(s,a) 作为 Q估计

Sarsa 算法

Sarsa 的决策部分和 Q-learning 一模一样, 都是使用 Q 表的形式决策, 不同的地方在于 Sarsa 的更新方式。

注意Q-Learning与Sarsa算法的参数更新公式的细微不同,虽然两个算法都是通过时间差分法进行参数更新,但Sarsa算法不需要取下一状态的 Q m a x Q_{max} Qmax,而是通过策略 π \pi π 与环境做交互实时得到下一状态的 Q 值,因此Sarsa算法是一种on-policy的算法(用于采集数据的策略与用于训练的策略是同一个策略)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何处微尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值