强化学习:时间差分(TD)(SARSA算法和Q-Learning算法)(看不懂算我输专栏)——手把手教你入门强化学习(六)

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 本文介绍了时间差分法(TD)中的两种经典算法:SARSA和Q-Learning。二者均为无模型强化学习方法,通过与环境交互估算动作价值函数。SARSA是On-Policy算法,采用ε-greedy策略进行动作选择和评估;而Q-Learning为Off-Policy算法,评估时选取下一状态中估值最大的动作。相比动态规划和蒙特卡洛方法,TD算法结合了自举更新与样本更新的优势,实现边行动边学习。文章通过生动的例子解释了两者的差异,并提供了伪代码帮助理解。

前言

 前两期我们介绍了动态规划算法,还有蒙特卡洛算法,不过它们对于状态价值函数的估值都有其缺陷性,像动态规划,需要从最下面向上进行递推,而蒙特克洛则需要一个Episode(回合)结束才能对其进行估值,有没有更直接的方法,智能体能边做动作,边估值一次,不断学习策略?答案是有的。这就是本期需要介绍的算法,时间差分法(Time Difference,TD)法。本期将介绍两个典型经典的TD算法,SARSA算法 和 Q-learing算法。它们都是无模型强化学习方法,直接跟环境进行交互来估算动作价值函数。

前期回顾


强化学习:基础知识篇(包含Gym库的简单实践)——手把手教你入门强化学习(一)
强化学习:Markov决策过程(MDP)——手把手教你入门强化学习(二)
强化学习:实践理解Markov决策过程(MDP)——手把手教你入门强化学习(三)
强化学习:动态规划求解最优状态价值函数——手把手教你入门强化学习(四)
强化学习:蒙特卡罗求解最优状态价值函数——手把手教你入门强化学习(五)

一、SARSA算法

我们可以看到SARSA其实就是“状态/动作/奖励/状态/动作”(State-Action-Reward-State-Action)。该算法利用
$$R_{t}+1+\gamma q_{t}(S_{t+1},A_{t+1})$$
得到单步时序差分目标Ut,进而更新q(St,At)。该算法的更新式为:
image.png
简单来看,实际上公式就是:更新后的Q值=更新前的Q值+某种修正,这个某种修正里,我们用了部分真实值,不像蒙特卡洛方法用了全部的真实值。部分真实值就是R,同理这里a是学习率。
通俗意义上,我们可以这样理解,举个例子,我们开车从A->B,现在初始值Q(A->B)是100min,一般是我们跑完A->B看看花了多少时间,然后用真实值去更新这个结果,但这个需要跑完全程,现在我们可以换个思路,我们在A-B中间找个C,A->C->B,我们只跑A->C,然后用A->C+Q(C,B)系统给的初始值,用这个跟Q(A,B)去做差,然后用这个去更新Q(A,B),这样我们每一步走的都可以去更新,不用跑完全程,这个就类似于这个算法,我们跑到C就是获得真实奖励R,然后用这个+$\gamma Q(S',A')-Q(S,A)$去更新Q(S,A),也就是去修正Q。

还有一个重要的点,这是个On-Policy算法,也就是同策略算法,它的行动策略和评估策略是同一套策略。这个我们需要跟待会的Q-Learning算法做对比。
行动策略,就是我们Q(s,a)里的a我们应该怎么选择,SARSA这里采取的方法就是ε-greedy方法,方法有两个要点。
· 令ε取一个0和1之间的数字,ε是概率。我们用ε概率随机选择一个动作。
· 以1− ε的概率,让机器人做
$$a^{*}=argmax_{a\in A}Q(s,a)$$
的动作,也就是选择Q(s,a)中能够产生最高估值的动作a。
举个例子:假设你在选走哪条路,有两条路,一条是新路线,一条是你已知最快的路线,如果 ε=0.1,表示你有 10% 的概率随机选路,90% 概率选当前已知最快的路。很好理解这个策略吧,能保证我们拥有一定的好奇心,但大部分还是向更好的路线走。
而评估策略就是Q(s',a'),这里的a‘我们应该怎么选择,这个SARSA选择的是同策略,还是ε-greedy方法。
我们可以看一下SARSA算法的伪代码:

初始化函数Q(sa),令任何一个终止状态的Q值都为0
对于每个Episode循环
      设置初始状态S
      根据Q函数与状态S,选择动作A(例如ε−greedy方法)
      对于每个Step循环
          做一个动作A,观测R和S′
          根据Q函数和状态S′,选择动作A′(例如ε−greedy方法)
          赋值:Q(S,A)←Q(S,A)+a[R+γQ(S′,A′)−Q(S,A)]
          赋值:S←S′,A←A′
      直到S是终止状态

这个根据上面的推导过程,我们已经很清楚了,用某种修正去更新Q。

二、Q-Learning算法

Q-Learning算法仍然是一个TD算法。它与SARSA算法不同,它是Off-Policy(离线),也就是离线的,区别就是它的行动策略跟评估策略不同。我们先看一下它的更新公式:
image.png
它跟SARSA算法唯一的不同就是它多了一个max,也就是评估策略的不同,Q-Learning这里很明确,转移的下一个状态,我只看哪个动作a’能取得最大的估值,我就才用哪一个,而不是我们之前提到的ε-greedy策略。
再以上面选路举例子:还是面临两个选择,现在这个策略告诉我们,我们应该只选最快到底的,不管路况怎么样,如果它堵车我们也选择它。
我们看一下伪代码:
image.png
我们可以看到跟SARSA算法,唯一不同的就是行动策略的不同。
SARSA是保守派,我这次发现堵车,可能下次我就不走这里了。而Q-learning如果这次堵车,下次我还选这里,因为这里最快啊。

三、总结

好的,至此,两个算法都讲清楚了,我们现在做个总结,它们两都是TD算法,TD算法是介于蒙特卡罗方法和动态规划之间的强化学习方法,它结合了动态规划的自举更新以及蒙特卡洛算法的样本更新。


写在最后

 如果想要更深入强化学习的内容,关注我,下期更精彩,感兴趣的友友也可以关注我的csdn账号。
https://blog.csdn.net/qq_53769632?spm=1000.2115.3001.5343


创作不易,求关注,点赞,收藏,谢谢~
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
10天前
|
机器学习/深度学习 存储 算法
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
本文系统讲解从基本强化学习方法到高级技术(如PPO、A3C、PlaNet等)的实现原理与编码过程,旨在通过理论结合代码的方式,构建对强化学习算法的全面理解。
46 10
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
|
3月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
675 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
4月前
|
机器学习/深度学习 算法
强化学习之父Richard Sutton给出一个简单思路,大幅增强所有RL算法
Richard Sutton领导的团队提出了一种称为“奖励中心化”的方法,通过从观察到的奖励中减去其经验平均值,使奖励更加集中,显著提高了强化学习算法的性能。该方法在解决持续性问题时表现出色,尤其是在折扣因子接近1的情况下。论文地址:https://arxiv.org/pdf/2405.09999
138 15
|
5月前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法及应用
探索人工智能中的强化学习:原理、算法及应用
|
14天前
|
存储 算法 调度
基于和声搜索优化算法的机器工作调度matlab仿真,输出甘特图
本程序基于和声搜索优化算法(Harmony Search, HS),实现机器工作调度的MATLAB仿真,输出甘特图展示调度结果。算法通过模拟音乐家即兴演奏寻找最佳和声的过程,优化任务在不同机器上的执行顺序,以最小化完成时间和最大化资源利用率为目标。程序适用于MATLAB 2022A版本,运行后无水印。核心参数包括和声记忆大小(HMS)等,适应度函数用于建模优化目标。附带完整代码与运行结果展示。
|
7天前
|
算法 安全 数据安全/隐私保护
基于AES的遥感图像加密算法matlab仿真
本程序基于MATLAB 2022a实现,采用AES算法对遥感图像进行加密与解密。主要步骤包括:将彩色图像灰度化并重置大小为256×256像素,通过AES的字节替换、行移位、列混合及轮密钥加等操作完成加密,随后进行解密并验证图像质量(如PSNR值)。实验结果展示了原图、加密图和解密图,分析了图像直方图、相关性及熵的变化,确保加密安全性与解密后图像质量。该方法适用于保护遥感图像中的敏感信息,在军事、环境监测等领域具有重要应用价值。
|
21天前
|
算法 数据可视化 BI
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
本程序基于免疫算法实现物流仓储点选址优化,并通过MATLAB 2022A仿真展示结果。核心代码包括收敛曲线绘制、最优派送路线规划及可视化。算法模拟生物免疫系统,通过多样性生成、亲和力评价、选择、克隆、变异和抑制机制,高效搜索最优解。解决了物流仓储点选址这一复杂多目标优化问题,显著提升物流效率与服务质量。附完整无水印运行结果图示。
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
|
10天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本项目基于MATLAB2022a开发,提供无水印算法运行效果预览及核心程序(含详细中文注释与操作视频)。通过结合时间卷积神经网络(TCN)和遗传算法(GA),实现复杂非线性时间序列的高精度预测。TCN利用因果卷积层与残差连接提取时间特征,GA优化超参数(如卷积核大小、层数等),显著提升模型性能。项目涵盖理论概述、程序代码及完整实现流程,适用于金融、气象、工业等领域的时间序列预测任务。
|
10天前
|
算法 定位技术 数据安全/隐私保护
基于遗传优化算法的多AGV栅格地图路径规划matlab仿真
本程序基于遗传优化算法实现多AGV栅格地图路径规划的MATLAB仿真(测试版本:MATLAB2022A)。支持单个及多个AGV路径规划,输出路径结果与收敛曲线。核心程序代码完整,无水印。算法适用于现代工业与物流场景,通过模拟自然进化机制(选择、交叉、变异)解决复杂环境下的路径优化问题,有效提升效率并避免碰撞。适合学习研究多AGV系统路径规划技术。
|
18天前
|
算法 数据安全/隐私保护
基于GA遗传算法的斜拉桥静载试验车辆最优布载matlab仿真
本程序基于遗传算法(GA)实现斜拉桥静载试验车辆最优布载的MATLAB仿真,旨在自动化确定车辆位置以满足加载效率ηq(0.95≤ηq≤1.05)的要求,目标是使ηq尽量接近1,同时减少加载车辆数量和布载耗时。程序通过迭代优化计算车辆位置、方向、类型及占用车道等参数,并展示适应度值收敛过程。测试版本为MATLAB2022A,包含核心代码与运行结果展示。优化模型综合考虑车辆总重量、间距及桥梁允许载荷密度等约束条件,确保布载方案科学合理。

热门文章

最新文章