(一)强化学习基础概念及学习路径

目录

前言

一、强化学习是什么?

二、强化学习中的基本概念

1.状态

2.动作

3.奖励

4.策略

5.智能体

6.环境

7.智能体与环境交互

三、强化学习路径

总结


前言

        强化学习(Reinforcement Learning, RL)是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。其涉及的内容很多,本文仅针对其基础概念以及学习路径进行了介绍和总结,供初学者借鉴和学习。


一、强化学习是什么?

        强化学习是通过智能体与环境不断交互,在选择动作的条件下获得奖励,此时状态由当前状态转换到下一状态,通过不断优化自身的动作策略,以期待最大化长期回报及收益的过程。

        在强化学习的基础上,将深度学习的知识运用到强化学习中。通过神经网络来近似拟合学习过策中的函数,代替传统强化学习中的表格形式,极大的提升了强化学习的整体表现。未来将在专题中详细介绍各种强化学习方法的理论以及实际操作,常见的强化学习方法有以下几种:

价值学习:

TD算法是一大类算法,常见的有Q学习和SARSA,Q 学习的目是学到最优动作价值函数 Q⋆;而 SARSA 的目的是学习动作价值函数 Qπ。
 

Q-learning:用Q函数表示某一状态和动作下的收益。

Deep Q Learning(DQN):适用于离散空间,学习最优动作价值函数Q⋆ 。

Double DQN:双 Q 学习基于目标网络的想法,进一步将 TD 目标的计算分解成选择和求值两步,缓解了最大化造成的高估。

Dueling DQN:基本想法是将最优动作价值 Q⋆ 分解成最优状态价值 V⋆ 与最优优势 D⋆。

SARSA :学习动作价值函数Q_{\pi }

.........

策略学习:

Deep Deterministic Policy Gradient(DDPG):适用于连续空间,是对DQN的拓展。

Trust Region Policy Optimization, TRPO:置信域策略优化 ,表现更加稳定,所用经验更少

Proximal Policy Optimization(PPO):是对TRPO的一个改进,用更简单有限的方法来控制策略近似

.........

策略加价值方法:

Actor-Critic(AC)

Advantage Actor-Critic (A2C)

多智能体强化学习方法:

合作关系/竞争关系/混合关系/利己关系

集中式/分散式/集中训练分散执行

.........


二、强化学习中的基本概念

        以一个游戏为例,我们来讲一下强化学习中的基本概念和公式表示。游戏界面如下图所示:

1. 状态

        状态:是对环境的描述和概括,是智能体决策的依据。以所提游戏为例,当前画面就可以看做环境中的状态,状态是决策的依据和条件,智能体可以根据当前的状态进行决策判断。

        状态空间:所有状态的集合,可以是有限集合也可以是无限集合,一般用S来表示。例如雷达目标跟踪过程中,可以把目标的位置看做状态,此时状态空间就是无限大;当下围棋时,可以把棋子的位置看做状态,此时状态空间就是有限集合。

        状态转移:目前状态为s_{1},经过智能体选择动作a之后,目标状态转换到s_{2}。状态转移函数是当前状态和动作的映射函数,下一个状态s_{2}就是由状态转移函数确定的。

2. 动作

        动作:智能体的选择和决策。以上述游戏为例,小蓝人只能向左、向右、向上、向下走。

        动作空间:所有动作的集合,可以是离散集合或者连续集合。上述游戏的状态空间就是A={上,下,左,右},此时的动作空间是有限空间;在某些示例中,存在一些动作是一个取值范围,此时的动作空间就是无限的。

3. 奖励

        奖励是指智能体选择动作之后得到的反馈。当奖励越大时,说明学习的效果越好。奖励的定义将会深刻影响强化学习的过程,因为这决定了我们的学习目标。以上述游戏为例,我们可以设置小蓝人获得水晶的奖励+100,掉入深坑的奖励为-100;也可以设置通关的奖励为10000,这会使得小蓝人的策略发生变化,他的意图就会由多吃水晶变为尽可能通关。

4. 策略

        策略函数:是指根据目标状态,选择各个动作的概率函数。常见的策略函数取值为0到1之间的数值,表示了在某个状态下,采取不同行动的概率是多少。

5. 智能体

        智能体:以上述游戏为例,控制的小蓝人就是智能体,因为小蓝人可以采取各种动作进行探索和实验。

6. 环境

        环境:根据当前状态和动作生成新状态的主体。在上述游戏中,游戏程序为环境。在实际环境编程中有一个很常用的函数就是Step函数,他的作用就是起到状态转移函数的作用,根据当前状态和动作生成新状态,后续编程和实践文章中将会详细介绍。

7. 智能体与环境交互

        智能体与环境交互:智能体根据环境的状态选择动作,环境会根据智能体的动作和当前状态产生新的状态,并计算奖励,将产生的新状态和奖励反馈给智能体,这就是智能体与环境的交互过程。


三、强化学习路径

        根据自身经验,给大家讲一下强化学习的初始的入门学习路径。每个人的学习路劲和思路不同,在这里仅分享本人的学习思路和路径。

1.初步了解相关概念。通过B站上的视频,简单了解强化学习的相关概念,形成初步的印象。在这里也推荐一本中文的入门书籍。《深度强化学习》-王树森,这本书简单易懂,适合初学者学习。

2.完整系统的学习相关理论知识。这个阶段主要是了解强化学习的理论和原理,这里我是完整跟着赵老师的课程来的,完完整整的听下来会让你对强化学习有一个完整的,系统的认识。

强化学习的数学原理icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1sd4y167NS/

3.动手实践阶段,这里大家可以选择不同的方式,可以通过OpenAI的课程,或者B站上的可成进行手把手的编程。注意这里应当有Python的基础编程知识,没有的同学需要先学习Python才能开始这部分的学习。

OpenAI公开课程icon-default.png?t=O83Ahttps://spinningup.openai.com/en/latest/index.htmlB站强化学习编程课程icon-default.png?t=O83Ahttps://www.bilibili.com/video/av951178075?vd_source=11e9207a073e73397f429d275f48052e&spm_id_from=333.788.videopod.sections

4.深化阶段。此阶段就是结合你的学习内容,复盘所有的知识,并根据所学知识复现或者调试各种代码段的过程,各种代码的资源是比较多的,大家可以在网上自行查找。


总结

        本文针对强化学习的基本概念和知识进行了介绍,并讲述了对应的学习路径,如果大家能够按照学习路径进行学习,一段时间内就能完成强化学习的入门过程。

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

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

相关文章

六西格玛DMAIC在企业得项目管理中有什么作用

六西格玛(Six Sigma)是一种以数据为基础的管理方法,旨在通过减少缺陷和变异来提高过程质量和效率。DMAIC 是六西格玛中一种常用的改进方法论,适用于现有过程的改进。DMAIC 代表五个阶段:定义(Define&#x…

【C++】简单计算器问题的深度解析与优化对比

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯问题描述💯实现 1:我的实现代码分析优点不足 💯实现 2:老师的第一种实现代码分析优点不足 💯实现 3:…

Spire.PDF for .NET【页面设置】演示:向 PDF 文档添加页码

在 PDF 文档中添加页码不仅实用,而且美观,因为它提供了类似于专业出版材料的精美外观。无论您处理的是小说、报告还是任何其他类型的长文档的数字副本,添加页码都可以显著提高其可读性和实用性。在本文中,您将学习如何使用Spire.P…

开疆智能Ethernet/IP转Profinet网关连接纳博特控制器配置案例

该案例是西门子PLC通过开疆智能研发的Ethernet/IP转Profinet网关KJ-PNG-108连接纳博特控制器的配置案例首先下载控制器的EDS文件,解析出其中的ethernet参数. 将EDS文件导入解析软件,透过软件可以看到数据长度默认为32字节,连接点为150/100 打…

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的移动台账管理系统

开题报告 个人财务管理系统的意义在于提高个人财务管理的效率,实现财务稳定,增强经济安全感。收支管理是每个个人和个人组织不可缺少的工作,也是个人财务管理中不可或缺的研究对象。通过信息化地收集和处理收支信息,减少手工记录…

车牌识别OCR授权:助力国产化升级,全面提升道路监控效率

政策背景:国产化升级,推动道路监控产业转型 随着国家对信息安全的重视,国内各大公安、政企机构已进入全面升级国产化平台的实施阶段。根据最新的政策要求,公安和政府部门必须在未来三年内完成平台的国产化替换工作。这一举措不仅…

【算法】【优选算法】哈希表

目录 一、简介二、两数之和三、⾯试题 01.02.判定是否互为字符重排四、217.存在重复元素五、219.存在重复元素 II六、49.字⺟异位词分组 一、简介 哈希表就是一个使用键值对key-value来存储数据的容器。 用于快速查找某个元素O(1)时间复杂度。 应用场景: 频繁查找…

Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF

Latex代码中使用pdf图片,无法预览,提示: Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法: 点击左边这个刷新下即可

uniapp结合movable-area与movable-view实现拖拽功能

前言 因为公司业务开发需要拖拽功能。 ps&#xff1a;该功能只能针对高度一致的&#xff0c;如果高度不一致需要另外二开 演示 开始 <template><view style"height: 100%;"><movable-area :style"{width: 100%, height: allHeight px}"…

访问者模式的理解和实践

在软件开发过程中&#xff0c;设计模式为我们提供了解决常见问题的最佳实践。访问者模式&#xff08;Visitor Pattern&#xff09;是行为设计模式之一&#xff0c;它将数据操作与数据结构分离&#xff0c;使得在不修改数据结构的前提下&#xff0c;能够定义作用于这些元素的新的…

MATLAB直流电机模型,直流电机控制

直流电机控制简介 直流电机&#xff08;DC motor&#xff09;广泛应用于各种机械驱动和电力控制系统中&#xff0c;其运行性能的控制至关重要。为了精准地控制直流电机的输出特性&#xff0c;可以通过不同的控制方式进行调节。常见的控制方式包括电枢电流控制、速度控制、电机位…

【工业机器视觉】基于深度学习的水表盘读数识别(2-数据采集与增强)

【工业机器视觉】基于深度学习的仪表盘识读&#xff08;1&#xff09;-CSDN博客 数据采集与增强 为了训练出适应多种表型和环境条件的模型&#xff0c;确保数据集的质量与多样性对于模型的成功至关重要。高质量的数据不仅需要准确无误、具有代表性&#xff0c;还需要涵盖尽可能…

vscode通过ssh连接远程服务器(实习心得)

一、连接ssh服务器 1.打开Visual Studio Code&#xff0c;进入拓展市场(CtrlShiftX)&#xff0c;下载拓展Remote - SSH 2. 点击远程资源管理器选项卡&#xff0c;并选择远程(隧道/SSH)类别 3. 点击ssh配置&#xff1a;输入你的账号主机ip地址 4.在弹出的选择配置文件中&#xf…

Maven(生命周期、POM、模块化、聚合、依赖管理)详解

Maven构建项目的生命周期 在Maven出现之前&#xff0c;项目构建的生命周期就已经存在&#xff0c;软件开发人员每天都在对项目进行清理&#xff0c;编译&#xff0c;测试&#xff0c;部署等工作&#xff0c;这个过程就是项目构建的生命周期。虽然大家都在不停的做构建工作&…

webstorm开发uniapp(从安装到项目运行)

1、下载uniapp插件 下载连接&#xff1a;Uniapp Tool - IntelliJ IDEs Plugin | Marketplace &#xff08;结合自己的webstorm版本下载&#xff0c;不然解析不了&#xff09; 将下载到的zip文件防在webstorm安装路径下&#xff0c;本文的地址为&#xff1a; 2、安装uniapp插…

unique_ptr自定义删除器,_Compressed_pair利用偏特化减少存储的一些设计思路

主要是利用偏特化&#xff0c; 如果自定义删除器是空类&#xff08;没有成员变量&#xff0c;可以有成员函数&#xff09;&#xff1a; _Compressed_pair会继承删除器&#xff08;删除器作为基类&#xff09;&#xff0c;但_Compressed_pair里不保存删除器对象&#xff0c;只…

【数据结构——栈与队列】环形队列的基本运算(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;编写一个程序实现环形队列的基本运算。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 初始化队列、销毁队列、判断队列是否为空、进队列…

路由器、二层交换机与三层交换机的区别与应用

路由器、二层交换机和三层交换机是常见的网络设备&#xff0c;常常协同工作。它们都可以转发数据&#xff0c;但在功能、工作层级以及应用场景上存在差异。 1. 工作层级 三者在OSI模型中的工作层级不同&#xff1a; 路由器&#xff1a; 工作在 网络层&#xff08;第三层&#…

SQL计算字段:拼接字段

为了说明如何使用计算字段&#xff0c;本文将通过一个简单的示例来展示如何将两列组合成一个标题。假设Vendors表包含供应商的名称和国家信息&#xff0c;我们希望生成一个报表&#xff0c;其中列出每个供应商的名称和所在国家&#xff0c;并且需要格式化名称显示&#xff0c;国…

高级数据结构-树状数组

介绍 树状数组的推导 两个基础操作 模板-acwing795. 前缀和 #include<bits/stdc.h> using namespace std;const int N 1e610; int c[N]; int lowbit(int x){return x & -x; }int query(int x){int ans 0;for(; x; x - lowbit(x)) ans c[x];return ans; }void add…