【强化学习学习笔记】强化学习简介

前言

本博客是本人的学习笔记,不是教学或经验分享,全部资料基于北京邮电大学鲁鹏老师课程强化学习基础 (本科生课程) 北京邮电大学 鲁鹏_哔哩哔哩_bilibili,侵权即删。

一、引言:强化学习是什么?

1. 定位:机器学习的三大分支之一

分支 核心特点 学习目标
有监督学习 有标注训练样本(输入 - 输出对应) 学习 "已知输入如何映射到已知输出"(分类 / 预测)
无监督学习 无标注数据 学习数据隐含的结构 / 模式
强化学习 无监督数据,仅含奖励信号 学习 "做什么能最大化累积奖励"(通过与环境交互实现目标)

2. 核心本质

强化学习是智能体(Agent)通过与环境(Environment)持续交互,从奖励信号(Reward)中学习最优行为策略的计算方法,核心是 "试错学习" 与 "延迟奖励" 的权衡。

3. 关键区别(为什么强化学习特殊?)

  • 无监督数据,仅靠奖励信号引导(奖励是唯一反馈);
  • 奖励可能延迟(如游戏通关才给高分,过程中无即时奖励);
  • 时间是核心因素(动作具有序列依赖性,当前动作影响后续状态和奖励);
  • 智能体的动作会改变环境状态,进而影响后续数据(交互性)。

二、强化学习基本要素

核心链路:智能体 → 动作 → 环境 → 观测 + 奖励 → 智能体(迭代),五大核心要素缺一不可。

1. 奖励(Reward):行为的 "指挥棒"

  • 定义:标量信号 Rt,反映智能体在时间步 t 的行为好坏(正向奖励 +、负向奖励 -);
  • 核心假设(奖励假设):所有强化学习问题的目标,都可转化为 "最大化期望累积奖励";
  • 例子:
    • 投资管理:银行收益增加(+)、亏损(-);
    • 发电站控制:正常发电(+)、超安全阈值(-);
    • 游戏:分数上升(+)、生命值减少(-)。

2. 序列决策(Sequential Decision Making)

  • 目标:选择 "动作序列" 而非单个动作,最大化未来总体奖励
  • 关键:需牺牲即时小奖励,换取长期大奖励(如迷宫中绕远路避开陷阱,最终到达终点)。

3. 智能体(Agent)与环境(Environment)

(1)智能体
  • 核心角色:决策者与学习者,在每个时间步 t 做两件事:
    • 接收环境的观测 Ot 和奖励 Rt;
    • 执行动作 At;
  • 核心目标:通过调整动作,最大化累积奖励。
(2)环境
  • 核心角色:智能体的交互对象,接收智能体的动作 At,返回下一时间步的:
    • 观测 Ot+1(智能体能看到的环境信息);
    • 奖励 Rt+1(对智能体动作的反馈);
  • 特点:环境的运行机制可能已知(规划问题)或未知(学习问题)。

4. 历史(History)与状态(State):决策的 "信息基础"

(1)历史 Ht​
  • 定义:截至时间步 t 的所有交互数据序列:Ht=O1,R1,A1,O2,R2,A2,...,Ot,Rt;
  • 作用:是智能体和环境决策的唯一信息来源(智能体靠历史选动作,环境靠历史生成下一个状态)。
(2)状态 St​:历史的 "浓缩版"
  • 定义:状态是历史的函数 St=f(Ht),提炼历史中 "对未来有用的信息"(避免冗余);

  • 三类关键状态:

    状态类型 定义 作用
    环境状态 Ste​ 环境的内部真实状态 决定下一个观测和奖励(智能体通常不可见)
    智能体状态 Sta​ 智能体内部的信息表达 智能体选动作的依据(如 "已走过的迷宫路径")
    信息状态(马尔可夫状态) 包含历史中所有有用信息的状态 满足马尔可夫性,是决策的理想状态
(3)马尔可夫性(Markov Property)
  • 定义:若状态 St 满足 P[St+1∣St]=P[St+1∣S1,...,St],则称具有马尔可夫性;
  • 通俗理解:"未来与历史无关,只依赖当前状态"(如天气预报,明天天气只看今天,不看上周);
  • 意义:简化决策难度,无需存储完整历史,只需保留当前状态。

5. 环境的可观测性(关键场景划分)

(1)完全可观测环境(Fully Observable)
  • 条件:智能体能看到环境的全部真实状态 → Ot=Sta=Ste;
  • 数学模型:马尔可夫决策过程(MDP)→ 强化学习的基础场景;
  • 例子:井字棋(棋盘所有棋子位置都可见)、简单迷宫(全局地图已知)。
(2)部分可观测环境(Partially Observable)
  • 条件:智能体只能看到环境的部分信息 → Sta=Ste;
  • 数学模型:部分可观测马尔可夫决策过程(POMDP)→ 更贴近现实的场景;
  • 例子:打麻将(看不到别人的牌)、斗地主(未知底牌和对手牌)、自动驾驶(看不到障碍物后方的情况)。

三、智能体的组成:"决策系统" 的三大核心组件

强化学习智能体由 1 个或多个组件构成,组件越完整,决策能力越强。

1. 策略(Policy):智能体的 "行为准则"

  • 定义:状态到动作的映射(回答 "在某个状态下该做什么");

  • 两种核心类型:

    类型 定义 公式 适用场景
    确定性策略 每个状态对应唯一动作 a=π(s) 完全可观测环境(如井字棋最优策略)
    随机策略 每个状态对应动作的概率分布 π(a∣s)=P(At​=a∣St​=s) 部分可观测环境(如迷宫中随机探索未发现的路径)
  • 例子:

    • 确定性策略:Atari 接球游戏中,"球在左边→向左移";
    • 随机策略:迷宫中灰色格子(状态相同),以 50% 概率向左、50% 概率向右,避免陷入死路。

2. 价值函数(Value Function):状态的 "评估工具"

  • 定义:预测在给定策略 π 下,某个状态(或动作)能带来的 "未来累积奖励"(评估状态 / 动作的 "好坏程度");
  • 核心公式(状态价值函数):Vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+...∣St=s];
    • γ(折扣因子):0≤γ≤1,平衡即时奖励和未来奖励(γ=0→只看即时奖励,γ=1→重视长期奖励);
    • Eπ:在策略 π 下的期望(避免随机动作带来的不确定性);
  • 作用:指导动作选择(如状态 A 的价值是 10,状态 B 的价值是 5→优先选择能到达 A 的动作)。

3. 模型(Model):智能体的 "环境认知"

  • 定义:智能体对环境的内部模拟,用于预测环境的动态变化("智能体眼里的环境");
  • 核心预测目标:
    1. 状态转移概率 Pss′a=P[St+1=s′∣St=s,At=a]("在状态 s 做动作 a,下一个状态是 s' 的概率");
    2. 即时奖励 Rsa=E[Rt+1∣St=s,At=a]("在状态 s 做动作 a,能得到的即时奖励期望");
  • 注意:环境的真实运行机制叫 "环境动力学",不是模型;模型是智能体的 "近似认知"(可能不完美)。

组件示例:迷宫问题

  • 策略:每个位置(状态)对应的移动方向(如 "在起点→向右");
  • 价值函数:每个位置的价值(如 "终点价值 0,距离终点 1 步的位置价值 - 1,陷阱位置价值 - 10");
  • 模型:移动方向对应的位置变化(如 "向右走→下一个位置是 s'")和奖励(如 "踩陷阱→奖励 - 10")。

四、智能体的分类:不同 "学习风格"

根据不同维度,智能体可分为以下类别,核心是 "组件组合" 和 "学习方式" 的差异。

1. 按 "策略更新方式" 分类

类型 核心逻辑 特点
基于价值函数(Value-Based) 学习最优价值函数,间接推导策略("知道哪个状态好,就往哪走") 无显式策略,通过价值比较选动作(如 Q-Learning)
基于策略搜索(Policy-Based) 直接学习最优策略("知道在哪个状态该做什么动作") 有显式策略,适合连续动作空间(如 REINFORCE)
执行者 - 评论者(Actor-Critic) 结合两者:Actor(执行者)负责选动作(策略),Critic(评论者)负责评价值(价值函数) 兼顾稳定性和学习效率(如 TRPO、PPO)

2. 按 "是否依赖模型" 分类

类型 核心逻辑 特点
基于模型(Model-Based) 先学习环境模型,再基于模型规划最优策略 无需大量交互,适合环境复杂(如机器人控制)
无模型(Model-Free) 不学习模型,直接通过与环境交互学习策略 / 价值函数 简单易实现,依赖大量交互数据(如 DQN、SARSA)

3. 按 "回报函数是否已知" 分类

类型 核心逻辑 适用场景
正向强化学习 回报函数(奖励规则)已知,学习最优策略 游戏(分数规则已知)、控制问题(奖励规则明确)
逆向强化学习 回报函数未知,从专家示例中学习回报函数,再学策略 模仿人类行为(如自动驾驶模仿人类驾驶)

五、强化学习的核心问题:三大关键权衡

1. 学习(Learning)与规划(Planning):环境是否已知?

问题类型 环境状态 核心行为 例子
学习 环境模型未知 智能体与环境交互,通过试错积累经验 Atari 游戏(不知道游戏运行机制,靠操作试错)
规划 环境模型已知 智能体不与环境交互,仅通过模型计算最优策略 已知规则的迷宫(靠逻辑推导最优路径,无需实际走)
  • 关系:学习是 "建模环境",规划是 "用模型找策略",实际应用中常结合(先学习模型,再规划策略)。

2. 探索(Exploration)与利用(Exploitation):试错与收益的平衡

  • 探索:放弃已知收益,尝试新动作,获取环境信息("去新饭店吃饭,可能发现更好吃的");
  • 利用:基于已知信息,选择最优动作,最大化即时收益("去常吃的饭店,保证好吃");
  • 核心矛盾:过度探索→收益低,过度利用→可能错过更优策略;
  • 例子:
    • 广告投放:利用(投已知高点击广告)vs 探索(投新广告,测试效果);
    • 游戏:利用(选已知能得分的动作)vs 探索(试新动作,可能发现隐藏关卡)。

3. 预测(Prediction)与控制(Control):目标是 "评估" 还是 "优化"?

问题类型 核心目标 输入 输出
预测 评估给定策略的好坏("这个策略能带来多少奖励") 策略 π 价值函数 Vπ​(s)
控制 找到最优策略("哪个策略能带来最大奖励") 无(或初始策略) 最优策略 π∗​ 和最优价值函数 V∗​(s)
  • 关系:预测是控制的基础(先知道 "策略好不好",才能优化出 "最优策略")。
相关推荐
星火开发设计2 小时前
C++ 输入输出流:cin 与 cout 的基础用法
java·开发语言·c++·学习·算法·编程·知识
AI_56782 小时前
用Everything+Total Commander管理电脑文件
人工智能·学习
秦奈2 小时前
Unity复习学习随笔(11):二进制存储
学习
Jack___Xue2 小时前
LangGraph学习笔记(六)---LangGraph ReAct应用
笔记·学习·react.js
星期五不见面2 小时前
嵌入式学习!(一)C++学习-leetcode(21)-26/1/29
学习·算法·leetcode
呱呱巨基3 小时前
Linux 第一个系统程序 进度条
linux·c++·笔记·学习
好奇龙猫3 小时前
【人工智能学习-AI入试相关题目练习-第十七次】
人工智能·学习
林深现海3 小时前
【刘二大人】PyTorch深度学习实践笔记 —— 第二集:线性模型(凝练版)
pytorch·笔记·深度学习
历程里程碑3 小时前
Linux 16 环境变量
linux·运维·服务器·开发语言·数据库·c++·笔记