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

强化学习课程:stanford_cs234 学习笔记(1)introduction to RL

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1、强化学习基础
  • 2、强化学义的一些应用
    • 2.1 chartgpt 的训练
  • 3、强化学习涉及方面
    • 3.1 优化
    • 3.2 延迟后果
    • 3.3 探索
    • 3.4 泛化
      • 3.4.1 **通过环境随机化(Environment Randomization)增强泛化**:
      • 3.4.2 通过数据增强(Data Augmentation)提升泛化
      • 3.4.3 通过探索(Exploration)促进泛化
      • 3.4.4 通过正则化(Regularization)防止过拟合
      • 3.4.5 通过元学习(Meta-Learning)提升适应能力
      • 3.4.6 通过无模型 RL(Model-Free RL)与有模型 RL(Model-Based RL)结合
      • 3.4.7 通过多任务学习(Multi-Task Learning, MTL)提升泛化
  • 4、强化学义最擅长的两个问题
    • 4.1 没有期望行为的示例(No Examples of Desired Behavior)
    • 4.2 大规模搜索或优化问题,且结果具有延迟(Enormous Search or Optimization Problem with Delayed Outcomes)


前言

我个人学习笔记,这个笔记中有视频内容,也有很多我个人理解,分享出来即是鞭策自己,也是欢迎大家指正。
在这里插入图片描述

1、强化学习基础

1.1 强化学习概念

视频这里 有点啰嗦,我找了一些常用词汇补充
在这里插入图片描述

在这里插入图片描述

强化学习(Reinforcement Learning, RL):
主要用于训练智能体(agent)在环境(environment)中进行决策,使其通过与环境的交互获得最优策略(policy),以最大化累积奖励(reward)。
这里要区分下
监督学习:模型学习输入到输出的映射,需要标注数据。
无监督学习:发现数据中的模式,不需要明确的标注。
强化学习:智能体自主探索环境,通过试错学习最优决策策略。

1.2 强化学习常用符号与定义

符号意义
定义符号
≈ \approx 约等于
ϵ \epsilon ϵϵ贪心策略中随机采取动作的概率
γ \gamma γ折扣系数
λ \lambda λ迹中的衰减率
← \leftarrow 赋值符号
s, s ′状态s
a动作a
r收益r(reward)
t离散的时间步,或称为时刻
π \pi π策略(决策规则)
π ( s ) \pi(s) π(s)根据确定性策略 π 在状态 s 时选取的动作
π \pi π(a|s)根据随机性策略 π 在状态 s 时选取的动作 a 的概率
A t {A_t} Att 时刻的动作
S t S_{t} Stt 时刻的状态,通常由 S t − 1 S_{t − 1} St1 A t − 1 A_{t-1} At1随机决定
R t R_{t} Rtt 时刻的状态,通常由 S t − 1 S_{t − 1} St1 A t − 1 A_{t-1} At1随机决定
G t G_t Gtt 时刻的回报(return)和奖励的差别我会详细讨论
p ( s ′ , r ∣ s , a ) p ( s' , r ∣ s , a ) p(s,rs,a)从状态 s 采取动作 a 转移到状态 s ′ 并获得收益 r 的概率
p ( s ′ ∣ s , a ) p ( s'∣ s , a ) p(ss,a)从状态 s 采取动作 a 转移到状态 s ′ 的概率
r ( s , a ) r ( s , a ) r(s,a)从状态 s 采取动作 a 获得的即时收益的期望
r ( s , a , s ′ ) r ( s , a , s') r(s,a,s)从状态 s 采取动作 a 转移到状态 s ′ 获得的即时收益的期望 我后面也会详细讲
v π ( s ) v_\pi(s) vπ(s)π(s)状态 s 在策略 π \piπ 下的价值(期望回报)
v ∗ ( s ) v_∗( s ) v(s) v ∗ ( s ) v_*(s) v(s)状态 s 在最优策略下的价值
q π ( s , a ) q_\pi(s, a) qπ(s,a)状态 s在策略 π \piπ 下采取动作 a 的价值
q ∗ ( s , a ) q_*(s, a) q(s,a)s 在最优策略下采取动作 a 的价值
$V, V_{t}状态价值函数
Q, Q_{t}动作价值函数

1.3 奖励(reward)和 回报(return)

奖励(Reward, R t R_t Rt):即时反馈,反映智能体当前决策的好坏。例如,在游戏中吃金币获得 +10 分。
回报(Return, G t G_t Gt):未来奖励的累积和,决定智能体应该选择哪种策略来获得长期最大收益,即衡量长期收益。例如,AI 可能会放弃短期收益以换取未来更大的奖励。

假设一个每个时间步的奖励如下:

时间步长t奖励 R t R_t Rt
1+1
2+0
3+2
4+3
5+5

如果 𝛾=1(无折扣),回报计算如下:
G 1 = R 2 + R 3 + R 4 + R 5 ​ = 0 + 2 + 3 + 5 = 10 {G1=R_2+R_3+R_4+R_5​ =0+2+3+5=10} G1=R2+R3+R4+R5=0+2+3+5=10
G 2 = R 3 + R 4 + R 5 ​ = 2 + 3 + 5 = 10 {G2=R_3+R_4+R_5​ =2+3+5=10} G2=R3+R4+R5=2+3+5=10
G 3 = + R 4 + R 5 ​ = 3 + 5 = 8 {G3=+R_4+R_5​ =3+5=8} G3=+R4+R5=3+5=8
如果 𝛾=0.9(有折扣),回报计算如下:
G 1 = 0 + 0.9 × 2 + 0. 9 2 × 3 + 0. 9 3 × 5 ≈ 7.07 {G1=0+0.9×2+0.9^2×3+0.9^3×5≈7.07} G1=0+0.9×2+0.92×3+0.93×57.07
G 2 = 2 + 0.9 × 3 + 0. 9 2 × 5 ≈ 7.23 {G2=2+0.9×3+0.9^2×5≈7.23} G2=2+0.9×3+0.92×57.23

可以见到,选择合适的折扣因子 ,所以𝛾 很重要:
𝛾过大,智能体更关注长期收益(但可能难以学到短期最优)。
𝛾过小,智能体更关注短期奖励(可能忽略远期更好的决策)。

1.4 收益的期望 r ( s , a ) r(s,a) r(s,a) r ( s , a , s ′ ) r ( s , a , s') r(s,a,s)

查了一些网页,基本上:
r ( s , a ) = E [ R t ∣ S t = s , A t = a ] r(s,a) = E[R_t|S_t = s, A_t = a] r(s,a)=E[RtSt=s,At=a] 这里的 E就是期望
例1:
如果在某个状态 𝑠下执行动作 𝑎可能会有 50% 的概率得到奖励 +1,50% 的概率得到奖励 -1,则:
r(s, a) = 0.5 * 1 + 0.5 * (-1) = 0

r ( s , a , s ′ ) = E [ R t ∣ S t = s , A t = a , S t + 1 = s ′ ] r(s,a,s') = E[R_t∣S_t =s, A _t = a, S_{t+1} =s'] r(s,a,s)=E[RtSt=s,At=a,St+1=s] 同理,这里的 E也是期望,只不过这里有个 转移概率 P ( s ′ ∣ s , a ) P(s'|s, a) P(ss,a)
例2:
在自动驾驶任务中,如果车子在状态 𝑠(前方有红灯)执行动作 𝑎(刹车),可能会有不同情况:
caseA: 90% 概率停下(𝑠’= 车停在红灯前),奖励 r=+10(遵守交通规则)。
caseB: 10% 概率停下(𝑠’= 车压线),奖励 r=-10(违规)。

2、强化学义的一些应用

用蒙特卡洛树来下围棋
在这里插入图片描述
用 强化学习考虑如何用磁场控制核聚变将其一直保持在一个区域内
在这里插入图片描述
用强化学习来看一个人是否需要检查新冠
在这里插入图片描述
这里有个 chatgpt 的 用强化学习的优化需要讲下:
在这里插入图片描述

2.1 chartgpt 的训练

chartgpt 其实是有监督和无监督。
step1:监督学习(supervised Fine-tuning SFT)。
过程1:从数据中采样提示(prompt),比如我写一个了一个 prompt:请解释强化学习。
在这里插入图片描述

过程2:人工给出标准回答。
在这里插入图片描述

过程3:用这个 标注好的数据来微调 gpt - 3.5,这里依然是监督学习
在这里插入图片描述
自此得到一个初步模型


step2:训练奖励模型(Train a Reward Model)
过程1:采样一个提示(prompt),就是刚才那个 “请解释强化学习”。
在这里插入图片描述
过程2:模型生成多个可能得回答
在这里插入图片描述
过程3:人工标注这些答案的顺序排序
在这里插入图片描述
过程4:使用这些 排名数据训练一个奖励模型(Reward Model,RM),使其能自动预测输出质量。
在这里插入图片描述
自此得到一个 能预测模型输出质量的奖励模型(RM)


**step3:**使用 PPO 强化学习优化策略
PPO 这个网址讲的很好:https://blog.csdn.net/qq_30615903/article/details/86308045)
过程1:我们得到一个 新的 提示词:讲一个有关水獭的故事
在这里插入图片描述
过程2:使用 SFT模型做PPO强化学习的初始策略。
在这里插入图片描述

过程3:用 step1 的 有监督模型生成一个结果:从前有个小水獭它叫hehe…
在这里插入图片描述

过程4:奖励模型得到分数,评估答案的回答质量,并给出分数
在这里插入图片描述
过程5:使用PPO 调整chart gpt 的策略
在这里插入图片描述
经过上述策略,可以做奥数题了,而且还是银牌水平…
在这里插入图片描述

3、强化学习涉及方面

在这里插入图片描述

3.1 优化

寻找最优解,没啥
在这里插入图片描述

3.2 延迟后果

什么是“延迟后果(delayed consequences)”?就是当前看起来没有影响,只是影响在未来一段时间后才显现。
在这里插入图片描述
所以这里有两个挑战:
1 在规划时:决策不仅要看眼前,还要考虑未来,例如局部最优和全局最优。
2 在学习时:时间信用分配问题(temporal credit assignment),就是学习过程中多个步骤后才会得到奖励,如何合理分配奖励给过去的决策。

强化学习如何做:
强化学习算法如何处理延迟奖励?
(1)使用折扣因子(Discount Factor, 𝛾)来平衡短期和长期奖励:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . {G_t=R_{t+1}+γR_{t+2}+γ^2R_{t+3}+...} Gt=Rt+1+γRt+2+γ2Rt+3+...
(2)深度 Q 网络(DQN)和策略梯度方法(如 PPO)使用回溯机制(Backpropagation)来调整决策影响。

3.3 探索

什么是探索
在这里插入图片描述

强化习中的探索方法:
(1)ε-greedy 方法:以 1−ϵ 的概率 选择当前最优动作(利用)。以 ϵ 的概率 随机选择动作(探索)。
(2)Upper Confidence Bound (UCB)。在多臂老虎机(multi-armed bandit)问题中,智能体根据不确定性进行探索,选择高置信区间的动作。
(3)贝叶斯优化(Bayesian Optimization)
通过对奖励的概率分布建模来进行智能探索。

3.4 泛化

在这里插入图片描述
这里 的 ppt讲解了一个 打砖块游戏,DeepMind 在 2015 年展示了这个 可以被 Atari 自己玩。
我这里 有个问题,一般的强化学习如何做到泛化?

3.4.1 通过环境随机化(Environment Randomization)增强泛化

(1) 领域随机化(Domain Randomization)
核心思想:在训练过程中随机改变环境参数,让智能体学习在多种环境中都能适应。
应用示例:
机器人学(Robotics):在模拟训练中随机改变摩擦力、重力、光照、物体颜色等,使训练出的策略能适用于真实世界。
我平常在训练降噪网络时,也会引入更多场景。

(2) 任务随机化(Task Randomization)
核心思想:在训练过程中,让智能体经历不同的任务设置,使其学会适应不同的目标。
示例:
在迷宫导航任务中,每次训练时迷宫结构都不同,使智能体学会在新迷宫中也能找到出口。

3.4.2 通过数据增强(Data Augmentation)提升泛化

传统深度学习中的数据增强(Data Augmentation) 方法同样适用于强化学习:
图像增强(Image Augmentation):使用翻转、缩放、颜色扰动等方式来增强输入数据,使智能体学会忽略非关键因素。——用过很常见
状态扰动(State Perturbation):在训练过程中,对输入状态增加噪声,提高模型的鲁棒性。——这个很常见
示例:

DeepMind 的 Atari 游戏 RL 研究使用图像数据增强(如随机裁剪、颜色变换)来提升泛化能力。

3.4.3 通过探索(Exploration)促进泛化

智能体如果过早收敛到一个特定策略,就可能导致泛化能力不足。鼓励智能体更全面地探索环境有助于提高泛化能力。
常见探索方法:
(1)ε-greedy 探索(随机探索一定比例的动作)。——有待探索
(2)软 Q 学习(Soft Q-Learning):在策略中引入随机性,让智能体更关注不同可能性。——有待探索
(3)最大熵强化学习(Max-Entropy RL):如 SAC(Soft Actor-Critic),鼓励智能体探索更多可能的策略。——有待探索
例:在稀疏奖励任务(Sparse Reward Tasks)中,智能体如果只学习局部最优策略,就可能无法泛化。鼓励探索不同策略可以帮助智能体发现更广泛的策略空间。

3.4.4 通过正则化(Regularization)防止过拟合

在监督学习中,正则化(Regularization) 被用于防止模型对训练数据过拟合。在 RL 中,我们可以使用类似方法:
(1)权重衰减(Weight Decay):在神经网络优化时,对权重施加 L2 正则化,防止模型过度依赖特定状态。
(2)Dropout:在神经网络中随机屏蔽一部分神经元,以提高模型的鲁棒性。——这个确实可以,很常见
(3)随机裁剪(Random Crop):对输入状态(如图像)进行裁剪,使智能体不完全依赖固定像素区域。———这个我在训练中确实尝试过,也是很常见

例:DeepMind 在训练 RL 代理时发现,使用 Dropout 的 DQN 代理在新环境中表现更稳定。

3.4.5 通过元学习(Meta-Learning)提升适应能力

核心思想:让智能体学会快速适应新的环境,而不是仅仅优化单一策略。
方法:
(1)MAML(Model-Agnostic Meta-Learning):在训练过程中,让智能体接触不同的任务,使其学会在新任务中快速适应。———没用过
(2)RL²(Reinforcement Learning Squared):使用 RNN 记忆多个任务的经验,使智能体能够在新任务中利用过去的知识。——没用过
例:OpenAI 训练 RL 代理在多个任务上优化,使其在新任务上快速适应。

3.4.6 通过无模型 RL(Model-Free RL)与有模型 RL(Model-Based RL)结合

传统强化学习一般分为:
(1)无模型 RL(Model-Free RL):智能体直接学习最优策略,如 DQN、PPO、SAC。
(2)有模型 RL(Model-Based RL):智能体学习环境的动态模型,如 MuZero 。
结合 Model-Based RL + Model-Free RL:让智能体学习环境的动态模型,并结合策略优化,提高泛化能力。
例: MuZero(AlphaZero 的改进版),在多个环境中都能表现出色。

3.4.7 通过多任务学习(Multi-Task Learning, MTL)提升泛化

核心思想:在多个任务上训练智能体,让它学会共享特征,提高适应能力。主要有:
(1)同时训练多个任务,使其在不同环境中都能有效工作。
(2)使用参数共享(Parameter Sharing)或多个策略头(Multi-Head Policy)提升泛化能力。
最著名的例子:ProcGen Benchmark

4、强化学义最擅长的两个问题

在这里插入图片描述

cs234 的幻灯片包括老师的演讲,其实只是展示了 AlphaTensor,这是 DeepMind 开发的一个强化学习系统,专门用于优化矩阵乘法算法。强化学习通过搜索不同的矩阵乘法分解方式,找到更高效的方法。并使用 AlphaZero 风格的训练策略,通过自我博弈不断优化算法。最终发现了一些比 Strassen 算法更优的矩阵乘法方法。

引出:强化学习(RL)在某些类型的问题上特别强大,主要包括以下两类:

4.1 没有期望行为的示例(No Examples of Desired Behavior)

当目标是超越人类的智慧能力时(e.g., AlphaGo 目标是超越最强棋手)。涉及的任务没有现成数据,因此无法用监督学习训练(例如发现新的数学公式)。
最典型的案例:
(1)AlphaGo / AlphaZero:通过自我博弈训练 AI,而不是依赖人类棋谱。
(2)AlphaTensor(DeepMind, 2022):用于优化矩阵乘法计算方式,寻找比已知算法更优的方法。
(3)科学发现:在物理、化学等领域寻找新的理论(如自动发现物理定律)。

4.2 大规模搜索或优化问题,且结果具有延迟(Enormous Search or Optimization Problem with Delayed Outcomes)

该类的问题特点就是搜索空间极大,无法暴力枚举所有解法。同时奖励是延迟的,推理时无法立即知道当前决策的最终好坏。
比如:
(1)强化学习玩游戏(Atari, AlphaZero):决策影响远期得分,必须优化长期策略。
(2)AlphaFold(蛋白质折叠预测):在庞大的搜索空间中寻找最优蛋白质折叠方式。
(3)自动化数学推理(如 AlphaTensor):寻找最优数学计算方式,例如更高效的矩阵乘法方法。
(4)自动驾驶:车辆决策影响未来安全性,反馈信号通常是延迟的。


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

相关文章:

  • 软考-软件设计师-计算机网络
  • Maya基本操作
  • VMware虚拟机配置Linux网络
  • 遨游三防 | IP68热成像三防平板,助力电力智慧巡检
  • 小结:PIM-SM/DM
  • fastjson【1224--rce】漏洞初探索及复现
  • 高速网络包处理,基础网络协议上内核态直接处理数据包,XDP技术的原理
  • 对顶堆简介 → 第K大问题 + topK问题
  • 【STM32实物】基于STM32的扫地机器人/小车控制系统设计
  • vulhub/Web Machine(N7)靶机----练习攻略
  • FPGA-DE2115开发板实现流水灯
  • Android Window浮窗UI组件使用JetPack
  • 小程序多语言
  • 基于深度学习的医学影像分割:从理论到实践
  • 计算机考研-数据结构2.2
  • 爬虫——将数据保存到MongoDB中
  • Vue 双向数据绑定是什么
  • STM32原理性知识
  • 《深入剖析鸿蒙生态原生应用:一次开发多端部署的技术革新》
  • 【数学建模】Lingo 18.0及其安装教程(保姆级)