【深度强化学习】值函数逼近的详解(图文解释)

简介: 【深度强化学习】值函数逼近的详解(图文解释)

觉得有帮助请点赞关注收藏~~~

值函数逼近

对于取实数值R的动作值函数Q(s,a)来说,它是状态空间S和动作空间A的笛卡尔积到实数集的映射:S×A→R

该映射问题可以看作是机器学习中的回归问题,因此,求解回归问题的模型都可以用来求得该映射。

其基本方法一般是先确定逼近的结构,然后通过样本集来迭代优化结构的参数。这种事先确定结构,再优化参数的逼近方法,称为参数化逼近。参数化逼近又分为线性逼近和非线性逼近,它们分别采用线性和非线性的结构,前者如线性回归模型,后者如神经网络模型等等。

求解回归问题的关键问题包括模型、样本、损失函数和优化等方面。

1.模型

将逼近动作值函数Q(s,a)的模型结构记为Q ̂(x(s,a),θ),其中θ是待优化的参数向量,x(s,a)是由s和a按全排列组成的向量,共有|S|×|A|个可能取值。x(s,a)也可以看作是通过特征工程从状态和动作中提取的特征组成的向量。

当采用线性逼近时,动作值函数的逼近可表示为:

其中,指定x^(0)=1,指定θ^(0)=b是线性模型的偏置。

2.样本  

记长度为T的轨迹τ=(s_0,a_0,s_1,a_1,…s_T−1,a_T−1),立即回报序列为:R=(r_1,r_2,…,r_T),累积折扣回报序列为:G=(G_0,G_1,…,G_T−1),其中G_t=r_t+1+γr_t+2+γ^2r_t+3+…+γ^T−1−tr_T=∑_k=0^T−1−t▒γ^kr_t+1+k。

基于蒙特卡罗法生成的训练样本为:s_t=(x(s_t,a_t),G_t),其中,x(s_t,a_t)是实例,G_t是对应的标签。

基于时序差分法生成的训练样本为:s_t=(x(s_t,a_t),r_t+1+γQ ̂(x(s_t+1,a_t+1),θ)),其中,x(s_t,a_t)是实例,r_t+1+γQ ̂(x(s_t+1,a_t+1),θ)是对应的标签。

3.损失函数

对基于蒙特卡罗法生成的训练样本来说,单个样本s_t=(x(s_t,a_t),G_t)产生的平方误差损失函数为:

对基于时序差分法生成的训练样本来说,单个样本s_t=(x(s_t,a_t),r_t+1+γQ ̂(x(s_t+1,a_t+1),θ))产生的平方误差损失函数为:

4.优化

参数θ的优化可采用多种方法,常用梯度下降法,其迭代关系式为:

如果采用线性逼近,对蒙特卡罗法生成样本的损失函数,梯度为:

如果采用线性逼近,对时序差分法生成样本的损失函数,梯度为:

上式只对预测值x(s_t,a_t)θ_i^T进行了求导,忽略了对样本标签(r_i+1+γx(s_t+1,a_t+1)θ_i^T)的求导,可见此时并非完全的梯度法,此方法称为半梯度法。

基于值函数逼近的时序差分法基本流程

(2)和(4)步操作中的Q(s,a)用逼近函数Q ̂(x(s,a),θ)来计算。 当采用同策略的Sarsa法时,(5-1)步操作中的值函数的更新在参数化逼近中表现为参数θ的更新:

当采用异策略的Qlearning法时,(5-2)步中参数θ的更新采用贪心策略:

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
2040 4
|
6月前
|
开发工具 Android开发 开发者
用Flet打造跨平台文本编辑器:从零到一的Python实战指南
本文介绍如何使用Flet框架开发一个跨平台、自动保存的文本编辑器,代码不足200行,兼具现代化UI与高效开发体验。
820 0
|
存储 NoSQL 算法
文件上传下载系列——如何实现文件秒传
文件上传下载系列——如何实现文件秒传
|
机器学习/深度学习 自然语言处理 并行计算
|
前端开发 Java 测试技术
多商户入驻系统开发源码案例
多商户入驻系统的开发涉及需求分析、系统架构设计、开发实现、测试优化及部署上线等关键步骤。项目需明确核心功能,选择合适的技术栈,确保系统的稳定性、扩展性和用户体验,最终实现商业目标和长期成功。
|
机器学习/深度学习 存储 算法
基于Actor-Critic(A2C)强化学习的四旋翼无人机飞行控制系统matlab仿真
基于Actor-Critic强化学习的四旋翼无人机飞行控制系统,通过构建策略网络和价值网络学习最优控制策略。MATLAB 2022a仿真结果显示,该方法在复杂环境中表现出色。核心代码包括加载训练好的模型、设置仿真参数、运行仿真并绘制结果图表。仿真操作步骤可参考配套视频。
461 0
|
机器学习/深度学习 存储 人工智能
【博士每天一篇文献-算法】Memory aware synapses_ Learning what (not) to forget
本文介绍了一种名为“记忆感知突触”(Memory Aware Synapses, MAS)的终身学习方法,该方法通过无监督在线评估神经网络参数的重要性,并在新任务学习时对重要参数的更改进行惩罚,有效防止了旧任务知识的覆盖,实现了内存效率和性能提升,同时具有灵活性和通用性。
458 1
|
缓存 NoSQL 数据处理
原生php实现redis缓存配置和使用方法
通过上述步骤,你可以在PHP项目中配置并使用Redis作为高性能的缓存解决方案。合理利用Redis的各种数据结构和特性,可以有效提升应用的响应速度和数据处理效率。记得在实际应用中根据具体需求选择合适的缓存策略,如设置合理的过期时间,以避免内存过度消耗。
422 0
|
机器学习/深度学习 算法 Python
使用Python实现强化学习算法
使用Python实现强化学习算法
395 1
使用Python实现强化学习算法
|
机器学习/深度学习 人工智能 前端开发
AI计算机视觉笔记三:WEB端部署YOLOv5
本文档介绍了如何将YOLOv5目标检测模型部署到Web端的方法,包括基于Flask和Streamlit两种实现方案。首先创建Python虚拟环境并安装必要的依赖库。接着详细展示了Flask方案下的前端HTML页面与后端Python逻辑代码,该方案利用Flask框架搭建服务器,处理实时视频流,并显示检测结果。随后介绍了Streamlit方案,该方案更简洁直观,适合快速开发交互式的机器学习应用。通过`streamlit run`命令即可启动应用,支持图像、视频及实时摄像头的目标检测演示。两种部署方式各有优势,Flask灵活性高,适用于复杂项目;而Streamlit则易于上手,便于快速原型设计。
2015 0