强化学习代码实战(1)

news2024/9/17 7:31:42

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

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.coloradmin.cn/o/1126276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3588平台开发系列讲解(显示篇)MIPI DSI协议介绍之分层

🚀返回专栏总目录 文章目录 一、MIPI DSI 分层1.1、应用层1.2、协议层1.3、链路层1.4、物理层沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 DSI 全称是 Display Serial Interface,是主控和显示模组之间的串行连接接口。 MIPI DSI 接口分为数据线和时钟线,均为…

螺旋矩阵的探索

输出n阶螺旋矩阵中指定位置的元素值 问题描述: 问题分析: 经观察,易知螺旋矩阵由内层至外层依次递减,为以 n 2 n^2 n2为首项,以-1为公差的等差数列 。分奇数阶和偶数阶矩阵分类讨论,分别归纳得 n 2 n^2 n…

大数据Flink(一百零一):SQL 表值函数(Table Function)

文章目录 SQL 表值函数(Table Function) SQL 表值函数(Table Function) Python UDTF,即 Python TableFunction,针对每一条输入数据,Python UDTF 可以产生 0 条、1 条或者多条输出数据,此外,一条输出数据可以包含多个列。比如以下示例,定义了一个名字为 split 的Pyt…

Docker命令手册

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。 记录平时用的比较多的Docker命令。 docker学习地址 1、docker停止并删除运行的容器 首先查看…

Postgres 和 MySQL 应该怎么选?

PostgreSQL和MySQL是两个流行的关系型数据库管理系统(DBMS)。它们都具有一些相似的功能,但也有一些区别。 在选择使用哪个DBMS时,需要考虑多个因素,包括性能、可扩展性、安全性、功能丰富度、生态系统支持等。下面是对…

软件工程第七周

内聚 耦合 (Coupling): 描述的是两个模块之间的相互依赖程度。控制耦合是耦合度的一种,表示一个模块控制另一个模块的流程。高度的耦合会导致软件维护困难,因为改变一个模块可能会对其他模块产生意外的影响。 内聚 (Cohesion): 描述的是模块内部各个元素…

x-ui部署(与宝塔共存)

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家来访。 x-ui是一个搭建节点的工具,有一键安装脚本,可以快速的部署。但是如果我…

企业如何保护机密文件安全

企业如何保护机密文件安全,数据加密技术有哪些 随着公司业务的不断发展,公司机密文件的保护是一家公司不可忽视的问题。机密文件包含了企业的核心信息,如客户资料、产品方案、财务数据等。 安企神数据防泄密系统下载试用 企业数据一旦泄露…

Springboot中开启多线程,实现异步非阻塞、异步阻塞、有无返回值的场景

需求背景 近期项目已上线,闲着没事就对功能进行性能测试,测着测着感觉部分功能效果不是很理想,于是就想着使用多线程的方式对部分接口进行优化,顺便在这里记录下如何选择使用多线程。 实现多线程有两种开启方式:分别…

学习笔记-MongoDB(命令增删改查,聚合,权限管理,索引,java使用)

基础概念 1 什么是mogodb? MongoDB 是一个基于分布式文件/文档存储的数据库,由 C 编写,可以为 Web 应用提供可扩展、高性能、易部署的数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功…

Linux备份Docker的mysql数据并传输到其他服务器保证数据级容灾

目录 简介什么是容灾 ?容灾的分类容灾和备份有什么连系 ? 数据级容灾备份步骤1、scp命令:用于Linux之间复制文件和目录2、编写备份数据库脚本3、crontab定时任务执行脚本4、测试 应用级容灾业务级容灾 简介 为了防止客户系统的数据丢失&…

2023Etsy入驻攻略——防封安全

2023了,跨境电商现在上车还来得及吗?当然!Etsy是一个低成本低竞争高回报的平台,相较于其他电商平台,他的佣金非常低,利润率更高,非常合适跨境小白入局。 但由于目前Etsy关闭了中国大陆卖家的注…

论文解读:Large Language Models as Analogical Reasoners

一、动机 大模型在各种类型的NLP任务上均展现出惊艳的表现。基于CoT propmt能够更好地激发大模型解决复杂推理问题的能力,例如解决数学解题,可以让模型生成reasoning path。现有的经典的CoT方法有few-shot cot、zero-shot cot等。然后现有的cot面临两个…

C++进阶篇2---多态

1.多态的概念 多态的概念:通俗来说,就是多种形态,具体点就是当不同的对象,去完成某个行为,会产生不同的状态 举个例子:同样是吃饭,狗吃狗粮,猫吃猫粮,不同的对象&#…

Javascript基础-DOM

文章目录 WEB APISDOM-Document Object Model概念DOM对象获取DOM对象通过css选择器获取其他获取方式 操作元素内容操作元素属性定时器 DOM-事件监听概念案例-关闭广告老版本事件类型事件对象获取事件对象属性 环境对象回调函数 事件流事件捕获事件冒泡阻止冒泡阻止默认行为 解绑…

【JAVA学习笔记】40 - 抽象类、模版设计模式(抽象类的使用)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/abstract_ 一、抽象类的引入 很多时候在创建类的时候有一个父类,比如animal类,他的子类会有各种方法,为了复用需要进行方法的重写&…

微信小程序OA会议系统个人中心授权登入

在我们的完成微信登入授权之前,首先我们要完成我们前面所写的代码,如果有不会的大家可以去看以下我发的前面几个文章链接我发下面了,各位加油! 微信小程序OA会议系统数据交互-CSDN博客 微信小程序会议OA系统其他页面-CSDN博客 …

基于nodejs+vue视频网站的设计与实现mysql

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

机器学习---CNN(创建和训练一个卷积神经网络并评估其性能)上

1. cnn_operations模块 cnn_operations类 staticmethoddef calc_loss(Y, tilde_Y):# 训练样本个数n_samples Y.shape[0]# 网络代价loss 0for i in range(n_samples):loss np.sum((Y[i, :] - tilde_Y[i, :])**2)loss / (2 * n_samples)return loss计算网络代价: …

编程自学路线:开源免费的教育资源 | 开源专题 No.40

trekhleb/javascript-algorithms Stars: 174.1k License: MIT 这个项目是一个包含许多流行算法和数据结构的 JavaScript 示例。该项目提供了各种不同类型的数据结构,如链表、队列、栈等,并且还提供了各种常见的算法实现,如排序算法、搜索算…