强化学习算法学习汇总笔记 (一) — Q-learning、Sarsa、DQN、Policy Gradients

本文详细介绍了强化学习的不同类别,包括Model-free与Model-based、基于概率和价值、单步更新与回合更新、在线学习与离线学习。接着讲解了Q-learning的基本概念、更新过程以及Q值的影响因素。Sarsa与Q-learning的区别在于Sarsa在更新时采用相同的策略。DQN通过神经网络解决Q-learning中的状态空间问题,采用实验回放和固定Q目标提高训练效率。Policy Gradients则直接输出动作,根据奖励调整网络参数,适合连续动作空间。
摘要由CSDN通过智能技术生成

一. 强化学习的分类

1.Model-free 和 Model-based
Model-free 即机器人不知道外界环境信息,只能在机器人执行每一步动作后从环境中得到反馈然后去学习,只能按部就班,一步一步等待真实世界的反馈,再根据反馈采取下一步行动。诸如Q Learning, Sarsa,Policy Gradients等算法。

Model-based 指机器人对环境有一定的了解,可以对环境进行建模,通过模型机器人再也不必等真实世界的反馈做出动作。可以这么理解,当机器人要学习的时候,由于有了环境的模型,机器人可以将建立的环境模型当做是真实世界,不断的学习。在模型世界中,选择学习情况最好的那一种。

2.基于概率和基于价值(value)
基于概率:是强化学习中最直接的一种,通过state(观测)直接输出下一步采取的action(动作)的概率,然后根据概率采取行动,所以每一种action(动作)都有可能被选中,只是可能性不同。诸如 Policy Gradient。

基于价值:输出所有动作的价值,相比基于概率的方法,基于价值的决策部分更为铁定,即选择价值最高的。诸如 Q Learning, Sarsa 等算法。

同时也有结合这俩种方式的算法,诸如Actor-Critic,在Actor-Critic 基础上扩展的 DDPN (Deep Deterministic Policy Gradient)、A3C (Asynchronous Advantage Actor-Critic)、DPPO (Distributed Proximal Policy Optimization)。

3.回合更新(Monte-Carlo update,蒙特卡洛更新)和单步更新(Temporal-Difference update)
回合更新:指游戏开始到结束整一个过程,只有等到结束后,才能够总结这个回合的所有转折点,再更新我们的行为准则。诸如Monte-carlo Learning 和 基础版的 policy gradient等。

单步更新:在游戏中的每一步都可以更新其行为准则(例如如何选择action等),不用等到整个过程都结束。诸如Qlearning、Sarsa 和升级版的 policy gradient 等都是单步更新的。

4.在线学习(On-Policy)和 离线学习(Off-Policy)
在线学习(On-Policy):在当前时间当前采取的动作紧接着通过得到的反馈下进行学习。诸如 Sarsa 算法 和 Sarsa lambda 算法。

离线学习(Off-Policy):可以根据过往的经验及数据进行学习,举个例子,就是白天收集的数据可以在晚上通过离线学习进行。诸如 Q-Learning,Deep-Q-Network 等算法。

二. Q-learning

1.基本概念
a.假设我们现在处于状态s1(在写作业),有俩个行为,分别是a1(看电视),a2(写作业)。根据经验,在这种状态下,选择a2(写作业)的值(value,可理解为分数)要比选择a1(看电视)要高。这里的state(状态)、action(动作)、值(value)都可以用一个有关s、a和value的Q表格代替。

b.在这个例子中,在状态s1下选择a1的值为 Q(s1,a1)=-2, 选择a2的值为 Q(s2,a2)=2, 所以我们选择a2这个动作然后到达状态s2。重复上面的过程,我们可以得到Q(s2,a1), Q(s2,a2) 的值(value),并比较他们的大小,从而确定下一个action(动作)达到状态 s3,并不断的重复这个过程,这就是Q表,如下图所示。
这里写图片描述

2.Q-learning 的更新
如何去更新Q表中的值?
根据Q表的估计,因为在状态s1中,a2的值比较大,通过之前的决策方法,我们在s1采取了a2,并达到了s2状态,这时候我们开始更新用于决策的Q表。在s2状态下,我们通过某种手段得到了在s2状态下采取某种action的值,分别是Q(s2,a1) 和 Q(s2,a2), 这时候对于 Q(s1,a2),我们可用如下公式更新Q(s1,a2)的值:

Q(s1,a2)=Q(s1,a2)+α[R+γmax Qa(s2,a)Q(s,a)] Q ( s 1 , a 2 ) = Q ( s 1 , a 2 ) + α [ R + γ ∗ m a x   Q a ( s 2 , a ) − Q ( s , a ) ]

其中R为达到s2状态是所获得的奖励, γ γ 为衰减因子, α α 为学习效率。在这里值得注意的是,我们用maxQ(s2,a) 估算了s2的状态,但是还没有做出任何的action(动作),需要等到更新完后再做出action。

这就是off-policy 的 Q learning 是如何决策和学习优化决策过程的。

3.伪代码

Initialize Q(s,a) arbitrarily
Repeat(for each episode):
    Initialize s
    Repeat (for each step of episode):
        Choose a from s using policy derived from Q (e.g., greedy) (上面的更新过程我们就是用了贪婪算法)
        Take action a,observe r,s'
        Q(s,a)<-Q(s,a)+ \alpha[r+ \gamma* \underset{a'}{max} Q(s',a') - Q(s,a)]  (该公式为latex语言)
        s<-s';
    until s is terminal

伪代码概括了Q-learning中的所有内容,每次更新都用到了Q(s’,a’) 和 Q(s,a)。在choose a from s using policy derived from Q中,我们还有时会用到 ϵgreedy ϵ − g r e e d y , 当 ϵ=0.9 ϵ = 0.9 的时候,说明有 90%的情况会按照Q表最优值选择行为(即最大值),10%的时间使用随机选行为。 α α 是学习率,来决定这次的误差有多少是要被学习的, α α 是一个小于1的数。

Q-learningSARSA都属于时序差分强化学习方法,而不是蒙特卡洛强化学习方法。 时序差分强化学习是一种结合了动态规划和蒙特卡洛方法的强化学习方法。它通过使用经验数据进行增量式的更新,同时利用了当前和未来的估计值来逼近最优值函数。 具体来说,Q-learningSARSA都是基于Q值函数的时序差分强化学习算法。 1. Q-learning:Q-learning是一种基于动态规划的无模型强化学习算法。它使用了时序差分(TD)方法,通过不断迭代更新Q值函数的估计值,使其逼近最优的Q值。Q-learning算法通过将当前状态和动作的估计值与下一个状态和动作的最大估计值相结合,来更新Q值函数的估计值。 2. SARSASARSA是一种基于时序差分的强化学习算法,也是一种模型-free的强化学习算法SARSA算法使用了时序差分的方法,通过不断迭代更新Q值函数的估计值。与Q-learning不同的是,SARSA算法采用了一个策略(Policy)来决定下一个动作,并在更新Q值时使用下一个动作的估计值。 时序差分强化学习方法与蒙特卡洛强化学习方法相比,具有更高的效率和更好的适应性。它可以在每个时间步骤中进行更新,不需要等到任务结束后才进行更新,从而更快地收敛到最优策略。而蒙特卡洛强化学习方法则需要等到任务结束后才能获取完整的回报信息,进行全局更新
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值