【SARL】单智能体强化学习(Single-Agent Reinforcement Learning)《纲要》

news2024/12/26 11:58:26

        📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在👉强化学习专栏:

       【强化学习】- 【单智能体强化学习】(1)---《单智能体强化学习《纲要》》

单智能体强化学习(Single-Agent Reinforcement Learning)《纲要》

目录

0.什么是强化学习?

1. 举个简单例子

2. 强化学习的基本元素

3. 如何学习:试错法

4.单智能体强化学习

【SARL】单智能体强化学习系列文章:

【MADRL】多智能体深度强化学习《纲要》

5. 强化学习的应用实例

6. 总结


0.什么是强化学习?

        强化学习(Reinforcement Learning,简称 RL)是一种让机器“通过尝试和错误学习”的方法。它模拟了人类和动物通过经验积累来学会做决策的过程,目的是让机器或智能体能够在复杂的环境中选择最优的行为,从而获得最大的奖励。


1. 举个简单例子

        想象一下你是一个小孩,在一个游乐场里,你需要做出一些选择:玩蹦床、滑滑梯,还是去玩旋转木马上?每次你做出选择后,游乐场会给你一些奖励,比如玩蹦床后你感觉非常开心(给你奖励),滑滑梯后你感到害怕(没有奖励)。你不知道这些奖励会如何,但随着时间的推移,你学会了什么行为能带来更好的感觉。

        这个过程类似于强化学习中的“学习过程”。智能体(你)通过尝试不同的行为(选择玩不同的设施)来获得奖励,然后根据这些奖励来调整自己的行为,最终找出最好的选择。


2. 强化学习的基本元素

在强化学习中,系统主要包括以下几个部分:

  • 智能体(Agent):做决策的主体,像上面例子中的小孩,或者是一个机器人。
  • 环境(Environment):智能体所在的世界或场所,游乐场就是一个环境,智能体在这个环境中做出决策。
  • 状态(State):环境在某一时刻的具体情况,像游乐场里可能的状态就是“你现在站在哪个设施旁边”。
  • 动作(Action):智能体在某个状态下可以选择的行为,像“去玩蹦床”、“去滑滑梯”。
  • 奖励(Reward):智能体选择某个动作后,环境给予的反馈,可能是正向奖励(玩得开心)或负向奖励(感到害怕)。

3. 如何学习:试错法

        强化学习的核心是“试错学习”。智能体通过与环境的互动,不断做出决策并获得反馈。通过这种方式,智能体学会了哪些行为会带来更多的奖励,哪些行为是无效的。

举个例子:

        假设你是一个游戏玩家,游戏中的目标是找到宝藏。游戏中的每个步骤都充满了未知。你可以走左边、走右边、爬山、挖洞等。你不知道哪个动作能带来宝藏,但你可以尝试:

  1. 第一次走右边,发现掉进了陷阱,得到了负奖励。
  2. 第二次走左边,发现了一些金币,得到了正奖励。
  3. 第三次走左边,发现了宝藏,得到了更高的奖励。

通过这些尝试,智能体逐渐知道走左边会更有可能获得奖励,最后学会了最佳的路径。


4.单智能体强化学习

        我们从强化学习的研究出发,最开始便是针对单智能体强化学习开展研究,然后再过渡到多智能体强化学习。单智能体强化学习(Single-Agent Reinforcement Learning,SARL)是强化学习的基础研究。

        单智能体强化学习涉及一个智能体在环境中学习和决策,目标是最大化该智能体的回报。与多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)相比,单智能体强化学习(Single-Agent Reinforcement Learning, SARL)的主要区别在于:

  • 学习和决策的主体‌:SARL只有一个智能体在环境中学习和做决策,而MARL有多个智能体同时学习和决策‌1。
  • 交互性‌:SARL中智能体只与环境交互,不与其他智能体交互;而MARL中智能体不仅与环境交互,还与其他智能体交互,增加了问题的复杂性‌1。
  • 状态和动作空间‌:SARL的状态和动作空间相对简单,通常是固定的和可预测的;而MARL的状态和动作空间更为复杂,因为它们依赖于所有智能体的动作和状态‌1。
  • 优化目标‌:SARL优化单个智能体的回报;而MARL可能需要优化所有智能体的集体回报,或者在智能体之间达成某种均衡‌1。
  • 学习策略‌:SARL的学习策略相对直接,只需考虑单个智能体的学习;而MARL的学习策略更为复杂,需要考虑多智能体之间的协调和竞争‌。

【SARL】单智能体强化学习系列文章:

        SARL系列主要针对单智能体强化学习相关算法进行介绍,并给出相关Python代码和可移植程序,SARL系列文章纲要如下:(持续更新中)

1.【强化学习】单智能体强化学习《纲要》

2.【强化学习】Q-Learning算法

3.【强化学习】Sarsa算法

4.【强化学习】DQN算法

5.【强化学习】PG算法

6.【强化学习】REINFORCE算法

7.【强化学习】Actor-Critic算法

8.【强化学习】A2C算法 

9.【强化学习】DDPG算法 

10.【强化学习】PPO算法 

项目代码我已经放入GitCode里面,可以通过下面链接跳转:🔥

【强化学习】算法项目

后续相关单智能体强化学习算法也会不断在【强化学习】项目里更新,如果该项目对你有所帮助,请帮我点一个星星✨✨✨✨✨,鼓励分享,十分感谢!!!

若是下面代码复现困难或者有问题,也欢迎评论区留言

如果你想了解多智能体强化学习【MARL】可以移步下面这篇文章

【MADRL】多智能体深度强化学习《纲要》

或者专栏:

多智能体强化学习【MARL】专栏


5. 强化学习的应用实例

        强化学习不仅仅适用于游戏,它已经被广泛应用于很多现实世界的问题中,以下是一些经典的例子:

1. 游戏中的AI

        强化学习最著名的一个应用例子是 AlphaGo。AlphaGo是由DeepMind开发的人工智能,它通过强化学习击败了围棋世界冠军李世石。它的训练过程就是通过与自己对弈,不断调整自己的策略,最终掌握了围棋的高超技巧。

2. 自动驾驶

        自动驾驶汽车也是强化学习的一大应用领域。在自动驾驶中,智能体(即汽车)通过在真实世界或模拟环境中进行试验和错误,学习如何做出正确的决策——比如如何加速、减速、变道,甚至如何避免碰撞。通过不断试错,汽车能够学会在各种不同的路况中选择最安全、最合适的操作。

3. 机器人控制

        在机器人领域,强化学习也得到了广泛的应用。例如,一个机器人可能需要学会如何抓取物体,如何移动或走路。通过不断地“试”抓不同的物体,机器人的“抓取策略”会不断改进,最终学会了如何以最有效的方式抓取物体。


6. 总结

        强化学习就是让智能体通过与环境的互动,不断学习、调整自己的行为,以获得更多的奖励。它像是一个不断“试错”的过程,智能体通过尝试各种动作,从失败和成功中学习,最终找到最优的行为策略。


        博客都是给自己看的笔记,如有误导深表抱歉。文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者,或者添加VX:Rainbook_2,联系作者。✨

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

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

相关文章

前端上传后端接收参数为null

记录一下工作中的问题 前端明明把文件传到后台了,但是后台接收参数为null 原因: 前端上传文件的name和后端接收参数名称不匹配 前端 后端 把前端上传的name由upfile改为file即可 本来是很基本的小问题,但因为自己钻了牛角尖一直没搞定&…

Clickhouse MergeTree存储引擎

文章目录 MergeTree特点MergeTree核心参数- ORDER BY- PARTITION BY- PRIMARY KEY- SAMPLE BY- TTL- SETTINGS- index_granularity- index_granularity_bytes- min_index_granularity_bytes- enable_mixed_granularity_parts- use_minimalistic_part_header_in_zookeeper- min_…

【机器学习】—Transformers的扩展应用:从NLP到多领域突破

好久不见!喜欢就关注吧~ 云边有个稻草人-CSDN博客 目录 引言 一、Transformer架构解析 (一)、核心组件 (二)、架构图 二、领域扩展:从NLP到更多场景 1. 自然语言处理(NLP) 2…

【算法】【优选算法】位运算(下)

目录 一、:⾯试题 01.01.判定字符是否唯⼀1.1 位图1.2 hash思路1.3 暴力枚举 二、268.丢失的数字2.1 位运算,异或2.2 数学求和 三、371.两整数之和四、137.只出现⼀次的数字 II五、⾯试题 17.19.消失的两个数字 一、:⾯试题 01.01.判定字符是…

深度学习中注意力机制介绍及seq2seq案例

一. 注意力机制介绍 普通机器翻译 图中表示的是一个中文到英文的翻译:欢迎 来 北京 → welcome to BeiJing。编码器首先处理中文输入"欢迎 来 北京",通过GRU模型获得每个时间步的输出张量,最后将它们拼接(按位相加)成一个中间语义张…

工业—使用Flink处理Kafka中的数据_ChangeRecord2

使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,每隔 1 分钟输出最近 3 分钟的预警次数最多的 设备,将结果存入Redis 中, key 值为 “warning_last3min_everymin_out” , value 值为 “ 窗口结束时间,设备id” &am…

Android 消息队列之MQTT的使用:物联网通讯,HTTP太重了,使用MQTT;断网重连、注册、订阅、发送数据和接受数据,实现双向通讯。

目录: 问题MQTT是什么以及为什么使用如何使用:第一阶段、基础功能如何使用:第二阶段、增加断网重连如何使用:第三阶段、封装 一、问题 在开发的时候,我们一般都使用Http和后台进行通讯,比如我们是开发物联…

项目-02-数学学院后台项目开发过程中的问题总结

目录 一、后台(pc端,vue2)1. dialog对话框被黑色蒙层盖住2. 将前端表格导出为word文档3. 在线查看、下载 .docx、.doc、.pdf文档 一、后台(pc端,vue2) 1. dialog对话框被黑色蒙层盖住 问题: d…

大数据实验E5HBase:安装配置,shell 命令和Java API使用

实验目的 熟悉HBase操作常用的shell 命令和Java API使用; 实验要求 掌握HBase的基本操作命令和函数接口的使用; 实验平台 操作系统:Linux(建议Ubuntu16.04或者CentOS 7 以上);Hadoop版本:3…

使用Tomcat搭建简易文件服务器

创建服务器 1. 复制一个tomcat服务器,并命名为file-service(好区分即可) 2.在webapp里面新建一个文件夹 uploadfiles ,用于存储上传的文件 3. 修改conf/service.xml,配置文件服务器的端口与上传文件夹的访问 在Host标签之间加入一个Context标签 docBase"uploa…

【算法】位运算合集

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 零:位运算基础公式 零:五道基础题 1:位1的个数 2:比…

【NLP高频面题 - LLM架构篇】旋转位置编码RoPE相对正弦位置编码有哪些优势?

【NLP高频面题 - LLM架构篇】旋转位置编码RoPE相对正弦位置编码有哪些优势? 重要性:⭐⭐⭐ 💯 NLP Github 项目: NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练…

《Vue零基础教程》(5)计算属性和侦听器好讲解

1 计算属性 1) 什么是计算属性 计算属性就是基于现有属性计算后的属性 2) 计算属性的作用 计算属性用于对原始数据的再次加工 3) 案例 需求 实现如下效果 使用表达式实现 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF…

Narya.ai正在寻找iOS工程师!#Mixlab内推

如果你对AI技术和iOS开发充满热情&#xff0c;这里有一个绝佳的机会加入一家专注于AI应用创新的初创公司。Narya.ai正在招聘iOS工程师&#xff0c;帮助他们开发下一代效率工具&#xff0c;旨在提升用户的日常生活效率与幸福感。 关于Narya.ai&#xff1a; 专注于AI应用层创新&a…

【开源免费】基于SpringBoot+Vue.JS课程答疑系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 070 &#xff0c;文末自助获取源码 \color{red}{T070&#xff0c;文末自助获取源码} T070&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

FPGA实战篇(触摸按键控制LED灯)

1.触摸按键简介 触摸按键主要可分为四大类&#xff1a;电阻式、电容式、红外感应式以及表面声波式。根据其属性的不同&#xff0c;每种触摸按键都有其合适的使用领域。 电阻式触摸按键由多块导电薄膜按照按键的位置印制而成&#xff0c;但由于耐用性较差且维护复杂&#xff0c…

VSCode如何关闭Vite项目本地自启动

某些情况下VSCode打开Vite项目不需要自动启动&#xff0c;那么如何关闭该功能 文件>首选项>设置 搜索vite 将Vite:Auto Start 勾选取消即可

重生之我在异世界学编程之C语言:深入指针篇(上)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文&#xff08;1&#xff09;内置数…

TypeScript (一)运行环境配置,数据类型,可选类型,联合类型,type与interface,交叉类型,断言as,字面量类型,类型缩小

文章目录 一、认识TS1.1 JS 存在的问题1.2 TS的出现1.3 TS运行环境运行ts的三种方式 1.4 变量声明1.5 类型推断 二、数据类型2.1 JS数据类型(1) 数组Array(2) 对象Object(3) 其他类型 2.2 TS特有数据类型(1) any类型(2) unknown类型(3) void类型(4) never (了解)(5) tuple类型 …

【Leetcode 每日一题】3274. 检查棋盘方格颜色是否相同

问题背景 给你两个字符串 c o o r d i n a t e 1 coordinate1 coordinate1 和 c o o r d i n a t e 2 coordinate2 coordinate2&#xff0c;代表 8 8 8 \times 8 88 国际象棋棋盘上的两个方格的坐标。 以下是棋盘的参考图。 如果这两个方格颜色相同&#xff0c;返回 t …