type
status
date
slug
summary
tags
category
icon
password
深度强化学习
监督学习vs强化学习
- 监督学习:
- 强化学习:
- 事物按时间顺序排列,过去会影响未来,通常真实答案是未知的
- 信用分配:结果是积累性的?延迟奖励?
在监督学习中,数据是给定的,它只是以一组XY元组的形式提供给你;在强化学习中,你必须自己选择动作并收集自己的数据,因此,你不仅要担心数据集中的动作可能不是最优动作,还必须实际决定如何收集这些数据。你的目标是学习一个策略,它将状态S映射到动作A。一个好的策略是能够最大化积累总奖励的策略
基于学习的控制能带给我们的最令人兴奋的事情之一就是涌现行为,这些行为能比人类做得更好。
强化学习
- learning and search
- learning:观察世界,收集数据,然后在这些数据上训练一个学习机器,它会找出其中的模式
- search:利用计算来提取推理的过程(并不意味着像A*那样,而是意味着某种计算或优化),不是关于获取更多数据,而是关于利用你已有的信息来达到更有趣的结论。搜索本质上是优化
MDP
马尔可夫决策过程,即下一状态仅依赖于当前状态和动作
- 深度强化学习
- 深度部分为我们提供了从大型复杂数据集中进行可扩展学习的能力
- 强化学习为我们提供了优化,即采取行动的能力,以及学习和搜索的结合
行为的监督学习
- 通常情况下,如果你想表示你的策略,你就必须表示一个从智能体观察到的任何信息到其行为的映射(监督学习,一个图像分类器将输入x映射到输出y。一个策略将观察o映射到输出a)
现在,在一个实际的序列决策过 程中,当然,你所选择的动作会影响到你未来看到的观察结果。而且你的动作不会像在标准图像分类任务中那样是图像标签,而是决策,这些决策会影响未来的结果。因此,与其预测图片是否为老虎的照片,你可能会预测一个动作选择,比如逃跑、忽略它或采取其他行动。

基于观察的操作策略和基于状态的操作策略之间的区别。
强化学习只能学习基于状态的操作策略,这意味着它们需要策略的输入满足MDP性质,即完全编码系统的整个状态。有些算法则可以一不完全的状态来推断
s和o的混淆时常发生
两种符号表示方式 -state -state -action -action
模仿学习Imitation Learning
- 我们的目标是学习策略,即在给定O的情况下A的分布,并通过使用监督学习算法来实现这一点
- 将A作为标签,O作为输入,就可以像在图像分类中使用标记数据集那样使用这个训练集,只需通过监督学习训练一个深度神经网络来预测在给定O情况下A的分布,这就是最基本的模仿学习方法的本质
- 基于学习的控制的深度强化学习方法
模仿学习
随着机器人和其他智能体所要处理的任务和环境逐渐复杂化,要想手动的对机器人的动作和行为进行编程变得越来越复杂。相对简单的一点的方式是,人类扮演老师的角色来教机器人如何完成任务,而机器人则通过老师的演示,模仿和学习。这便是模仿学习。
- 观测值是状态的某种随机函数,它可能包含也可能不包含推理完整状态所需的所有信息
在监督学习中有一个很重要的点:独立同分布,这意味着你为地一个示例输出的标签与第二个示例的正确解决方案无关。但在此处,当你选择一个动作时,它实际上改变了你将在下一个时间步观察到的状态
- P train
- What makes behavioral cloning easy and what makes it hard?
- 有意的添加错误和纠正:如果你以某种概率迫使专家犯错,而这个概率与他们所处的状态无关,那么这些错误将与状态基本不相关,而最优行动将与状态相关。因此,当你的神经网络学习与状态最相关的行动时,它实际上会倾向于学习最优行动并避免错误,但它仍然会从那些较差状态中的修正中受益
- 数据增强:
- 行为克隆
- 聪明地收集和增强我们的数据
- 使用强大的模型,这些模型很少犯错
- 使用多任务学习
- 改变数据收集过程并使用Dagger
行为克隆(Behavior Cloning)通常是指通过模仿(imitation)专家行为来训练一个策略,这在机器人学和强化学习中有广泛应用。常见的挑战可能包括分布偏移(Distribution Shift)、数据不足、专家数据的质量、泛化能力差等。
如何解决行为克隆挑战的方法:
- 为什么你可能会无法适应专家的行为?
- 非马尔可夫行为,人类行为在很大程度上受到时间背景的影响
- 需要一个能够读取观察历史记录的策略表示
- 多模态行为Multimodal behavior
- 连续化,使用更具表达力的连续分布,输出一些更复杂的东西,而不是单一高斯分布的均值和方差
- 离散化,实际使用离散化,但在高维动作空间中使其可行
- expressive continuous distributions
- mixture of Gaussians
- latent variable models
- 扩散模型
- Discretization
- 离散化一般来说是获得复杂分布的一个非常好的办法,但在高纬度中直接应用离散化是非常困难的
- 一次离散化一个维度,这就是自回归离散化背后的思想

使用观察历史并不总是能让事情变得更好,它可能会加剧数据中出现的相关性
马尔可夫性质是区分状态与观测值的主要特征,状态必须要满足马尔可夫性质,而观测值不需要
多模态
模态在统计学中指的是概率分布中的峰值,也就是概率密度函数最高的点。单模态就是只有一个峰,多模态则有多个峰。高斯分布的概率密度函数是一个钟形曲线,中间最高,两边逐渐下降,所以只有一个峰,也就是单模态的。
Expressive Continuous Distribution
先验分布:先验分布在隐变量模型中为隐变量提供初始假设,然后在推断过程中结合数据得到后验分布。这样,先验是隐变量模型的基础部分,帮助模型捕捉数据中的潜在结构。
- 自回归离散化(自回归模型,如GPT,核心思想是基于历史信息逐步生成未来数据)
- 自回归离散化的动机
- 问题:连续动作空间的挑战
- 高维连续动作难以直接建模:例如,控制机器人手臂需要同时调整多个关节的角度(高维连续值),传统DRL方法(如DDPG)可能面临训练不稳定、收敛困难等问题。
- 离散化动作空间的维度灾难:若简单地将连续动作离散化为N个选项,维度随变量数量指数增长(例如3个关节各分10档,总动作数为10^3=1000)。
- 解决方案:自回归离散化
- 将连续动作分解为多个顺序决策步骤,每一步选择动作的一部分,且后续步骤依赖前序步骤的结果。
- 类比:组装乐高时,先选底座,再选第一层积木,最后选第二层积木——每一步的选择基于之前的步骤。
- 降低动作空间维度
- 原本3个关节各分10档的动作空间为10^3=1000种组合。
- 自回归离散化后,每一步只需处理10种选项,总计算量从1000降低到10+10+10=30。
- 在深度强化学习中,如何利用自回归模型来处理需要分步决策的任务,尤其是在动作空间被离散化的情况下。
- 序列模型不输入每个维度的真实值(我们没有这些东西),而是输入前一个时间步的预测结果:训练时使用真实值(教师强制)来加速收敛,而推理时由于缺乏真实值,必须使用模型自身的预测结果,这可能导致误差累积,但这是实际应用中的必要妥协。
- 通过减少错误使尽可能接近;
- 改变,使其更好地覆盖策略实际访问的状态
- 改变训练策略
- 改变数据收集策略
- 当我们改变数据集,就会引入一些额外的假设,因此我们实际上将会收集比初始演示更多的数据——应该收集哪些数据?这就是dagger回答的问题
分布偏移问题
即使在接近训练数据的情况下,你的策略也会至少犯一些小的错误
如何使尽可能接近?解决方法:
- Dagger算法
- 在现实世界中运行策略,观察它访问哪些状态,并请人类为这些状态打标签
- goal:collect training data from instead of
为什么模仿学习本身还不够?
模仿学习需要人类提供数据,这有时候是可行的,但是深度学习在数据非常丰富的时候效果最佳。因此要求人类提供大量数据可能是一个巨大的限制。如果算法能够自主收集数据,那么我们就可以进入深度网络真正繁荣且数据非常丰富的领域,而不需要大量的人力投入。另一件事是人类不擅长提供某些类型的动作,例如他们可能不太擅长,控制四轴飞行器螺旋桨的低级命令,使其执行一些非常复杂的特技飞行。如果你想让人类控制复杂人形机器人中的所有关节那可能会更难。——尝试让机器学会自主学习?
如果我们的目标不在仅仅是模仿,而是我们想做其他事情,那么我们究竟想要什么呢?
模仿学习、监督学习和强化学习强化学习
DRL常用方法详解
- 基于值函数的方法
- DQN
- 改进DQN
- 基于策略梯度的方法
- REINFORCE
- PPO(Proximal Policy Optimization)
- SAC(Soft Actor-Critic)
- 混合方法(Actor-Critic)
- A3C(Asynchronous Advantage Actor-Critic)
- TD3(Twin Delayed DDPG)

当我们讨论模仿学习时,我们了解到可以将策略表示为在给定观测值条件下,关于动作的分布,我们称这种策略为,并且通常使用下标来表示该策略依赖于我们将要表示为的参数向量。
在进行深度强化学习时,我们通常会用深度神经网络来表示策略
在选择当前动作时,你必须考虑未来的奖励,这确实是决策问题的核心所在,这正是强化学习问题的核心——你如何选择现在的正确动作以在未来获得更高的奖励?
一、马尔可夫
- Markov chain
- S,状态空间(简单来说就是一个集合)
- T,转移操作符/转移概率/动力学函数,规定了一个条件概率分布
- 如果我们把时间步t每个状态的概率表示为一个向量,假设我们有n个状态,这就变成了一个包含n个元素的向量,我们可以称之为
- 然后我们可以将转移概率T写成一个矩阵,其中the ijth entry是从当前状态j转移到状态i的概率
- 如果我们这样做,那么我们可以将下一个时间步的状态概率简单表示为概率矩阵T和状态
状态、动作、奖励以及转移概率共同定义了我们说的马尔可夫决策过程

M = {S,T} 一组状态S,以及一个转移函数T
用一点线性代数来写概率链式法则:
表示第i个状态的概率
为了引入动作的概念,我们将马尔科夫链转化为马尔可夫决策过程 ——动作空间和奖励函数
- 马尔可夫决策过程

奖励函数是从状态空间和动作空间的笛卡尔积映射到实数值的函数,而这正是我们定义强化学习目标的基础。所以我们称R为奖励,我们的目标就是最大化总奖励
(在MDP中,奖励函数通常被定义为R: S × A → ℝ,这里的S是状态空间,A是动作空间,笛卡尔积S × A表示所有可能的状态-动作对。每个这样的对都会被映射到一个实数值,表示在该状态下采取某个动作所获得的即时奖励。)
- 马尔可夫决策过程的定义扩展到部分可观察的马尔可夫决策过程
这使我们可以引入观察的概念——增加两个额外的对象:观察空间O和观察概率E(发射概率)

奖励函数仍然是从状态和动作映射到实数,因此奖励函数经常定义在状态上,而非观察
二、强化学习的目标The goal of reinforcement learning
- 假设我们直接学习了策略,我们明确学习,假设我们的策略是基于S的条件,而是对应于策略的参数,所以如果策略是一个深度神经网络,那么表示该深度神经网络的参数
- 我们可以将强化学习的目标定义为在轨迹分布下的期望值,因此,强化学习的目标是找到定义我们策略的参数,以便最大化轨迹上奖励综合的期望值
- 从学习到搜索:特征表示(Feature Representation)
- 经过神经网络(深度学习)训练后,智能体会从环境数据中提取出高层次的特征(features),形成对环境的理解。
- 这些特征可以是状态表示(State Representation),即智能体对当前环境的内部建模,例如在自动驾驶中,神经网络可以从摄像头图像中提取道路、车辆、行人等信息。
- 这些特征被输入到搜索(优化)部分,帮助智能体进行策略优化。
- 从搜索到学习:最优策略和反馈(Optimal Policy & Feedback)
- 搜索部分主要进行策略优化(Policy Optimization),即利用强化学习的方法(如 Q-learning、Actor-Critic)来寻找最优的行动方案。
- 这个优化过程使用试错法(Trial and Error),基于奖励信号不断调整策略,使得智能体能够更好地行动。
- 经过优化后,策略会被用来生成新的数据(新的行动和结果),这些数据再次被送回学习部分,以更新神经网络的特征提取能力。
- 学习(Learning)部分提供环境的理解,使得搜索可以更高效地进行优化,而不是在随机的搜索空间中盲目试探。
- 搜索(Search)部分提供优化后的策略,帮助学习部分持续改进特征提取,使得智能体对环境的建模越来越准确。
- 这种循环迭代使得智能体不断进步,最终涌现出复杂的智能行为(Emergent Intelligence)。

Learning & Search
在这张图中,学习(Learning) 和 搜索(Search) 之间的循环关系,表示的是深度强化学习(Deep Reinforcement Learning, DRL)中的信息流转。主要传递的内容包括:
这种双向信息流的作用:
- 到现在为止,已经将目标定义为在轨迹分布下奖励总和的期望值

我们的分布实际上遵循一个马尔可夫链,该链具有扩展空间和转移算子,这个转移算子是MDP转移和策略的乘积

平稳分布
遍历性假设很重要,因为它防止了这样一种情况:如果你在一个MDP的某个部分开始,你可能永远无法到达另一个部分。所以如果这是真的,如果从一个部分开始可能导致你永远无法到达另一个部分,那么你从哪里开始总是有影响的,平稳分布就不存在。但如果情况不是这样,即使从任何状态到达任何其他状态最终都有一丝机会,那么你将会有一个平稳分布,前提是它是无周期的。因此,平稳分布必须遵守这个方程:,否则它就不是平稳分布。所以平稳意味着它在转移前后是相同的。如果在转移前后相同,那么应用t足够多次最终会让你到达它。
为什么强化学习算法可以使用像梯度下降这样的平滑优化方法来优化看似不可微分的目标(如游戏的输赢)
一个重要原因是我们实际上始终关注的是回报的期望值。期望值的有趣之处在于,即使我们取期望值的函数本身高度不连续,期望值在其对应分布的参数中可以是连续的
你有一个二元行动,要么掉下去,要么不掉下去。这是一个参数为的伯努利随机变量。所以有概率你会掉下去,概率你不会掉下去。现在有趣的是,相对于的奖励的期望值在中实际上是平滑的,因为你有的概率掉下去,其奖励是-1,以及1-的概率保持在路上,所以奖励是,这是完全平滑且在中完全可微的
即在可微分且平滑的概率分布下的非光滑和非可微分函数的期望值本身是平滑且可微的
三、Algorithms(强化学习算法)
策略梯度算法的基本高层框架

- 强化学习在某种意义上是通过试错来进行学习的
- Q函数
- 价值函数
- 价值函数的定义方式非常相似,只是它仅以状态为条件,而不是状态和动作。所以价值函数说的是,如果从状态S_t开始,根据你的策略展开,你的期望总价值会是多少。
- 而价值函数也可以写成对动作的Q函数的期望值。


PPO的优化目标是最大化优势函数A_t(衡量某个策略比平均策略值好多少)
- 作者:spark
- 链接:http://sparkleaf.cn/article/DRL
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。