强化学习代码实战(1)

机器人领域:控制,规划,感知等都可以用,可以把它作为一个优化过程,那么任何需要优化的问题都可以用它解决。

1.应用

深度学习:智能感知,解决智能如何理解这个世界的问题。

强化学习:智能决策,解决智能体对这个世界做什么的问题。

相同点:都是从数据中学习,

不同点:深度学习需要静态的标签数据,强化学习需要动态(交互)的标签数据(宏观上),深度学习,主要识别和分类目标,强化学习解决最优决策问题。

2.单智能体强化学习

      强化学习损失函数是回报,下图第一个式中,J是优化目标,\mu ^{\pi }是state分布,\pi是在状态s时选a的概率,R是在状态s时选a的回报。深度学习求解优化目标用梯度下降,但强化学习的损失函数无写出解析形式,所以成为一个对偶问题,也就是求最优值函数,用贝尔曼方程求解。

      强化学习最开始是一种表格型方法,常用Q(s,a)表示,但很多任务中,s和a是无穷尽的,这就带来了维数灾难问题,导致计算机无法求解,后来就用CNN(卷积神经网络)拟合Q,出现了DQN,但DQN,有存在过优问题,后来用DDQN解决,在实际应用中,发现RNN(循环神经网络),在有些任务中效果更好,所以又出现了DRQN,在对数据进行学习时DQN一般是随机选择,但如果有策略性的选择数据,比方说用加权法,有时候效果更好,所以出现了Prioritized DQN,DQN中评估时只有值函数,后来又加入了优势值函数进行评估,得到了更好的效果,又出现了Dueling DQN,最后一个改变略显革命性,Distributioal DQN(分布式深度强化学习),DQN中我们学习(优化)的目标是R的期望值,但累计回报误差很大,而分布式,是想把值函数的概率分布学习出来。

      进一步对模型已知问题的求解,就是对HJB方程(偏微分)方程求解,偏微分方程一般没有数值解,除非是二次可解析的用最优控制(LQR)求解,二维以上这种方法就不能搞了,同样会遇到维数灾难问题,所以用神经网络逼近,于是出现了自适应动态规划方法(ADP)。以及后面的群智能和基于模型的强化学习方法(都是解决数据高维问题)。

      对于模型未知,提出了策略搜索方法,首先提出策略梯度的方法(似然率),但这个方法,方差很大,所以又出现了值梯度方法,这种方法方差小(PG,PPO,SAC)。以及后面出现的基于AC(DDPG,A3C),基于统计的方法(MPO),所有的方法都是为了解决方法问题。

注意一下值梯度方法的公式。

 3.多智能体强化学习

      单智能体强化学习是多智能体强化学习的特殊形式。一种动态的马尔可夫过程,一般用纳什均衡策略解决。常用方法MADDPG,CoMa,MAAC,AlphaStar,其中A代表attention,AlphaStar用了博弈理论,也是一个超级工程,集合了不同神经网络,像卷积,循环等。

4.困境和挑战

 

 5.学习路线图

参考文献

1.深入浅出强化学习 编程实战 郭宪

2.博文视点学院

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云 CodeArts Snap 智能编程助手 PyCharm 插件安装与使用指南

1 插件安装下载 1.1 搜索插件 打开 PyCharm,选择 File,点击 Settings。 选择 Plugins,点击 Marketplace,并在搜索框中输入 Huawei Cloud CodeArts Snap。 1.2 安装插件 如上图所示,点击 Install 按钮安装 Huawei Cl…

C++IO流

文章目录 CIO流1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4 stringstream的简单介绍 CIO流 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在…

vue3 v-model的使用

🙂博主:锅盖哒 🙂文章核心:vue3 v-model的使用 目录 前言 什么是v-model? 基本的v-model用法 自定义组件中的v-model 前言 当涉及到Vue.js 3的前端开发时,v-model是一个不可或缺的工具,它…

Jmeter性能测试 —— TPS拐点寻找

寻找TPS性能拐点1、准备脚本①在本地电脑调试Jmeter压测脚本 ②上传到压测机Jmeter所在的服务器 2、执行压力测试①执行压测脚本 jmeter –n –t xianchengzuse.jmx ②记录业务压测数据 3、监控服务器性能指标 ①监控CPU输入top命令 ②监控内存 free –m ③jstat监控sweep和…

高效使用python之xlwt库编辑写入excel表内容

头条号:科雷软件测试 学习目录 了解下电脑中的excel表格文件格式 安装xlwt库 xlwt库写入表格内容 1 导入xlwt库 2 用一个图展示下xlwt常用的函数 3 往表格写入一些内容并保存 4 设置样式 1 先初始化XFStyle 2 设置字体font 3 设置边框 4 设置对齐方式 …

精讲stable diffusion的controlNet插件

controlNet插件是stable diffusion的一个重要插件,甚至可以说正是因为有了controlNet插件,stable diffusion才会具有midjourney所不具备的独特魅力! 我们今天就一起来学习下controlNet插件的安装和每个模型的用法 插件主页 独立的controlN…

迷你洗衣机哪个牌子好又实惠?小型洗衣机全自动

现在洗内衣内裤也是一件较麻烦的事情了,在清洗过程中还要用热水杀菌,还要确保洗衣液是否有冲洗干净,还要防止细菌的滋生等等,所以入手一款小型的烘洗全套的内衣洗衣机是非常有必要的,专门的内衣洗衣机可以最大程度减少…

自然语言处理---Transformer机制详解之Self attention机制详解

1 Self-attention的特点 self-attention是一种通过自身和自身进行关联的attention机制, 从而得到更好的representation来表达自身. self-attention是attention机制的一种特殊情况,在self-attention中, QKV, 序列中的每个单词(token)都和该序列中的其他所有单词(to…

在edge浏览器中安装好了burp的ca证书,浏览器依旧不能访问https的原因

在edge浏览器中安装好了burp的ca证书,浏览器依旧不能访问https的原因 1.SwitchyOmega代理插件设置2.CA证书方法1方法2 1.SwitchyOmega代理插件设置 严格安装以下图片执行,不可少写或多写 2.CA证书 方法1 下载好证书,先导入到edge浏览器的中…

基于.Net CEF 实现 Vue 等前端技术栈构建 Windows 窗体应用

零、参考资料 1、https://github.com/cefsharp/CefSharp/wiki/Quick-Start-For-MS-.Net-5.0-or-greater 2、https://github.com/cefsharp/CefSharp/wiki/Quick-Start 3、https://github.com/cefsharp/CefSharp/wiki/General-Usage#javascript-integration 一、安装 Nuget 包…

MyBatis篇---第五篇

系列文章目录 文章目录 系列文章目录一、MyBatis 中见过什么设计模式?二、MyBatis 中比如 UserMapper.java 是接口,为什么没有实现类还能调用? 一、MyBatis 中见过什么设计模式? 二、MyBatis 中比如 UserMapper.java 是接口&#…

【JavaEE】网络编程---UDP数据报套接字编程

一、UDP数据报套接字编程 1.1 DatagramSocket API DatagramSocket 是UDP Socket,用于发送和接收UDP数据报。 DatagramSocket 构造方法: DatagramSocket 方法: 1.2 DatagramPacket API DatagramPacket是UDP Socket发送和接收的数据报。…

vue el-dialog弹出框自定义指令实现拖拽改变位置-宽度-高度

前言 在实际开发中我们经常使用el-dialog弹出框做表单,一般情况都是居中。遮挡到了一部分数据 当我们想要查看弹出框下面的数据时,就只能先把弹出框关闭,查看完数据之后在打开弹框 我们通过动态样式,和鼠标事件就可以实现。但自…

最详细STM32,cubeMX 超声波测距

这篇文章将详细介绍 STM32使用 cubeMX驱动超声波测距 。 文章目录 前言一、超声波模块测距原理 : 二、cubeMX 配置三、实验程序总结 前言 实验材料:STM32F103C8T6开发板, HC-SR04 超声波模块。所需软件:keil5 , cubeM…

Ubuntu22.04系统 Cgroup v2 切换成v1

使用v1导致docker容器启动失败 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted Issue #4072 lxc/lxc GitHub https://github.com/lxc/lxc/issues/4072 原因:ubuntu自21.04版本后的版本(不包含21.04)linux内…

nginx创建站点“nginx: [emerg] host not found in upstream”错误

nginx配置语法上没有错误的,只是系统无法解析这个域名,所以报错. 解决办法就是添加dns到/etc/resolv.conf 或者是/etc/hosts,让其能够解析到IP。具体步骤如下: vim /etc/hosts 修改hosts文件,在hosts文件里面加上一句 127.0.0.1 localhost.localdomain x…

SM4国密4在jdk1.7版本和jdk1.8版本中的工具类使用

&#xff08;一&#xff09;首先&#xff0c;直接可用的工具类如下&#xff1a; 1、JDK1.8版本&#xff0c;使用hutool工具类实现SM4对称加密&#xff0c;pom依赖如下&#xff1a; <!-- Hutool 工具包 --><dependency><groupId>cn.hutool</groupId><…

滤波器设计工具简介

目录 快速入门 设计滤波器 查看其他分析 更改轴单位 标记数据点 优化设计 更改分析参数 导出滤波器 生成 MATLAB 文件 量化滤波器 目标 其他功能 此示例说明如何使用方便的滤波器设计工具替代命令行滤波器设计函数。 滤波器设计工具是 Signal Processing Toolbox™…

SpringCloud复习:(1)netflix包里的DiscoveryClient类

DiscoveryClient类实现了EurekaClient接口 它的主要作用&#xff1a;服务注册&#xff0c;服务续约&#xff0c;服务下线&#xff0c;获取服务列表。 initScheduledTasks方法用来开启定时任务来完成上述功能。 上图中的代码用来从服务器定期&#xff08;默认30秒&#xff09;…

[黑马程序员SpringBoot2]——基础篇1

目录&#xff1a; SpringBoot入门案例&#xff08;Idea联网版&#xff09;SpringBoot入门案例&#xff08;官网创建版&#xff09;SpringBoot入门案例&#xff08;阿里云版&#xff09;SpringBoot入门案例&#xff08;手工制作版&#xff09;教你一招&#xff0c;隐藏文件或文件…