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

强化学习《初学者》

强化学习(Reinforcement Learning, RL)是机器学习的一个重要分支,它专注于让智能体(Agent)通过与环境(Environment)的交互来学习如何做出最优决策。

可能会觉得有些抽象,想象一下训练小狗做动作:如果它做对了,你就给零食(奖励);做错了就不给甚至轻微惩罚。

强化学习的最终目标:求解最优策略。沿着这个最优策略可以最大化长期累积奖励,而不是单次奖励。

基础概念

整篇会以网格寻找到目标网格的最优路径为例:

任务:从开始网格,找到到达目标网格的最优的路径。

1.1 状态(State)

智能体相对于环境的状态(如游戏画面、机器人传感器数据)

对于这个例子来说,这个状态可以是位置,总共有9个状态:

状态空间可以表示为: 

对于更复杂的状态可以包括速度、加速度等,具体的状态所包括的变量取决于当前的任务。对于例子的这个任务来说,只需要关注于位置即可,所以状态时位置。比如机器人的状态可以有位置、速度、加速度等等。

1.2 动作(Action)

对于每个状态,智能体可执行的操作

对于这个例子来说,对于每个状态,可能执行的动作有五个:向上、向右、向下、向左以及保持不动,分别表示为以及

每个状态的动作空间可以表示为:

不同的状态可以有不同的动作空间。

1.3 状态转移(State transition)

当采取动作时,智能体的状态可能会发生转移,从一个状态转到另一个状态,这个过程就成为状态转移。

例如,对于状态,选择动作时,则转移到状态 

对于状态,选择动作时,则转移到状态 :因为往上之后没有表格了

状态转移可以看作智能体和环境的一种交互行为

状态转移的表格表示:

 对于表格的表示来说,它只能表达确定的状态。

也可以使用概率来表示状态转移,其实就是使用条件概率来表示:在状态,如果选择动作,则状态转移到 

概率表示也是确定性的情况,但是状态转移可以是随机的,可以根据概率,随机选择一条状态来进行转移。

1.4 策略(Policy)

智能体决定动作的规则(如“在状态A时选择动作B”)。告诉智能体要选择哪一个状态

直观的表示:箭头表示策略

基于这个策略,从不同的点出发,则可以得到不同的路径:

 数学表征为:同样使用条件概率

这是一个确定的策略,也可以有不确定的策略:

 表格表征:

1.5 奖励(Reward)

环境对动作的即时反馈(如得分增加、能量消耗),也就是采取某个动作之后的得分,是一个实数、标量,可以看作人机交互的手段,引导智能体按照我们期望的方式行动。

分为:

  • 积极奖励:鼓励这种行为(0奖励也算一种特殊的鼓励  )
  • 消极奖励:乘法这种行为

在例子当中,可以设置一下奖励规则:

  • 智能体尝试越出边界:
  • 智能体进入forbidden cell:
  • 智能体进入目标cell:
  • 其他:

表格表征:

表示的是确定性的情况。

数学表征:条件概率,在状态时,如果我们选择动作,奖励是-1。

  • 的条件下,的概率为1,其他条件下的概率为0

注意:

  • 奖励规则是确定的,但是奖励转移时随机的。只有学习了就有奖励,但是获得奖励是 不确定的。
  • 奖励依赖于当前的状态和动作,而不是下一个状态。

1.6 trajectory(轨迹)和return(回报)

轨迹是一个 “状态-动作-奖励”链

回报的即是当前路径的奖励 :

判断哪个策略比较好:可以哪个策略的回报是greater。回报可以判断策略的好坏

上面的第一个策略的轨迹可以表示为:

回报为:

这个回报是没有意义的,因为这个回报时发散的。这个时候就需要discount rate,discounted return:

 通过的控制,回报就变成有限的,并且可以平衡短视和长视奖励,也就是是说:

  • 如果接近于0,discounted return的价值主要是近期获得的回报。
  • 如果接近于1,discounted return的价值主要是长期获得的回报。

1.7 Episode

当智能体遵循某个策略与环境交互时,可能会在某些终止状态处停止。由此产生的状态-动作序列被称为一个Episode

 

一个episode通常被定义为一段有限的交互轨迹。包含这类有限episode的任务称为episodic tasks。

有的任务没有终端状态,意味这与环境的交互没有结束点,这类任务称为持续任务(continuing tasks)。

实际上,我们可以通过将分集任务(episodic tasks)转化为持续任务(continuing tasks),在统一的数学框架下对待这两类任务。

  • 方案1:将目标状态视为一种特殊的吸收态。一旦智能体进入了吸收态,它便永远不会离开。从此时起,后续的奖励均为 r = 0。
  • 方案2:将目标状态视为一个正常的、具有策略的状态。即使智能体到达了目标状态,也可以选择离开。每次进入目标状态时,将获得 r = +1 的奖励。

这篇文章里面采用了 方案 2,这样做的好处是无需将目标状态与其他状态区别对待,可以像处理普通状态一样来处理目标状态。

1.8 马尔可夫决策过程(MDP)

MDP的主要元素:

集合

  • 状态
  • 动作
  • 奖励:

概率分布

  • 状态转移概率:在状态s,采取动作a,转移到状态s'的概率为
  • 奖励概率:在状态s,采取动作a,获得r奖励的概率为

策略:在状态s,选择动作a的概率为

马尔可夫属性:无记忆性属性

在马尔可夫过程中,未来的发展只依赖于前一个状态,而与过去的历史无关。

则网格这个例子也可表示为更加通用的模型:马尔可夫过程

 圆圈表示状态,带有箭头的链接表示状态转移。
一旦给出策略,马尔可夫决策过程就变成了马尔可夫过程!

1.9 总结

 强化学习就是智能体根据当前的状态选择动作,之后在环境中会进入另一个状态并获得一定的奖励,通过多次迭代,最大化这个累计奖励。

强化学习是一种机器学习方法,与监督学习和无监督学习不同。它并不依赖于标注数据,而是在一个环境中通过试错来学习最佳策略。这类似于小孩子通过尝试不同的行为来学习正确的做法。在强化学习中,核心要素:

  • 状态:智能体相对于环境的状态(如游戏画面、机器人传感器数据)
  • 动作:对于每个状态,智能体可执行的操作
  • 奖励:环境对动作的即时反馈(如得分增加、能量消耗)
  • 策略:智能体决定动作的规则(如“在状态A时选择动作B”)
  • 状态转移:当采取动作时,智能体的状态可能会发生转移,从一个状态转到另一个状态,这个过程就成为状态转移。

贝尔曼公式 

2.1 回顾return

回顾之前的内容,说过Return可以反映策略的好坏:下面三个路径通过计算可知第一个轨迹是最好的,第二个最差,第三个可能好也可能差,有一定的概率

return_{1}=0+\gamma 1+\gamma ^{2}1+...=\gamma \left ( 1+\gamma+\gamma ^{2}+... \right )=\frac{\gamma }{1-\gamma }

return_{2}=-1+\gamma 1+\gamma ^{2}1+...=-1+\gamma \left ( 1+\gamma+\gamma ^{2}+... \right )=-1+\frac{\gamma }{1-\gamma }

return_{3}=0.5return_{1}+0.5return_{2}=0.5\left ( -1+\frac{\gamma }{1-\gamma } \right )+0.5\left ( \frac{\gamma }{1-\gamma } \right )

return_{3}=-0.5+\left ( \frac{\gamma }{1-\gamma } \right )

return_{1}>return_{3}>return_{2}

2.2 计算return

方法1:通过定义,v_{i}表示从s_{i}出发得到的return

方法2:推导,状态之间的return存在依赖性 ,称为Bootstrapping。当前return依赖于其他的return

可以将上面的公式写成矩阵的形式:

也就是:特定确定性问题的贝尔曼公式

v=r+\gamma Pv

P矩阵就是策略(在这个例子里面,比较简单),通过这个公式可以求解v

以下的例子就可以直接写出来return的依赖性:

 

持续更新……

参考:B站up主第1课-基本概念(State,action,policy等)_哔哩哔哩_bilibili,听视频时做的笔记。


http://www.kler.cn/a/546300.html

相关文章:

  • twisted实现MMORPG 游戏数据库操作封装设计与实现
  • 行内元素和块级元素
  • CP AUTOSAR标准之GPTDriver(AUTOSAR_SWS_GPTDriver)(更新中……)
  • 自动从 Gitee 同步到 GitHub
  • STM32操作FLASH
  • C++17 中的 std::reduce:详细教程
  • 【深度强化学习】策略梯度算法:REINFORCE
  • ChatGPT vs DeepSeek详细对比
  • 网络安全学习架构 网络安全架构内容
  • DeepSeek R1 671b 满血版部署笔记
  • cap4:YoloV5的TensorRT部署指南(python版)
  • 国家2025年数字化污水厂政策与视频孪生赋能智慧污水厂建设
  • redis之lua实现原理
  • 『大模型笔记』Ollama环境变量大全!
  • 【OJ项目】深入剖析题目接口控制器:功能、实现与应用
  • 操作系统真象还原整体观
  • 鸿蒙5.0实战案例:基于List的滑动丢帧性能问题分析思路案例
  • 蓝桥杯 Java B 组之枚举算法(暴力破解)
  • 网络IP地址冲突故障,快速解决方案!
  • yanshee机器人初次使用说明(备注)-PyCharm