强化学习-MATLAB

发布于:2025-08-11 ⋅ 阅读:(18) ⋅ 点赞:(0)

1.

What is RL

How do i set it and solve it?

benefits and drawbacks

black box -> machine learning

ML combines 3 Paradigm

Unsupervised Learning:

不需要标签,根据内在特征进行聚类等相似操作;

Supervised Learning:

这就是ML所擅长的,从数据中找出特征进而得到label;

RL与这两个使用静态数据集的学习框架不同;

序列行为实现最优的回报;

可以将policy使用深度神经网络这也是DRL的由来;

RL算法的作用就是基于观测,奖励等去优化策略,以采取最优动作进而获得最大回报;

所以,RL就是一个优化问题:

与其他优化问题区分开来:

关键点:评估状态价值,将能够使得智能体获得更高回报,而不是只是关注即时奖励;

如果不能够评估状态价值,很有可能导致Agent陷入利用(贪婪)的状态,不断在原地打转;

当然,能够估计越来越远的状态价值,并非适合所有任务,对于金融等任务,等你到了那个时间点,可能并非和预测的一样,因此这种情况下,短视就更加重要;

而控制智能体远视和短视,依靠gamma折扣因子;

探索利用平衡

智能体能否冒着短期的风险去找到探索一个更大的奖励,进而填补value函数中更多未知部分;

RL问题和控制问题异同:

最小化cost实际上可以通过最大化-reward来实现,

在RL更新过程中实际上也使用了-loss区别于监督学习这类任务;

不同:在一段时间内RL需要去学习最优策略,而不是说显式求解

so:

总结:这基本上就是一个任务,我们需要在算法层面考虑的

2.Env and Reward Engineering

工作流:

和控制任务不同,强化学习中环境是除agent之外的所有(包括被控制对象的动态特性)

Model-based很好用,可以避免无效的探索,但是目前model-free使用最多,避免对模型建模

仿真环境好处:

传统控制任务已经做好了仿真,

更加具体:

奖励的设计:

问题:

稀疏奖励和指定优化

之后就是策略和算法(取决于环境设置)

维度灾难:

表格的形式很明显无法应对这种状态很多的情况,尤其是连续空间

此时如果有一个value函数能够通过S-A得到,其实也就是说找到一个拟合函数能够获得s-a的value,那么这个V的结构是什么?实际上很难去设计,通过NN去拟合比较符合

3.Policy

前情回顾,有了环境和奖励之后设计策略

本节主要回答两个问题:

1.为什么要用NN来表示函数,而不是表格

2.为什么需要两个网络,AC

1解释了两个原因

如无激活函数多层线性层等价于一层

网络太复杂也不好,但是还是需要设计

更多还是看任务来设计

不是确定性的行为,而是概率(探索利用平衡)

这里说得很好,更新网络就是求解每个参数的权重和bias关于奖励的导数,从而更新。调整到正奖励增长方向

存在问题:

以上是policy-based,下面是value-based

贝尔曼方程(重复这个动作将更新S-A得到真值

缺点:只适合动作空间较小的,如果是连续空间,那不实际,不可能通过使用贝尔曼方程更新一个无限的action空间;

因此提出了AC,这个时候critic只是用了一个动作,而不需要评估所有动作

actor从critic的反馈中学习正确动作,从而了解新动作好坏;评价器从获得的奖励中学习价值函数

部署:离线训练好之后,可以只用策略,但是如果环境复杂,想要持续更新,也可以将RL算法也进行部署

总结

4.样本效率问题

在强化学习(RL)领域,value-based方法(如Q-learning及其变种)与policy-based方法(如REINFORCE、PPO)在样本效率上的差异,源于两者本质的学习机制和使用经验数据的方式不同。下面给出学术且严谨的分析:


1. 样本效率(Sample Efficiency)的定义

样本效率指的是算法利用有限环境交互样本达到良好性能的能力。高样本效率意味着用较少的环境采样数据就能学得较优策略。


2. Value-based 方法的样本效率特点

  • 核心思想:value-based方法通过估计状态-动作价值函数 Q(s,a)Q(s,a) 来间接推导策略,通常策略是贪婪选择 π(s)=arg⁡max⁡aQ(s,a)\pi(s) = \arg\max_a Q(s,a)。

  • 经验重用:value-based方法,尤其基于离线经验回放(Replay Buffer)技术,能够高效利用历史经验样本。Q-learning及其深度版本DQN通过经验回放和目标网络等技术显著提升了样本利用率。

  • 引导作用强:价值函数提供了关于环境长期回报的直接估计,便于梯度更新方向明确,收敛速度较快。

  • 缺陷:value-based方法对离散动作空间较为适用,连续动作空间处理较复杂;且估计的 QQ 函数存在高方差和偏差,可能导致不稳定。

综上,value-based方法在离散动作环境中往往具备较高的样本效率,原因在于经验回放的多次利用和价值函数的直接反馈。


3. Policy-based 方法的样本效率特点

  • 核心思想:policy-based方法直接优化策略参数 θ\theta,通过最大化期望回报 J(θ)=Eπθ[R]J(\theta) = \mathbb{E}_{\pi_\theta}[R],如策略梯度算法。

  • 采样依赖性强:政策梯度依赖于从当前策略采样生成的轨迹数据,且通常不使用经验回放(因为旧策略轨迹分布与当前策略分布不匹配,导致离策略估计复杂),因此每次更新的数据利用率较低。

  • 高方差问题:策略梯度估计常带有高方差,导致训练不稳定,需采用基线函数、方差减少技术,但仍然制约样本效率。

  • 优势:适用于连续动作空间且支持直接优化随机策略,收敛至局部最优解且更自然地处理策略的随机性和探索。

因此,纯策略梯度方法的样本效率一般低于value-based方法,尤其是在缺乏充分离线经验重用时。


4. 结合方法及改进

  • Actor-Critic方法:结合value-based和policy-based优势,通过value函数引导策略更新,改善样本效率和稳定性。

  • 经验重用:如PPO等策略优化算法引入了重要性采样和截断策略,部分缓解了策略迭代中样本利用不足问题。

  • 离策略策略梯度:如DDPG、SAC等,结合了经验回放机制,提升了策略梯度方法的样本效率。


5. 本质差异总结

方面 Value-based Policy-based
样本利用方式 支持经验回放,重复利用样本 依赖最新策略采样,经验利用较低
估计目标 状态-动作价值函数 策略参数,直接优化策略
方差与偏差 有偏差较小但估计有偏 无偏但方差较大
动作空间 多用于离散动作空间 自然适用于连续动作空间
样本效率 通常较高,尤其离散空间 通常较低,需改进算法提高效率

6. 总结

value-based方法通过对价值函数的估计,结合经验回放等技术,能更充分地利用样本,样本效率较高;而policy-based方法直接优化策略参数,通常依赖在线采样,且存在高方差,样本效率相对较低。二者的样本效率差异主要源于数据利用方式、估计目标及算法结构的根本不同。


Actor-Critic(AC)方法通过将value-based与policy-based方法的核心优势结合起来,既提升了学习的稳定性,又改善了样本效率。以下从学术角度详细分析AC结合两者优势的具体体现:


1. Actor-Critic的结构简介

  • Actor:直接参数化策略 πθ(a∣s)\pi_\theta(a|s),负责生成动作,属于policy-based范畴。

  • Critic:估计价值函数 Vw(s)V_w(s) 或 Qw(s,a)Q_w(s,a),用于评价Actor动作的质量,属于value-based范畴。

两者交替更新,Actor通过Critic提供的价值估计来指导策略优化。


2. Actor-Critic结合的优势

方面 详细描述
1. 直接策略优化 Actor采用policy gradient方法直接优化策略,适合连续动作空间,避免了value-based方法中求最大动作值时的复杂性和离散动作限制。
2. 低方差梯度估计 Critic估计状态值或动作值,作为baseline或优势函数,显著降低了策略梯度的方差,提升训练稳定性和收敛速度。
3. 改善样本效率 Critic利用价值函数估计对Actor进行“指导”,避免纯策略梯度方法依赖大量轨迹采样,同时支持部分经验重用,提升样本利用率。
4. 引导策略更新方向 Critic的价值估计给出对策略行为好坏的反馈,Actor依赖这一信息进行梯度更新,避免盲目采样,提高优化效率。
5. 支持离策略学习 许多AC变体(如DDPG、SAC)结合经验回放机制,实现了离策略学习,进一步提升样本效率。

3. 从算法实现角度看

  • Critic通过时序差分(TD)误差来逼近价值函数,利用单步奖励和下一状态价值实现更新,减少了Monte Carlo方法的高方差问题。

  • Actor则基于Critic提供的价值评估,计算优势函数(Advantage function),作为策略梯度的权重,实现更有效的策略改进。

  • 两者通过交替优化实现策略和价值的共同提升,使训练过程更为稳定且样本利用更充分。


4. 具体优势总结

价值函数方法优势(Critic) 策略梯度方法优势(Actor)
能够提供对策略行为的明确价值反馈 直接优化策略参数,适合连续动作空间
通过经验重用提升样本效率 可优化随机策略,提升探索能力
时序差分减少估计方差 不需要在动作空间执行最大化运算
作为基线降低策略梯度估计的方差 允许灵活表达复杂策略结构

5. 总结

Actor-Critic方法的设计充分融合了value-based的价值估计和policy-based的策略直接优化的优势,通过Critic对策略进行有效评估,降低策略梯度的方差并提高样本利用效率,从而提升了强化学习算法的整体性能和稳定性。


5.例子:双足机器人行走

传统:应对31的环境变量,给出6个维度的action

rl:

可以看到,根据机器人在仿真环境下的行为,不断更新奖励函数,加入相应的项,实现最近似的行为;

这个时候考虑policy

如果神经元不足,很难得到一个有效函数;

如果过多,有可能将花费更多时间 找到拟合函数,并且可能过拟合;

执行器确定输出,RL算法和critic只是帮助确定执行器中的参数;

上述是走直线的任务,我们没办法对其发出指令;

如果我想让机器人去目标点(这就是一个额外逻辑,相当于指令)

而不是只会进行直线任务,计算error在当前位置和参考位置之间的差,去优化奖励

为了更好的训练,加入误差变化率也能得到进一步提升

具体项目中就是将error添加到obs和reward

使用参考信号,保留发送指令的能力

利用领域知识:

RL输出不再是6个指令而是落脚点,在利用这个落脚点根据控制逻辑去进行计算获得相应输出(这一部分由领域知识来设计)

从而保留RL解决更加棘手的问题

为什么用NN也存在一个原因,为了感知环境,会存在很多传感器,其中的数据用NN来处理

通过结合两者有点,让RL更加关注于策略输出,而不需要考虑controller能够实现的部分。理论上看简化了agent但实际上是能够让agent处理更加困难的问题;

6.drawbacks

其实最重要的一大问题就是:泛化,即使环境和策略已经完美,一旦部署实机,很有可能就失效了;

1.一旦有了一个策略,如何去调优

把所有困难压缩成黑盒函数;

传统算法:单一变量

但是基于NN就无法这样做了;需要重新设计;

还有一个大问题就是环境模型的不完美

传统方法,由于我们理解function,可以去修改适应环境 

但是对于RL本身环境就不完美,网络也无法理解(黑盒模型)这个时候只能依靠在实际物理环境 训练才能得到好的效果;

解决方法:缩小RL的范围,让其理解自己在做什么

2.如何知道work

测试:

1.传统方法相似环境输出也是相似的,但是RL不会,因为使用了NN,导致很难做到;

2.大尺度的输出导致验证也很困难,无法保证处理其他图像仍然有效;

3.传统方法通过code表明他的正确性,但是对于NN这种没办法有一个formal method

尽管RL面临很多问题:难以验证性能,难以指出错误,难以调整参数;

但也有未来

1.提升系统鲁棒性:每个回合都修改环境参数,让机器人去训练;

2.提升安全性

还有一种方法:让RL去学习传统控制器中的更小的参数;一旦学到了 一组最优增益,就可以去掉NN了,直接利用这组增益去运行;

最后仍然得到一个传统架构:

未来:


网站公告

今日签到

点亮在社区的每一天
去签到