【强化学习入门】基于DDPG的强化学习控制器设计

  最近在看控制领域研究热门–强化学习相关的东西,跟着matlab官方强化学习教程一边看一边学,感觉入门门槛略高,需要补很多机器学习相关的知识,高数概率论那些,摸索了个把月感觉现在只大概会用,原理啥的还没搞透彻。

跟着学

  在看完官方教程rlWaterTank水箱模型之后,自己也想跟着搭一个类似的模型,用强化学习控制器替代PID控制器,在尝试直接使用强化学习工具箱训练和通过.m文件生成训练两种方式后,发现还是.m文件靠谱些,强化学习工具箱感觉有点诡异,收敛不太好。

强化学习

  • agent:智能体,强化学习控制器
  • env:环境,观测向量与输出动作的定义
  • reward:奖励函数,目前看来使用定性定量目标和使用连续可导的函数均比较合适
  • 强化学习算法
    – 基于价值函数求解:MD、DP、Q-Learning等
    – 基于策略梯度求解:DPG、SAC、TD3、DDPG等

  官方案例用的是DDPG算法,于是我对DDPG进行了一些了解,DDPG结合了深度神经网络和强化学习策略,通过神经网络来拟合策略函数和价值函数,包含两大部分:Critic和Actor,Critic输出当前状态下的价值函数,Actor输出智能体的动作,DDPG适用于连续动作空间的任务。DDPG原理的通俗理解==>深度确定性策略梯度 DDPG

跟着做

  随便找了个二阶模型,给定信号是一个在2s的阶跃信号,看看强化学习控制器效果怎么样

DDPG算法参数设置:

  • 最大迭代次数 3000
  • 仿真时长Ts 10s
  • 折扣因子 0.8
  • 学习率 1e-3、1e-4
  • 奖励函数和水箱模型设置成一样的
  • 训练终止条件:AverageReward到1800

训练过程
  在训练到1868次的时候AverageReward达到了1859,满足了停止迭代条件,训练总时长1h11mins,训练过程逐渐趋于稳定,看样子是训练到极限了。

训练结果
  对阶跃信号的跟踪效果,将其与PID控制器进行比较,PID控制器参数给20-1-0,可以看到在初始未阶跃时,PID的控制效果比强化学习控制器效果好,跟踪更好,但是在阶跃后,强化学习控制器的振荡幅度以及振荡频率比PID控制好很多,不过稳态误差还是PID要好点。

总结

  综上可见,强化学习控制器与PID相比各有优劣,不过由于强化学习的训练时长和训练效率很不确定,始终感觉强化学习很不稳定,对参数也比较敏感,有点玄学,没想象中好用。
  另外,目前看来,强化学习对于阶跃和斜坡的给定输入来说比较合适,还能跟得上,像正余弦这种强化学习就搞不明白了,得要更多的训练,时间和成本都上去了,并且强化学习目前也只能停留于理论层面,实际落地也还早,感觉强化学习缺点大于优点,总的来说,对强化学习控制器不太看好。(期待后续能推翻此观点 : )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/611377.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git 常用命令 git怎么撤销命令 持续更新中!!!!

基本流程 # 拉取仓库 git clone 仓库地址 # 拉取最新版本 git pull # 本地提交 git add . git commit -m "本次提交信息!" # 推送上云 git push分支 # 创建分支 git checkout -b cart # 删除本机的分支 git branch -d cart # 切换分支 本地切换到主分支…

热爱电子值得做的电子制作实验

加我zkhengyang,进嵌入式音频系统研究开发交流答疑群(课题组) AM/FM收音机散件制作,磁带随声听散件,黑白电视机散件制作,功放散件制作,闪光灯散件制作,声控灯散件,等等,可提高动手能…

postman常用功能超全使用教程

Postman 使用 一、Postman 简介 Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求(如:get/post/delete/put…等等),将请求数据发送至服务端,获取对应的响应结果。 二、Postman 功能简介 三、Postman 下载安装 Post…

多模态模型Mini-Gemini:代码模型数据均开源,MiniCPM小钢炮2.0全家桶四连发,可以在Android 手机端上运行的大模型,效果还不错

多模态模型Mini-Gemini:代码模型数据均开源,MiniCPM小钢炮2.0全家桶四连发,可以在Android 手机端上运行的大模型,效果还不错。 多模态模型Mini-Gemini:代码模型数据均开源 香港中文大学终身教授贾佳亚团队提出多模态模…

如何将手写数学公式识别?识别工具在这里

如何将手写数学公式识别?在日常学习中,将手写数学公式识别出来可以极大地提高我们的学习效率。通过这一技术,我们能够快速、准确地将手写公式转化为可编辑的文本,省去了繁琐的输入过程。这不仅节约了时间,还减少了因输…

使用Python实现DataFrame中奇数列与偶数列的位置调换

目录 一、引言 二、背景知识 三、问题描述 四、解决方案 五、案例分析与代码实现 六、技术细节与注意事项 七、扩展与应用 八、封装为函数 九、错误处理与健壮性 十、性能优化 十一、总结与展望 一、引言 在数据处理和分析中,数据框(DataFra…

Oracle count的优化-避免全表扫描

Oracle count的优化-避免全表扫描 select count(*) from t1; 这句话比较简单,但很有玄机!对这句话运行的理解,反映了你对数据库的理解深度! 建立实验的大表他t1 SQL> conn scott/tiger 已连接。 SQL> drop table t1 purge…

Windows下安装人大金仓数据库

1、点击安装包进行安装 2、双击进行安装 3、点击确定 4、接着选择下一步 5、勾选接收 6、选择授权文件 7、显示授权文件信息 8、选择安装位置 9、点击安装 10、点击下一步 11、正在进行安装 12、设置密码。123456 13、系统正在进行配置 14、安装完成 15、登…

17 【Aseprite 作图】参考图和颜色

参考图 Aseprite 作图,“打开 - 一张参考图”,再把参考图拉到右边,就可以得到参考图和缩略图 取消选区 通过“选择 - 取消选择”,可以 取消选区 复制参考图的颜色 打开参考图后,参考图的调色板就会出现参考图所有的…

【智能优化算法】白鲨智能优化算法(White Shark Optimizer,WSO)

白鲨智能优化算法(White Shark Optimizer,WSO)是期刊“KNOWLEDGE-BASED SYSTEMS”(中科院一区期刊 IF8.6)的2022年智能优化算法 01.引言 白鲨智能优化算法(White Shark Optimizer,WSO)的核心理念和基础灵感来自大白鲨的行为,包括它们在导航和…

Freepik图形资源网收购AI图像放大工具Magnific:图像放大技术的融合与创新

近日,全球最大的高质量图形资源网站Freepik宣布收购领先的AI图像放大工具Magnific,这一举措标志着Freepik在图像处理技术领域的重大突破与扩张。Magnific以其独特的高分辨率放大、细节重构与增强、创意滑块调整等功能,赢得了广泛的市场认可和…

vivado新版本兼容老版本,vitis classic兼容sdk教程

new version: vivado版本2023.2 和vitisv classic 2023.2 old version: vivado 2018.3以及之前的版本 打开工程 自动升级到当前版本,选择OK 点击Yes,合并当前的目录架构 点击OK 点击Report IP status 勾选要升级的IP核,点击升级 在项目工程文件夹…

如何编译不同目录下的两个文件

1.直接编译 2.打包成动静态库进行链接

【Redis】RDB持久化和AOF 持久化

分布式缓存 单点 Redis 的问题 数据丢失(持久化)并发能力不如集群(主从集群、读写分离)Redis宕机导致服务不可用(Redis哨兵)存储能力差(分片集群) Redis 持久化 RDB 持久化 什么…

vue3对象数组格式的动态表单校验

如你有一个表单&#xff0c;表单内容是对象&#xff0c;但是对象内还有可动态循环的数组进行动态表单校验。 效果如图&#xff1a;查看源码 页面内容&#xff1a; <div class"arrForm-Box"><el-form :model"state.formData" :rules"rule…

第十一篇:操作系统新纪元:智能融合、量子跃迁与虚拟现实的交响曲

操作系统新纪元&#xff1a;智能融合、量子跃迁与虚拟现实的交响曲 1 引言 在数字化的浪潮中&#xff0c;操作系统如同一位智慧的舵手&#xff0c;引领着信息技术的航船穿越波涛汹涌的海洋。随着人工智能、物联网、量子计算等前沿技术的蓬勃发展&#xff0c;操作系统正站在一个…

【HMWeb】HTML使用Leaflet实现本地离线地图Gis应用

下载Leaflet 官网下载&#xff1a;https://leafletjs.com/reference.html CSDN&#xff1a;https://download.csdn.net/download/hmxm6/89291989 选择版本号 添加html文件 加入代码 <!DOCTYPE html> <html lang"en"> <head><meta charset&qu…

Transformers中加载预训练模型的过程剖析

使用HuggingFace的Transformers库加载预训练模型来处理下游深度学习任务很是方便,然而加载预训练模型的方法多种多样且过程比较隐蔽,这在一定程度上会给人带来困惑。因此,本篇文章主要讲一下使用不同方法加载本地预训练模型的区别、加载预训练模型及其配置的过程,藉此做个记…

设置LCD为第二终端

我一直使用xshell端&#xff0c;开发板通过串口和 xshell进行通信。 调试好LCD 驱动之后&#xff0c;可以设置 LCD 作为终端&#xff0c;也就是开发板使用自己的显示 设备作为自己的终端&#xff0c;然后接上键盘就可以直接在开发板上敲命令了&#xff0c;将 LCD 设置为终端控制…

服务器内存占用不足会怎么样,解决方案

在当今数据驱动的时代&#xff0c;服务器对于我们的工作和生活起着举足轻重的作用。而在众多影响服务器性能的关键因素当中&#xff0c;内存扮演着极其重要的角色。 服务器内存&#xff0c;也称RAM&#xff08;Random Access Memory&#xff09;&#xff0c;是服务器核心硬件部…