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

【强化学习】Reinforcement Learning基础概述

强化学习(Reinforcement Learning, RL)是机器学习的重要分支,其核心在于‌智能体(Agent)通过与环境的动态交互学习最优决策策略‌,以最大化长期累积奖励。

1. 强化学习的定义 

1.1 什么是强化学习?

首先,强化学习并不是某一种特定的算法,而是解决序列决策问题一类算法的统称,通过寻求最优策略,获取最大回报。强化学习就是智能体从环境到动作映射的学习,以使回报信号(激励信号)函数值最大。

强化学习(Reinforcement learning,RL)讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment) 里面去极大化它能获得的奖励。通过感知所处环境的状态(state) 对动作(action) 的反应(reward), 来指导更好的动作,从而获得最大的收益(return),这被称为在交互中学习,这样的学习方法就被称作强化学习。

在强化学习过程中,智能体跟环境一直在交互。智能体在环境里面获取到状态,智能体会利用这个状态输出一个动作,一个决策。然后这个决策会放到环境之中去,环境会根据智能体采取的决策,输出下一个状态以及当前的这个决策得到的奖励。智能体的目的就是为了尽可能多地从环境中获取奖励。

1.2 机器学习的几种方法

强化学习是和监督学习,非监督学习并列的第三种机器学习方法。

  • 监督学习是从外部监督者提供的带标注训练集中进行学习。 (任务驱动型)
  • 非监督学习是一个典型的寻找未标注数据中隐含结构的过程。 (数据驱动型)
  • 强化学习更偏重于智能体与环境的交互,这带来了一个独有的挑战 ——“试错(exploration)”与“开发(exploitation)”之间的折中权衡,智能体必须开发已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间。 (从错误中学习)

机器学习下的几种方法的对比:

  • 监督学习:标签数据:需要,直接反馈,应用场景:预测输出。
  • 无监督学习:标签数据:不需要,无反馈,应用场景:发掘隐藏结构。
  • 强化学习:标签数据:不需要,延迟反馈,应用场景:决策过程。

在这里插入图片描述

强化学习和监督学习、无监督学习最大的不同就是不需要大量的“数据喂养”,而是通过自己不停的尝试来学会某些技能。也就是说,强化学习是让计算机实现从一开始完全随机的进行操作,通过不断地尝试,从错误中学习,最后找到规律,学会了达到目的的方法。智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏。

1.3 强化学习的一些特点

强化学习主要有以下几个特点(有些重复介绍):

  • 试错学习:强化学习一般没有直接的指导信息,Agent 要以不断与 Environment 进行交互,通过试错的方式来获得最佳策略(Policy)。
  • 延迟回报:强化学习的指导信息很少,而且往往是在事后(最后一个状态(State))才给出的。比如围棋中只有到了最后才能知道胜负。
  • 强化学习没有监督标签,只会对当前状态进行奖惩和打分,其本身并不知道什么样的动作才是最好的。
  • 强化学习的评价有延迟,往往需要过一段时间,已经走了很多步后才知道当时选择是好是坏。有时候需要牺牲一部分当前利益以最优化未来奖励。
  • 强化学习有一定的时间顺序性,每次行为都不是独立的数据,每一步都会影响下一步。目标也是如何优化一系列的动作序列以得到更好的结果,即应用场景往往是连续决策问题。

1.4 强化学习基本元素

1.4.1 智能体-Agent

强化学习中的Agent可以理解为是采取行动的智能个体。

1.4.2 动作-Action

Action是智能体可以采取的动作的集合。一个动作(action)几乎是一目了然的,但是应该注意的是智能体是在从可能的行动列表中进行选择。

1.4.3 环境-Environment

Environment指的就是智能体行走于其中的世界。这个环境将智能体当前的状态和行动作为输入,输出是智能体的奖励和下一步的状态。

1.4.4 状态-State

一个状态就是智能体所处的具体即时状态;也就是说,一个具体的地方和时刻,这是一个具体的即时配置,它能够将智能体和其他重要的失事物关联起来,例如工具、敌人和或者奖励。它是由环境返回的当前形势。

1.4.5 奖励-Reward

奖励是我们衡量某个智能体的行动成败的反馈,通常是一个标量。面对任何既定的状态,智能体要以行动的形式向环境输出,然后环境会返回这个智能体的一个新状态(这个新状态会受到基于之前状态的行动的影响)和奖励(如果有任何奖励的话)。奖励可能是即时的,也可能是迟滞的。它们可以有效地评估该智能体的行动。

强化学习基本元素示例:

名称对应上图中的内容
agent小鸟
environment小鸟周围的环境,水管、天空(包括小鸟本身)
state拍个照(目前的像素)
action向上向下动作
reward距离(越远奖励越高)

1.5 强化学习相关术语

智能体与环境的交互是指:智能体在环境的一个状态(state)下做一个动作(action)决策,把这个动作作用到环境中,然后这个环境基于环境模型(model)发生相应的状态转移(state transition),并且将相应的奖励信号(reward)和下一轮状态返回给智能体。

RL整体思路:算法执行个体Agent来做决策,即选择一个合适的动作Action(𝐴_𝑡)。选择了动作𝐴_𝑡后,环境的状态State会发生改变,变为𝑆_𝑡+1,同时也可以得到采取动作𝐴_𝑡的延时奖励Reward(𝑅_𝑡+1)。然后个体可以继续选择下一个合适的动作,然后环境的状态又会发生改变,又有新的奖励值。

下面介绍一下RL常用的相关术语:

1.5.1 策略

策略是智能体用于决定下一步执行什么行动的规则,即策略决定了Agent在任意状态s下如何从动作空间中选取某个action。

1.5.2 状态转移

状态转移,可以是确定的也可以是随机的,一般认为是随机的,其随机性来源于环境。

1.5.3 回报

Agent采取某个action获的的奖励总和。

1.5.4 动作价值函数-Q值

Q值,评估动作的价值,它代表了智能体选择这个动作后,一直到最终状态奖励总和期望,表示为Q(s, a),其中 s是状态,a是动作。

1.5.5 状态价值函数-V值

V值评估状态的价值,也称为状态价值函数,表示为V(s),其中s是状态。它代表了智能体在这个状态下,一直到最终状态的奖励总和期望。V值与动作无关只与状态有关。

1.5.6 Q值和V值

Q值和V值的概念是一致的,都是衡量在马可洛夫树上某一个节点的价值。只不过V值衡量的是状态节点的价值,而Q值衡量的是动作节点的价值。
某状态S的V值,可以这样计算:

  • 我们从S点出发,并影分身出若干个自己;
  • 每个分身按照当前的策略 选择行为;
  • 每个分身一直走到最终状态,并计算一路上获得的所有奖励总和;
  • 我们计算每个影分身获得的平均值,这个平均值就是我们要求的V值。

总结就是:从某个状态,按照策略,走到最终状态很多很多次;最终获得奖励总和的平均值,就是V值。

计算某个状态S0下的一个动作A的Q值:

  • 我们就可以从A这个节点出发,使用影分身之术;
  • 每个影分身走到最终状态,并记录所获得的奖励;
  • 求取所有影分身获得奖励的平均值,这个平均值就是我们需要求的Q值。

总结就是:从某个状态选取动作A,走到最终状态很多很多次;最终获得奖励总和的平均值,就是Q值。与V值不同,Q值和策略并没有直接相关,而与环境的状态转移概率相关,而环境的状态转移概率是不变的。

Q值和V值的关系:一个状态的V值,就是这个状态下的所有动作的Q值,在策略下的期望。

1.5.7 动作优势函数

状态价值函数与动作价值函数之间的差值定义为动作优势函数(Advantage Value Function):

动作优势函数的意义:衡量具体的一个动作 a ,较该状态下平均动作的优劣。

2. 强化学习算法体系

2.1 Model-based

构建环境的模型,并利用该模型进行决策和规划。环境模型包括状态转移函数和奖励函数,这些函数描述了在特定状态下,采取特定动作后可能的后续状态和相应的奖励。

优点:能够利用模型对环境进行预期和规划。适用于环境动力学已知或可以近似的情况。
方法:

  • 动态规划(Dynamic Programming):需要环境的完整模型,通常用于计算最优策略。
  • 确定策略搜索(Deterministic Policy Search):利用模型进行策略评估和迭代改进。

2.2 Model-free

不显示构建环境的模型,而是直接通过与环境的交互学习策略。这类算法直接估计策略或价值函数,并基于这些估计进行建模。

优点:适用于较复杂环境且无需精确的环境模型,鲁棒性较强。
方法:

  • 值函数法(Value Function Methods),例如Q学习(Q-Learning):学习动作价值,不需要环境模型。
  • 策略梯度法(Policy Gradient Methods):通过估计策略梯度进行策略优化,直接学习策略。

2.3 Value-based

学习价值函数,从价值函数采取出策略,是一种间接产生策略的方法,是确定性策略学习方法。一般公式为a_t=argmaxQ(s,a_t),即通过动作a和状态s去得到一个Q值,选择最大Q值下的a值。

举例:

  • Q学习(Q-Learning):一种通过学习动作价值 Q(s,a)的方法,使用经验来更新值函数,并根据该值函数选择动作。
  • SARSA:类似于Q学习,但在更新时使用当前策略选择的动作。

优点:通过价值函数可以评估每个状态或动作的好坏,间接形成策略。
缺点:通常需要进行探索与利用的权衡以形成较好的策略。

2.4 Policy-based

学习策略函数π(a∣s),直接产生策略的方法,是随机性策略学习方法。具体而言,他产生各个动作的概率π(Q(a|s)),Q为策略参数,π_theta(a|s)在策略参数theta下,状态s选择动作a的概率。

举例:

  • 策略梯度方法(Policy Gradient Methods):使用梯度上升或下降的方法优化策略参数。策略梯度可以直接对连续空间参数进行学习。
  • 近端策略优化(Proximal Policy Optimization, PPO)和其他先进的策略梯度方法。

优点:能够处理连续动作空间,并且可以学习更复杂的策略,如随机策略。
缺点:可能收敛较慢,对学习率和探索策略较为敏感。

2.5 On-policy

学习的agent与环境互动的agent是同一个agent,如SARSA算法。

2.6 Off-policy

学习的agent与环境互动的agent不是同一个agent,如Q-Learning算法、DQN算法。

3. 强行学习算法建模

从数学角度看,强化学习被建模为一个马尔可夫决策过程。在这个过程中,智能体(agent)与环境在每个步骤(step)进行交互。智能体执行一个动作(action),环境则返回当前的立即奖励(reward)和下一个状态(state)。这个过程持续进行,形成一个状态-动作-奖励的序列。
在强化学习中,状态是状态集合中的一个元素,动作是动作集合中的一个元素。状态转移假设符合马尔可夫性,即下一个状态的概率仅依赖于当前状态和当前动作。奖励则由当前状态、当前动作以及下一个状态联合决定。
此外,还有一个重要的概念是 γ 值,它用于平衡即时奖励与未来潜在奖励的重要性。通过调整 γ 值,可以控制智能体在决策时是更侧重于即时奖励还是未来的长期奖励。
这种建模方式使得强化学习能够在不确定环境中通过试错学习最优策略,逐步提升性能并逼近最优解。

强化算法的优化目标可以聚焦于长期奖励或当前步骤的奖励,这涉及到马尔可夫决策过程和多智能体问题。

马尔可夫决策过程可以根据是否使用环境模型分为基于模型和无模型两类。基于模型的算法可以通过学习环境的认知建模,利用状态转移函数和奖励函数来做出最优决策,如使用MuZero和蒙特卡洛搜索等算法。无模型算法可以分为基于价值和基于策略两类强化学习算法。基于价值的强化学习算法仅学习一个价值函数,即估计当前状态下采取动作后的Q值,代表性的算法有DQN。DQN进一步演化出了C51等算法,适用于离散空间,并扩展到连续空间的DDPG算法。DDPG算法采用近似最大化,并衍生出了解决连续空间决策问题的TD3、SAC等算法。
在基于策略的强化学习算法中,可以分为无梯度和有梯度两类。无梯度算法采用进化策略等演化计算类似的算法。有梯度算法则包括TRPO算法、PPO算法等。

3.1 马尔可夫性(Markov property)

马尔可夫性指的是一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。简单来说,就是“未来只取决于现在,与过去无关”。具有马尔可夫性质的过程通常称之为马尔可夫过程。

用式子来表示:

3.2 RL与Markov

强化学习的目标是让智能体通过与环境的交互来学习最优行为策略。如果环境不具备马尔可夫性,那么智能体为了做出最优决策,可能需要记住整个过去的历史轨迹。这会带来巨大的挑战:

  • 无限状态空间: 如果历史是必需的,那么“当前状态”就变成了“当前状态 + 历史轨迹”,这会导致状态空间呈指数级增长,甚至无限大,使得学习变得不可行。
  • 学习效率低下: 记住并处理冗长的历史信息会使得学习过程变得极其缓慢和复杂。
  • 数学模型简化: 马尔可夫性极大地简化了强化学习的数学模型,使得我们能够利用动态规划等工具来求解问题。

因此,在强化学习中,我们通常假设环境是马尔可夫的,或者至少是“部分可观察马尔可夫决策过程”(POMDP)的一种特例,其中智能体无法直接观察到完整的马尔可夫状态,但通过维护一个信念状态(belief state)来间接满足马尔可夫性。

3.3 MDP五元组

一个标准的马尔可夫决策过程由五个核心元素构成,通常使用一个五元组来完全描述一个马尔可夫决策过程的基本组成部分,它是一个形式化的数学模型,用于解决强化学习环境中的决策问题。MDP五元组包括以下元素:

  • 状态空间S:所有可能的状态集合,代表环境中智能体可以处于的不同条件或位置。智能体会在这些状态之间迁移。
  • 动作空间A:智能体可以选择执行的所有可能行为或动作的集合。对于每一个状态 𝑠∈𝑆,智能体会从动作集合 𝐴 中选择一个动作 𝑎 执行。
  • 状态转移概率𝑃(𝑠′∣𝑠,𝑎):表示从一个状态 𝑠 执行动作 𝑎 后转移到下一个状态 𝑠′ 的概率分布。用 𝑃(𝑠′∣𝑠,𝑎) 表示,意味着给定当前状态 𝑠 和采取的动作 𝑎,智能体到达新状态 𝑠′ 的概率。
  • 奖励函数R:定义了一个从状态-动作对映射到即时奖励的函数。在执行动作 𝑎 后,智能体从状态 𝑠 转移到 𝑠′ 时获得的即时奖励记作 𝑅(𝑠,𝑎,𝑠′) 或者简写为 𝑟。
  • 折扣因子 𝛾:一个介于0到1之间的数值,它决定了对未来奖励的重视程度。值越接近1,说明智能体对未来奖励看得越长远,越注重长期利益;值越接近0,则更倾向于短期收益。

MDP的动态过程如下:某个智能体(agent)的初始状态为s0,然后从A中挑选一个动作a0执行,执行后,agent按Psa概率随机转移到了下一个s1状态,s1∈ Ps0a0。然后再执行一个动作a1,就转移到了s2,接下来再执行a2…,我们可以用下面的图表示状态转移的过程。

参考文献

强化学习入门:基本思想和经典算法 - 张浩在路上

一个RL的Github代码库

【知乎】一文看懂什么是强化学习?(基本概念+应用场景+主流算法+案例)

【CSDN】马尔可夫决策过程_马尔可夫决策过程


文章转载自:
http://biometry.jopebe.cn
http://cavecanem.jopebe.cn
http://alleynian.jopebe.cn
http://astomatous.jopebe.cn
http://ahemeral.jopebe.cn
http://cabalist.jopebe.cn
http://baaskaap.jopebe.cn
http://cathectic.jopebe.cn
http://alif.jopebe.cn
http://bagwash.jopebe.cn
http://aphoristic.jopebe.cn
http://asce.jopebe.cn
http://capitally.jopebe.cn
http://arow.jopebe.cn
http://antiferromagnet.jopebe.cn
http://bomb.jopebe.cn
http://blab.jopebe.cn
http://cereal.jopebe.cn
http://chemulpo.jopebe.cn
http://caseidin.jopebe.cn
http://calor.jopebe.cn
http://bryozoa.jopebe.cn
http://chinaware.jopebe.cn
http://caucasic.jopebe.cn
http://cannabis.jopebe.cn
http://bortsch.jopebe.cn
http://absolvent.jopebe.cn
http://chert.jopebe.cn
http://busing.jopebe.cn
http://accoucheuse.jopebe.cn
http://www.dtcms.com/a/281668.html

相关文章:

  • 如何进行 Docker 数据目录迁移
  • 三轴云台之深度学习算法篇
  • vscode配置运行完整C代码项目
  • QGIS新手教程9:字段计算器进阶用法与批量处理技巧
  • onecode 3.0 微内核引擎 基础注解驱动的速查手册(服务治理及通讯)
  • Altium Designer(AD)25软件下载及安装教程(7.9)
  • Axios方法完成图书管理页面完整版
  • Redis Desktop Manager(RDM)下载与安装使用教程
  • JavaScript中关于环境对象的拓展
  • 【Qt】 设计模式
  • Docker 镜像推送至 Coding 制品仓库超时问题排查与解决
  • 业务分析业务架构视角
  • 软件测试面试经历分享?
  • 在 SymPy 中精确提取三角函数系数的深度分析
  • LLM面试题目 3
  • 项目进度与预算脱节,如何进行同步管理
  • Linux部署Redis
  • 46. 携带研究材料(01背包二维数组)
  • Java程序员学从0学AI(五)
  • 发票查验接口的计费规则-核验成功返回参数
  • SpringBoot集成RocketMQ的两种方式
  • WGAS+WGCNA分析文章套路
  • LeetCode Hot100 【1.两数之和、2.两数相加、3.无重复字符的最长子串】
  • 动态数组:ArrayList的实现原理
  • 504网关超时可能是哪些原因导致?
  • web前端渡一大师课 01 事件循环
  • 【交流等效负载电阻的推导】
  • SpringBoot 项目搭建的 4 种常用方式,从入门到实践
  • 魔力宝贝归来虚拟机版怎么修复卡第一个任务
  • Kimi K2驱动Claude Code,稳定且低价