当前位置: 首页 > news >正文

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

目录

前言

一、强化学习是什么?

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

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


总结

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

相关文章:

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

目录 前言 一、强化学习是什么? 二、强化学习中的基本概念 1.状态 2.动作 3.奖励 4.策略 5.智能体 6.环境 7.智能体与环境交互 三、强化学习路径 总结 前言 强化学习(Reinforcement Learning, RL)是机器学习的范式和方法论之一&a…...

Android 好的开源库

1. 权限请求框架 GitHub - getActivity/XXPermissions: Android 权限请求框架,已适配 Android 14 2. 下载框架 GitHub - lingochamp/okdownload: A Reliable, Flexible, Fast and Powerful download engine....

Spring中xxAware接口和InitializingBean接口的作用

question:Aware接口和InitializingBean接口的作用都可以用例如Autowired PostConstruct注解来实现,那么其相比较于注解的实现,优势是什么呢? 早期的Spring中并不存在注解开发,注解开发是在后期的Spring中引入&#xf…...

Nginx WebDAV扩展模块安装与配置完全指南

Nginx WebDAV扩展模块安装与配置完全指南 nginx-dav-ext-module nginx WebDAV PROPFIND,OPTIONS,LOCK,UNLOCK support [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-dav-ext-module 项目基础介绍 Nginx WebDAV扩展模块(nginx-dav-ext-module)是由a…...

算法刷题Day16: BM41 输出二叉树的右视图

题目链接 描述 思路: 递归构造二叉树在Day15有讲到。复习一下,就是使用递归构建左右子树。将中序和前序一分为二。 接下来是找出每一层的最右边的节点,可以利用队列层次遍历。 利用队列长度记录当前层有多少个节点,每次从队列里…...

1.2 计算机网络的分类和应用(重要知识点)

1.2.1 计算机网络的分类 计算机网络的定义: 由通信线路互相连接的、能自主工作的计算机构成,强调各计算机(工作站)拥有独立的计算资源和任务能力。与多终端分时系统不同,后者终端仅作为主机接口,不具备计…...

Xcode

info.plist Appearance Light 关闭黑暗模式 Bundle display name 设置app名称,默认为工程名 Location When In Use Usage Description 定位权限一共有3个key 1.Privacy - Location When In Use Usage Description 2.Privacy - Location Always and When In U…...

HarmonyOS 5.0应用开发——属性动画

【高心星出品】 文章目录 属性动画animateTo属性动画animation属性动画 属性动画 属性接口(以下简称属性)包含尺寸属性、布局属性、位置属性等多种类型,用于控制组件的行为。针对当前界面上的组件,其部分属性(如位置属…...

Freertos任务切换

一、操作系统进行任务切换的时机: 采用信号量实现任务的互斥: 二、FreeRTOS 任务切换场合 PendSV 中断的时候提到了上下文(任务)切换被触发的场合: ● 可以执行一个系统调用 ● 系统滴答定时器(SysTick)中断。 1、执行系统调用 执行系统…...

【汇编】思考汇编中的两个基本问题

1. 若干年前的疑问 几年前还在大学学习汇编时,不管是考试还是课程设计,其实都很顺利。但是心里一直对什么时候使用哪个寄存器存在疑惑,编写汇编时,没有十足的把握,都是抱着试一试的心态去完成了课程任务。 工作八年有…...

开发环境服务器 vs 生产环境服务器:开发与生产须分明

【背景】作为开发者,我们在不同的阶段都与两种服务器环境打交道——开发环境服务器和生产环境服务器。虽然听起来名字相似,但它们的职责和工作方式简直是天差地别! 不知道朋友们有没有跟我一开始刚了解的时候的一些疑惑,因为刚开始…...

Tomcat的安装即使用

Tomcat的概念 Tomcat服务器是Java语言开发的,免费的开放源代码的Web应用服务器。 Tomcat处理静态HTML的能力远不及Apache或者Nginx,通常是作为一个Servlet和JSP容器,单独运行在后端。 Tomcat是由三个功能组合而成: java servlet&…...

外包干了9天,技术退步明显。。。。。

时光荏苒,转眼我已是一个拥有近四年功能测试经验的大专生。19年,我满怀激情地通过校招进入湖南某知名软件公司,期待在这里开启我的职业生涯。然而,长时间的舒适环境让我渐渐失去了前进的动力,技术停滞不前,…...

梳理你的思路(从OOP到架构设计)_基本OOP知识04

目录 1、 主动型 vs.基於被动型 API 1)卡榫函数实现API 2)API的分类 3)回顾历史 4)API >控制力 2、 结语&复习: 接口与类 1)接口的表示 2)Java的接口表示 1、 主动型 vs.基於被动…...

每天40分玩转Django:简介和环境搭建

Django简介和环境搭建 一、课程概述 学习项目具体内容预计用时Django概念Django框架介绍、MVC/MTV模式、Django特点60分钟环境搭建Python安装、pip配置、Django安装、IDE选择45分钟创建项目项目结构、基本配置、运行测试75分钟实战练习创建个人博客项目框架60分钟 二、Djang…...

OpenCV相关函数

一、Sobel算子函数 (cv2.Sobel) 功能 Sobel算子是一个梯度算子,用于边缘检测。通过计算图像中像素的梯度,Sobel算子可以检测出水平和垂直方向上的边缘。 参数 src:输入图像。 ddepth:输出图像的深度(如cv2.CV_8U, cv…...

【理想汽车中科院】基于模仿学习的端到端自动驾驶数据缩放规律

论文: https://arxiv.org/pdf/2412.02689 项目: https://github.com/ucaszyp/Driving-Scaling-Law 0. 摘要 端到端自动驾驶范式因其可扩展性而最近吸引了大量关注。然而,现有方法受到现实世界数据规模有限的制约,这阻碍了对端到端自动驾驶相关扩展规律…...

重卡补能新未来:光储充换一体开启高效之路

《重卡补能新未来:光储充换一体开启高效之路》 一、光储充换一体重卡补能模式的兴起 重卡运输行业在电动化进程加速下迎来变革,光储超充快换一体化补能站成为新趋势。 随着国家 “双碳” 战略的持续推进,新能源汽车市场蓬勃发展&#xff0c…...

Mybatis Plus 3.0 快速入门

1、简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 2、创建并初始化数据库 2.1、创建数据库 mybatis_plus 2.2、创建 User 表 其表结构如下: idnameageemail1Jone18test1@baomidou.com2Jack…...

ABAP:MB51字段增强

MB51所对应的程序:RM07DOCS 1.定义增强字段:RM07DOCS_GENERATED中定义 2.取值:RM07DOCS中detail_list中加取值逻辑 也有对ITAB取值做调整的,但是要写很多处,直接这里取值就很简单。 3.展示字段:RM07DOCS中…...

nVisual 定制化APP打包流程

一、下载打包软件 HBuilder X 下载地址:https://dcloud.io/hbuilderx.html 安装:此软件为绿色软件,解压即可使用。进入目录,双击exe启动。 此软件需要注册,打开时会提供跳转链接,通过邮箱注册账号。 注册成功后&#…...

k8s的节点亲和性NodeAffinity

关键词: ① requiredDuringSchedulingIgnoredDuringExecution:表示强匹配,必须要满足 ② preferredDuringSchedulingIgnoredDuringExecution:表示弱匹配,尽可能满足,但不保证 示例: apiVersion: v1 kind:…...

比特币国家与企业机构“战略储备”潮起

100 万枚 BTC 的战略储备资产,是一个什么概念? 据世界黄金协会统计数据显示,截至 2024 年第三季度,美联储黄金储备总量达 8133.46 吨(约合 5300 亿美元),稳居全球首位。而 100 万枚 BTC 当前市…...

Vue生命周期钩子函数:深入解析与实践

作为高级Vue前端开发人员,对Vue组件的生命周期钩子函数有着深刻的理解是至关重要的。生命周期钩子函数是指在Vue组件的创建、更新、销毁等过程中,Vue自动调用的一系列方法。通过这些钩子函数,我们可以在组件的不同生命周期阶段执行特定的操作…...

mysql、postgresql、oceanbase调优

一、mysql 1、my.cnf [mysqld_safe] log-error=/data/mysql/log/mysql.log pid-file=/data/mysql/run/mysqld.pid[client] socket=/data/mysql/run/mysql.sock default-character-set=utf8[mysqld] basedir=/usr/local/mysql tmpdir=/data/mysql/tmp datadir=/data/mysql/dat…...

【Flux.jl】 卷积神经网络

Flux.jl 是包含卷积神经网络的, 但是官方API文件中没有给出一个完整的程序框架, 只是对所需神经元给了局部解释, 此外对 model-zoo 模型动物园中的案例没有及时跟着 Flux.jl 的版本更新, 也无法运行出来结果。 因此本文搭建了一个完整可训练的卷积神经网络。 Conv 卷积算子…...

数字证书管理工具 openssl keytool

OPENSSL 命令 openssl command [ command_opts ] [ command_args ] 常用command: version 用于查看版本信息 enc 用于加解密 ciphers 列出加密套件 genrsa 用于生成私钥 -des|-des3|-idea:用来加密私钥文件的三种对称加密算法。 rsa …...

notify和notifyAll

notify和notifyAll 简单来说: notify():只唤醒一个等待的线程,如果有多个线程在等待,那么被唤醒的线程是随机选择的。 notifyAll():唤醒在该对象监视器上等待的所有线程,但是这些被唤醒的线程仍然需要竞争…...

删除MySQL的多余实例步骤

删除 MySQL 的多余实例通常意味着我们希望卸载或停止某个 MySQL 服务器实例,并从系统中完全移除它。这通常涉及到几个步骤,包括但不限于停止服务、删除数据目录、卸载软件(如果适用)等。 1.基于 Linux 的系统上删除 MySQL 的多余…...

LDR6500应用:C转DP线材双向投屏开启全新体验

在当今这个科技日新月异、蓬勃发展的时代,高清视频传输以及显示技术已经深深融入到我们日常生活与工作的方方面面,其重要性不言而喻。不管是在商务场合的会议演示,还是教育领域的娱乐享受,以及充满激情的游戏竞技领域,…...

商业化大前端在性能优化领域的探索与实践

导读:在业务飞速发展的过程中,用户体验是必不可少的一个环节,而页面性能是直接影响用户体验的重要因素。当页面加载时间过长、交互操作不流畅时,意味着业务可能会出现转化率降低、用户流失等业务问题。在过去一年,为了…...

FinClip | 2024年11月产品大事记

FinClip 的使命是使您(业务专家和开发人员)能够通过小程序解决关键业务流程挑战,并完成数字化转型的相关操作。不妨让我们看看在11月的产品与市场发布亮点,看看是否有助于您实现目标。 产品方面的相关动向👇&#x1f…...

EasyPlayer.js在同一个http的mp4视频流地址,浏览器可以播放,播放器中却播放不了

流媒体技术正站在数字化时代的前沿,随着互联网技术的不断进步和市场需求的日益增长,其发展前景显得尤为广阔。随着全球数字化转型的不断深入,流媒体行业将迎来更加繁荣的未来,成为信息传播和娱乐消费的主要渠道。 用户遇到在同一个…...

探索云原生安全解决方案的未来

我们是否充分意识到云端所面临的网络安全威胁? 在当今互联互通的世界中,维护安全的环境至关重要。云的出现扩大了潜在威胁的范围,因为它催生了机器身份(称为非人类身份 (NHI))及其秘密。随着组织越来越多地转向云原生…...

发愿和许愿的区别是什么?

在许多宗教和文化中,发愿和许愿都是人们表达内心愿望、祈求神灵保佑的重要方式。尽管这两个词在日常生活中经常被交替使用,但它们在含义和实践上存在一些重要的区别。本文就来详细说说发愿和许愿的区别,并提供相关的背景信息和建议。 1. 定义…...

【IntelliJ IDEA 集成工具】TalkX - AI编程助手

前言 在数字化时代,技术的迅猛发展给软件开发者带来了更多的挑战和机遇。为了提高技术开发群体在繁多项目中的编码效率和质量,他们需要一个强大而专业的工具来辅助开发过程,而正是为了满足这一需求,TalkX 应运而生。 一、概述 1…...

【故障处理--修改CI流水线】

背景:研发同事反映CI流水线卡顿严重,判断是移动云镜像仓库的带宽太小,故在公有云搭建一个harbor仓库,这就意味着CI流水线有些配置需要改动 1、CI流水线的介绍 helm-chart/pcas-appstore-hy存放的是chart包需要的文件 Dockerfile…...

Android 使用 Gson + OkHttp 实现 API 的常规使用(个人心得)

学习笔记 一、依赖和权限的添加 网络权限: 在 Android 中进行网络请求时,必须声明权限,确保应用具有访问互联网的能力。 <uses-permission android:name="android.permission.INTERNET"/> 依赖项: 确保在 build.gradle 中添加以下依赖: dependencies …...

MR30分布式 IO 模块:硅晶行业电池片导片机的智能 “心脏”

硅晶产业作为全球能源和电子领域的基石&#xff0c;其生产规模庞大且工艺复杂。从硅料的提纯、拉晶&#xff0c;到硅片的切割、电池片的制造&#xff0c;每一个环节都要求高精度与高稳定性。在电池片生产环节&#xff0c;导片机承担着硅片传输与定位的重要任务&#xff0c;其运…...

mysql高级篇 | 尚硅谷 | 第2章_数据库和文件系统的关系

二、数据库和文件系统的关系 文章目录 二、数据库和文件系统的关系1、查看默认数据库2、 数据库在文件系统中的表示3、表在文件系统中的表示①InnoDB存储引擎模式②表中数据和索引②MyISAM存储引擎模式 4、小结 1、查看默认数据库 查看一下在我的计算机上当前有哪些数据库&…...

React 生命周期

React 生命周期可以分为三个主要阶段&#xff1a;挂载&#xff08;Mounting&#xff09;、更新&#xff08;Updating&#xff09;和卸载&#xff08;Unmounting&#xff09; 挂载&#xff08;Mounting&#xff09; 当组件实例被创建并插入到 DOM 中时&#xff0c;会依次调用以…...

OpenCV--图像查找

OpenCV--图像查找 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像查找--特征匹配的应用&#xff0c;通过特征匹配和单应性矩阵 单应性变换&#xff1a;描述物体在世界坐标系&#xff08;原图&#xff09;和像素坐标系&#xff08;对比图&#x…...

数据保护策略:如何保障重要信息的安全

一、什么是数据安全&#xff1f; 数据安全是保护数字信息免遭盗窃、未经授权的访问和恶意修改的过程。这是一个持续的过程&#xff0c;负责监督信息的收集、存储和传输。 机密性&#xff1a;保护数据免遭未授权方访问。 完整性&#xff1a;保护数据免遭未经授权的修改、损坏…...

AI生成图表化:深入探索Mermaid

引言 在使用生成式AI时&#xff0c;只要你提出让AI帮你生成mermaid图&#xff0c;AI的生成就会出现丰富的图形&#xff01; 在现代文档编写中&#xff0c;图表的使用不仅能增强文档的可读性&#xff0c;还能更直观地表达复杂的概念和流程。Mermaid 作为一款开源的图表绘制工具…...

模型训练中梯度累积步数(gradient_accumulation_steps)的作用

模型训练中梯度累积步数&#xff08;gradient_accumulation_steps&#xff09;的作用 flyfish 在使用训练大模型时&#xff0c;TrainingArguments有一个参数梯度累积步数&#xff08;gradient_accumulation_steps&#xff09; from transformers import TrainingArguments梯…...

jenkins安装(jdk1.8已安装)

1. 下载对应jenkins版本 https://mirrors.jenkins.io/war/ 2. 上传至服务器目录并启动 mkdir -p /root/jenkins cd /root/jenkins 上传文件 启动&#xff1a;nohup java -jar jenkins.war --httpPort9090 &> jenkins.log & 访问&#xff1a;http://ip:9090 选…...

爬虫实战:获取1688接口数据全攻略

引言 在电商领域&#xff0c;数据的重要性不言而喻。1688作为中国领先的B2B电商平台&#xff0c;提供了海量的商品数据。通过爬虫技术获取这些数据&#xff0c;可以帮助企业进行市场分析、价格监控和供应链管理。本文将详细介绍如何使用Python爬虫技术合法合规地获取1688接口数…...

基于Mybatis,MybatisPlus实现数据库查询分页功能

基于Mybatis&#xff0c;MybatisPlus实现数据库查询分页功能 目录 基于Mybatis&#xff0c;MybatisPlus实现数据库查询分页功能使用Mybatis插件实现分页数据库准备分页插件配置和使用常用数据&#xff1a; 使用MybatisPlus插件实现分页数据库准备分页插件配置和使用自定义分页查…...

【C++】求第二大的数详细解析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;输入描述&#x1f4af;解题思路分析1. 题目核心要求2. 代码实现与解析3. 核心逻辑逐步解析定义并初始化变量遍历并处理输入数据更新最大值与次大值输…...

Ubuntu18安装后基本配置操作

1. 关掉自动更新 不关掉自动更新&#xff0c;会将你的ubuntu系统更新到更高版本&#xff0c;一些配置就不能用了&#xff0c;所以要关掉自动更新。在“软件和更新”中将“自动检查更新”设置为从不。 2. ubuntu换国内源 参考链接换源 按照这个换源这个换源好使 &#xff0c;…...