强化学习第一讲:强化学习是什么,强化学习分类

强化学习与常见深度学习的区别:

"强化学习与深度学习最大的不同在于: 它是'在干中学'。它不需要预先准备好的标准答案(标签),而是通过机器人与环境的实时交互 产生经验。它将动作产生的奖励信号 作为指引,通过不断试错,最终学会在特定状态下采取哪种动作能获得最高累计分数。这让它能够解决那些'连人类都不知道标准答案'的复杂决策问题。"


强化学习分类:基于不理解环境理解环境

讨论机器人"脑子里有没有预言师"

强化学习有两种,一种是不理解环境,在真实世界中不断探索。一种是理解环境,二者使用的学习方法是相同的,但是理解环境下,也就是机器人会拥有一个虚拟环境,机器人不仅可以在真实世界,也可以在虚拟世界中的训练跟尝试。

1. 不理解环境:Model-Free RL

  • 核心逻辑: 机器人(Agent)不知道环境下一步会发生什么。它就像在漆黑的房间里走路,只有迈出一步并撞到了墙,它才知道"噢,这里不能走"。

  • 学习方式: 完全通过试错(Trial and Error)。它不尝试去建模或预测环境的规律,只记录"在什么状态下,做什么动作能得到奖励"。

  • 图中提到的算法: Q-LearningSarsaPolicy Gradients 在这种模式下直接从现实交互的经验中学习。

2. 理解环境:Model-Based RL

  • 核心逻辑: 机器人会尝试在心里构建一个"虚拟世界"。它会学习环境的两个关键要素:

    1. 状态转移概率 p(s' | s, a):我如果在状态 s 做了动作 a,下一步 s' 会是什么?

    2. 奖励函数 R(s, a):这样做会得到多少分?

  • 学习方式: 它可以在脑子里进行"推演"或"想象"。比如它还没动,就已经预见到"如果我往前走,我就能吃到果子"。

  • 图中提到的算法: 你会发现右边也写了相同的算法。这是因为,即使有了环境模型,我们依然需要使用 Q-LearningPolicy Gradient 等手段在"虚拟模型"提供的模拟经验中去寻找最优策略。


3. 直观的类比

方式 核心逻辑 形象比喻
Model-Free (真机) 直接在真机上乱动,撞坏了再修。 闭着眼在悬崖边走,掉下去才知道疼。
Sim-to-Real (Gazebo) 在仿真环境里乱动,练好了再把参数拷贝到真机。 在**虚拟现实(VR)**里练习走悬崖,练好了再去走真的。
Model-Based RL 机器人学过物理定律(或自学了规律),在动之前先预演结果。 走悬崖前,脑补出走哪一步会掉下去,从而避开。

4. 为什么图里两边算法名字是一样的?

这是初学者最容易困惑的地方。你可以这样理解:

  • 左边(Model-Free) :算法直接跟真实世界玩。

  • 右边(Model-Based) :算法先观察世界,画出一张地图(Model) ,然后算法在地图上反复练习,练好了再去真实世界。


如何拥有预演能力/想象能力?

1. 什么是"模型"?(就是一个"预言家")

在强化学习里,"模型" (Model) 并不是指机器人的 3D 模型,而是一个**"预言家"**。 你给这个预言家两个信息:

  1. 现在的状态(比如:车在路中间,速度 60)。

  2. 准备做的动作(比如:猛打左方向盘)。

预言家会告诉你:下一秒会发生什么(比如:车会侧翻)。

  • Model-Free (无模型):机器人没有这个预言家。它必须真的猛打一下方向盘,翻车了,它才知道"哦,这样不行"。

  • Model-Based (有模型):机器人脑子里住着这个预言家。它想打方向盘之前,先问预言家:"我这样干会怎样?"预言家说会翻车,机器人就不干了。


2. 机器人是怎么"自学"物理定律的?

机器人并不需要读物理书(牛顿力学公式)。它是通过**"看""记"**来学习的。

  1. 收集数据 :机器人先在环境里乱动一通(或者看人类操作)。它记录下:在 A 状态,做了 B 动作,变成了 C 状态

  2. 训练网络:它把成千上万条这种记录喂给一个神经网络。

  3. 变成直觉:慢慢地,神经网络就掌握了规律。即使它不知道什么是"惯性",但它知道"如果速度快的时候猛拐弯,结果就会很糟糕"。

这个神经网络,就是它自学出来的"物理定律"。


3. "预演"到底是怎么操作的?(脑内模拟)

当机器人掌握了上面的"预言能力"后,它在做决定前会进行**"脑内小剧场"**:

  • 第一步(设想):它想,我要去抓那个杯子,我有 10 种伸手的路径。

  • 第二步(推演):它把这 10 种路径分别输入给"预言家"(模型)。

  • 第三步(打分)

    • 路径 1:预言家说会撞到桌角(0 分)。

    • 路径 2:预言家说太慢了(50 分)。

    • 路径 3:预言家说姿势很完美(100 分)。

  • 第四步(执行) :它在现实中只执行那个 100 分 的动作。

这就是"预演"。它在脑子里把错都犯完了,在现实中表现得就像个老司机。


4. 为什么要这么麻烦?直接试错不行吗?

在游戏里(比如马里奥)可以死一万次,但在工业界:

  • 太贵了:真机机器人几十万一台,撞一次可能就报废了。

  • 太慢了:真机动一下要 1 秒,但在电脑脑子里"预演"一下只要 0.001 秒。

总结一下

  • Model-Free:是不带脑子交学费(直接去撞)。

  • Model-Based:是带了脑子(预言家),先在脑子里撞,撞对了再去现实里做。


预演能力/想象能力那么好,那还需要不理解环境的模型?

1. 模型偏差与"钻空子" (Model Bias & Exploitation)

这是最严重的问题。机器人非常"聪明",它会利用预言家的漏洞。

  • 现象:如果你的模型在某个地方有一点点不准(比如模型误以为机械臂只要极速旋转就能产生向上飞的力),机器人在"脑内预演"时就会发现这个"大招"。

  • 后果:它会在现实中疯狂尝试这个动作,结果就是机械臂当场报废。这在学术上叫**"模型剥削"**------算法找到了模型里的 Bug,并把它当成了通往成功的捷径。

2. 误差累积 (Compounding Errors)

预演通常不是只看一秒,而是要看未来的一长串动作。

  • 现象:假设预言家预测 0.1 秒后的位置有 1% 的误差。这看起来没啥,但它基于这个错误的位置去预测 0.2 秒、0.5 秒、1 秒后的情况......

  • 后果:随着时间推移,误差会像滚雪球一样越来越大。到最后,机器人脑子里的"幻觉"已经和现实完全脱节了。**"差之毫厘,谬以千里"**是这个方法最真实的写照。

3. 计算开销巨大 (Computational Cost)

"预演"是非常耗脑子的。

  • 现象:如果你想让机器人在 1 毫秒(0.001秒)内做出反应,它必须在这一瞬之间,在脑子里跑几千次、上万次的模拟演练。

  • 后果 :这需要非常强大的计算芯片(比如昂贵的显卡)。很多嵌入式机器人、无人机或者小型控制器,根本背不动这么大的计算量。有时候,等它在脑子里演练完,现实中已经撞墙了。

4. 某些环境"不可建模" (Hard-to-Model Environments)

有些物理规律,人类至今都很难写出完美的公式,神经网络也很难学。

  • 现象

    • 流体/粉体:比如让机器人去铲一堆沙子,或者在水流里游泳。沙粒的碰撞和水的流动极其复杂。

    • 软体结构:比如抓取一块柔软的豆腐或海绵。

    • 人类行为:比如机器人在商场里走,它很难准确预测一个路人下一秒会往左还是往右闪避。

  • 后果:当预言家对环境完全摸不着头脑时,预演就彻底失效了。


总结:两者的选择题

为了让你更好理解,我们对比一下:

  • Model-Free (不预演) :虽然浪费数据、学得慢、容易撞坏东西,但它直接面对现实。只要它学成了,就是实打实的操作经验,没有"幻觉"问题。所以像 OpenAI 的 Dactyl 机械手(玩魔方那个)很多时候还是选这个。

  • Model-Based (预演):学得极快,但非常依赖预言家的质量。如果预言家不行,整个系统就是个**"精密的垃圾桶"**。

目前工业界是怎么解决的?

为了克服这些缺陷,大家通常会用一种**"半信半疑"**的策略:

  1. 短程预测:只敢预演未来很短的一段(比如 0.5 秒),不看太远,防止误差累积。

  2. 实时修正 :一边做动作,一边疯狂对比"预演"和"现实"的差距。一旦发现预言家说错了,立刻修改脑子里的物理规律(这就是在线系统辨识)。

所以,"预演"虽好,但它需要一个非常聪明且诚实的脑子,而这本身就是很难的事情。


强化学习分类:基于概率 (Policy-Based)基于价值 (Value-Based)

讨论机器人是怎么做决策的

1. 基于概率 (Policy-Based RL) ------ "投票派"

  • 决策逻辑:它不是只选最好的,而是给每个动作一个机会。即使某个动作概率最高(比如 30%),它也会根据这个概率分布进行"抽签"。

  • 意义:"即使某个动作的概率最高,但还是不一定选它"。这意味着决策具有随机性,机器人有时会为了"探索"而去尝试那些概率较低的动作。

  • 专业术语 :这种方法被称为随机性策略 (Stochastic Policy) 。它最大的优势是能处理连续动作(比如控制机械臂旋转的角度,不只是 0 度或 90 度,而是 0.123 度)。

  • 代表算法Policy Gradients

2. 基于价值 (Value-Based RL) ------ "算账派"

  • 决策逻辑 :它非常"铁定"且"贪婪"。它会对比所有分值,毫不犹豫地选择分数最高(图中是 3 分)的那个动作。

  • 专业术语 :这种方法通常被称为确定性策略 (Deterministic Policy) 。它在处理离散动作(比如下棋、按开关)时非常高效,但面对无限可能的连续动作时会显得很吃力。

  • 代表算法Q-LearningSarsa

|----------|----------------------------------------------------------------------|------------------------------------------------|
| 基于概率 | "我们通过参数化策略直接优化目标函数,策略具有探索性,适合高维连续动作空间。" | "这是一个'直觉派',它觉得每个方案都有可能成功,只是可能性大小不同,所以它会换着花样试。" |
| 基于价值 | "算法通过迭代逼近最优价值函数 (Optimal Value Function),决策逻辑是基于 Argmax 的确定性选择。" | "这是一个'理性派',它给每条路都标了价。哪条路最值钱,它就死磕哪条路,非常果断。" |

在实际应用中,现在的顶尖机器人往往不只选一种。

  • 合体技:Actor-Critic (演员-评论家)

  • 逻辑演员 (Actor) 负责基于概率跳舞(做动作),评论家 (Critic) 负责基于价值打分(告诉演员跳得好不好)。两者结合,既有了"直觉"的灵活性,又有了"算账"的准确性。


以更新方式对强化学习进行分类

更新时机(Update Timing),也就是机器人什么时候"总结经验"并"修改策略"。

1. 回合更新 (Monte-Carlo Update, MC)

这种方式的核心在于**"完整性"**。机器人必须玩完一整局游戏,看到最终结果,才回头去更新动作。

  • 逻辑说明:如图所示,机器人从"游戏开始"一直走到"游戏结束",只有在终点才会触发一次"更新"操作。

  • 形象比喻:就像参加高考,你只有考完最后一科拿到总分,才知道自己哪道题做错了,但此时考试已经结束了。

  • 特性:

    • 无偏性(Unbiased):因为它使用的是真实的累积奖励(Return),没有预测成分,所以估算结果是准确的。

    • 高方差(High Variance):由于每局游戏的随机性很大,导致学习过程波动剧烈,效率较低。

  • 代表算法:基础版 Policy Gradients、Monte-Carlo Learning。


2. 单步更新 (Temporal-Difference Update, TD)

这种方式的核心在于**"预判"**。机器人走一步,就利用"现在的奖励 + 对未来的预测"来更新自己,不必等游戏结束。

  • 逻辑说明:在游戏进行过程中,机器人每走一步都会向上触发一次"更新"。

  • 形象比喻:就像平时做练习题,做对一道看一眼答案。你不需要等整张试卷做完,就能实时纠正自己的解题思路。

  • 特性

    • 自举(Bootstrapping):这是 TD 的灵魂,指"用猜想去更新猜想"。它利用贝尔曼方程预测下一步的价值。

    • 低方差、高效率:因为它能实时修正,所以学习速度极快。

    • 有偏性(Biased):因为它基于预测,如果最初的预测完全错误,可能会带偏学习方向。

  • 代表算法:Q-Learning、Sarsa、升级版 Policy Gradients。


3. 核心对比表(汇报话术)

维度 回合更新 (MC) 单步更新 (TD)
更新频率 低(一局一次) 高(每一步一次)
学习效率 慢(需要等待完整轨迹) 快(边玩边学)
适用场景 必须有明确终点的任务(如棋类) 也可以处理没有终点的任务(如机器人避障)
对老板说 "该方法保证了长期回报的真实性 ,但收敛速度受限。" "该方法利用了时序差分残差 ,显著提升了采样效率在线学习能力。"

4. 知识点拓展:如果"单步"太碎,"回合"太慢怎么办?

在工业界和顶刊中,大家往往不走极端,而是选择中间地带:

  • n步更新 (n-step TD):不只看一步,也不看一整局,而是看未来 5 步或 10 步。这平衡了"预测的偏差"和"真实的准确性"。

  • 资格迹 (Eligibility Traces / \\lambda 更新):这是一种更高级的技术(如 Sarsa(\\lambda))。它会给刚走过的几步路打上"标签",得分时,最近走过的几步分到的功劳最多,很久以前走的步数分到的功劳最少。


5. 为什么要区分这两个?

如果你在做机器人控制项目,老板问你为什么不用 Monte-Carlo?

资深回答: "因为我们的任务(比如机械臂平滑运动)往往没有明确的'游戏结束'标志,或者单回合时间太长。使用 单步更新(TD) 能让机器人具备 在线纠偏(Online Correction) 的能力,提高系统的实时鲁棒性。"

总结一下:

  • 回合更新:看重结果,死记硬背。

  • 单步更新:看重预判,灵活变通。


以是否在线分类强化学习

1. 在线学习 (On-Policy / 同策略) ------ "亲力亲为"

它的核心特征是:学习者(Agent)必须亲自在场,且必须按照当前正在学习的策略去行动。

  • 逻辑说明:机器人边玩边学,它学到的经验只适用于"当前的自己"。如果策略更新了,旧的经验就作废了。

  • 形象理解:像练习投篮,你必须亲自站在篮下,每投一球,肌肉就根据这一球的反馈调整下一次的力度。你不能看着别人投篮来增加自己的肌肉记忆。

  • 特性

    • 策略一致性:行为策略(Behavior Policy)与目标策略(Target Policy)是同一个。

    • 局限性:样本效率较低,因为数据无法重复利用(旧数据无法训练新策略)。

  • 代表算法SarsaSarsa(λ)


2. 离线学习 (Off-Policy / 异策略) ------ "博采众长"

它的核心特征是:机器人可以观察别人的经验,或者回顾自己过去的记忆来学习。

  • 逻辑说明 :机器人不必非得亲自在此时此刻尝试。它可以通过经验回放(Experience Replay),把白天的记忆存起来,晚上躺在床上反复推敲。

  • 形象理解:像复盘围棋。你不仅可以看自己昨天的棋谱,还可以看职业棋手的巅峰对决。你不需要重新下一遍那盘棋,也能从中悟出道理。

  • 特性

    • 策略解耦:行为策略与目标策略分离。我们可以用一个激进的策略去"探索数据",而用一个稳健的策略去"提取知识"。

    • 优势:样本利用率极高。我们可以利用**经验池(Replay Buffer)**反复利用历史数据,适合深度学习任务。

  • 代表算法Q-LearningDeep Q Network (DQN)


4. 知识点拓展:为什么工业界更爱 Off-Policy?

虽然 On-Policy(如 Sarsa)很稳,但在机器人领域,Off-Policy(如 DQN)几乎是标配,原因有二:

  1. 数据的昂贵性:在真实物理世界中,机器人动一次成本很高。如果数据用一次就扔(On-Policy),太浪费了。我们希望每一条数据都能被神经网络学习几十遍(Off-Policy)。

  2. 并行训练:我们可以开 10 台机器人同时在 10 个房间里收集数据,然后汇总到一个中心"大脑"里统一学习。这种"看别人经验学习"的能力是 Off-Policy 赋予的。

总结建议:

  • 如果你追求训练过程平稳 、不希望机器人做出太出格的动作,选 On-Policy(如 Sarsa)。

  • 如果你追求学习速度 、想要榨干每一条数据的价值,选 Off-Policy(如 Q-Learning/DQN)。

相关推荐
创客匠人老蒋11 小时前
从“经验驱动”到“系统智能”:实体门店经营的结构性升级
大数据·人工智能
硬件yun11 小时前
汽车CAN为何选用0.25W电阻?
学习
a35354138211 小时前
设计模式-原型模式
开发语言·c++
安达发公司11 小时前
安达发|APS自动排产排程排单软件:让汽车零部件厂排产不“卡壳”
大数据·人工智能·汽车·aps高级排程·aps排程软件·aps自动排产排程排单软件
Tinachen8811 小时前
YonBIP旗舰版本地开发环境搭建教程
java·开发语言·oracle·eclipse·前端框架
草莓熊Lotso11 小时前
脉脉独家【AI创作者xAMA】| 多维价值与深远影响
运维·服务器·数据库·人工智能·脉脉
testpassportcn11 小时前
Technology Solutions Professional NS0-005 認證介紹【NetApp 官方認證
网络·学习·改行学it
liulilittle11 小时前
libxdp: No bpffs found at /sys/fs/bpf
linux·运维·服务器·开发语言·c++
V搜xhliang024611 小时前
常规超声联合影像组学预测肾透明细胞癌核分级的列线图模型构建和验证
人工智能·计算机视觉
hqwest11 小时前
码上通QT实战07--主窗体消息栏设计
开发语言·qt·qt事件·主窗体·stackedwidget