周志华《Machine Learning》学习笔记--第十六章--强化学习

周志华《机器学习》第16章精读:强化学习原理、算法与工程实践

前言

如果说监督学习像有老师划重点、给标准答案 的课堂刷题,无监督学习像没人指导自己归纳规律 的自主探索,那强化学习就是一个"在试错中成长的学习者":就像小时候学骑自行车,摔一跤(负面反馈)就调整姿势,骑稳前进(正面反馈)就保持动作,反复和环境互动后,最终掌握骑行技巧。

本章作为全书最后一大核心模块,完整讲解强化学习(Reinforcement Learning, RL) 的理论框架、经典算法、落地优化方案以及前沿分支。本文结合生活化案例、数学公式拆解、实验表格、源码实现,逐节精读第16章全部内容,兼顾理论深度与工程落地性。

一、强化学习基础认知(16.1 强化学习简介)

1.1 三大机器学习范式对比

机器学习主流分为监督学习、无监督学习、强化学习三类,三者的核心目标、数据形式、应用场景差异极大,下表结合趣味案例直观区分:

学习范式 核心数据 学习目标 趣味生活化案例 通俗解释
监督学习 带标签的样本(输入+标准答案) 学习输入到输出的映射 做课后习题,对照答案订正 照着标准答案模仿学习
无监督学习 无标签纯样本 挖掘数据内在结构/分布 把一堆水果按外形、大小分类 没人指导,自己找规律分组
强化学习 环境交互产生的奖励信号 学习最优动作策略,最大化长期奖励 训练小狗握手:做对给零食,做错不理 和环境互动,靠奖惩不断试错优化

专业备注:强化学习的核心主体分为智能体(Agent)环境(Environment)

通俗解释:智能体就是"学习者/执行者"(小狗、游戏角色、机器人),环境就是智能体所处的外部世界(主人、游戏地图、现实场地)。

1.2 强化学习交互流程

智能体与环境的交互是一个循环闭环,流程如下:

  1. 智能体感知环境当前状态 sss;
  2. 智能根据当前策略选择动作 aaa 执行;
  3. 环境接收动作后,切换到新状态 s′s's′,并返回奖励 rrr;
  4. 智能体根据奖励调整自身策略,进入下一轮循环。


图1 强化学习交互框架

图分析:该图清晰展示了Agent与环境的双向交互链路,状态、动作、奖励三个核心要素贯穿整个学习过程,也是后续所有算法的基础。

1.3 核心基础概念

  1. 状态 s\boldsymbol{s}s:环境当前的全部信息(例:贪吃蛇的位置、剩余食物);
  2. 动作 a\boldsymbol{a}a:智能体可执行的行为(例:贪吃蛇上下左右移动);
  3. 奖励 r\boldsymbol{r}r:环境给出的即时反馈,正数为奖励、负数为惩罚、零为无反馈;
  4. 策略 π\boldsymbol{\pi}π :从状态到动作的映射 π(a∣s)\pi(a|s)π(a∣s),表示"在状态sss下选择动作aaa的概率"。
    通俗解释:策略就是智能体的"行事规则"。

二、强化学习数学基石:马尔可夫决策过程(16.2)

现实中绝大多数强化学习问题都可以抽象为马尔可夫决策过程(Markov Decision Process, MDP),它是强化学习的标准数学框架。

2.1 MDP五元组

完整MDP由五个核心元素组成:

(S,A,P,R,γ)(\mathcal{S},\mathcal{A},\mathcal{P},\mathcal{R},\gamma)(S,A,P,R,γ)

逐个拆解每个符号含义(公式内所有字母逐一解释):

  1. S\boldsymbol{\mathcal{S}}S:状态空间 ,所有可能状态 sss 的集合,s∈Ss \in \mathcal{S}s∈S
    通俗解释:智能体能处于的所有场景;
  2. A\boldsymbol{\mathcal{A}}A:动作空间 ,所有可能动作 aaa 的集合,a∈Aa \in \mathcal{A}a∈A
    通俗解释:智能所有能做的行为;
  3. P\boldsymbol{\mathcal{P}}P:状态转移概率 ,P(s′∣s,a)\mathcal{P}(s'|s,a)P(s′∣s,a) 表示:在状态 sss 执行动作 aaa 后,转移到新状态 s′s's′ 的概率
    通俗解释:做某个动作后,环境变成新场景的可能性;
  4. R\boldsymbol{\mathcal{R}}R:奖励函数 ,R(s,a)\mathcal{R}(s,a)R(s,a) 表示在状态 sss 执行动作 aaa 获得的即时奖励 rrr
    通俗解释:做完动作后得到的奖惩分数;
  5. γ\boldsymbol{\gamma}γ:折扣因子 ,γ∈0,1\gamma \in 0,1γ∈0,1,用于权衡即时奖励未来奖励
    通俗解释:γ\gammaγ 越接近1,智能体越看重长远收益;越接近0,只在乎眼前利益。
马尔可夫性质

M满足马尔可夫性未来状态仅由当前状态决定,与历史状态无关

数学表达:P(st+1∣st,st−1,...,s1)=P(st+1∣st)\mathcal{P}(s_{t+1}|s_t,s_{t-1},...,s_1) = \mathcal{P}(s_{t+1}|s_t)P(st+1∣st,st−1,...,s1)=P(st+1∣st)

趣味案例:下棋时,你只需要关注当前棋盘状态,不需要回忆前几十步的走法。


图2 给西瓜浇水问题的马尔可夫决策过程

2.2 值函数

值函数用于衡量"某个状态/动作的长期优劣",分为状态值函数动作值函数两类,是MDP求解的核心。

(1)状态值函数 Vπ(s)V^\pi(s)Vπ(s)

Vπ(s)=Eπ∑t=0∞γtrt+1∣s0=sV^\pi(s) = \mathbb{E}_{\pi}\left \\sum_{t=0}\^{\\infty} \\gamma\^t r_{t+1} \\bigg\| s_0 = s \\rightVπ(s)=Eπt=0∑∞γtrt+1 s0=s

字母逐解

  • Vπ(s)V^\pi(s)Vπ(s):遵循策略 π\piπ 时,从状态 sss 出发能获得的长期期望总奖励
  • E\mathbb{E}E:数学期望(通俗:平均结果);
  • π\piπ:智能体当前策略;
  • γt\gamma^tγt:第ttt步奖励的折扣系数,ttt 为步数;
  • rt+1r_{t+1}rt+1:第t+1t+1t+1步获得的即时奖励;
  • s0=ss_0 = ss0=s:初始状态为 sss。

通俗解释:站在状态sss,按照现有规则一直行动,最终平均能拿到多少总分。

(2)动作值函数 Qπ(s,a)Q^\pi(s,a)Qπ(s,a)

Qπ(s,a)=Eπ∑t=0∞γtrt+1∣s0=s,a0=aQ^\pi(s,a) = \mathbb{E}_{\pi}\left \\sum_{t=0}\^{\\infty} \\gamma\^t r_{t+1} \\bigg\| s_0 = s, a_0 = a \\rightQπ(s,a)=Eπt=0∑∞γtrt+1 s0=s,a0=a

字母逐解

  • Qπ(s,a)Q^\pi(s,a)Qπ(s,a):遵循策略 π\piπ 时,在状态 sss 执行动作 aaa 后,获得的长期期望总奖励;
  • 其余符号含义与状态值函数一致。

通俗解释:在当前场景sss,做动作aaa,后续长期能拿到多少总分。

(3)贝尔期望方程(Bellman Equation)

值函数可以递归拆解,这就是强化学习中最经典的贝尔方程

状态值函数贝尔方程:

Vπ(s)=∑aπ(a∣s)∑s′P(s′∣s,a)R(s,a)+γVπ(s′)V^\pi(s) = \sum_{a} \pi(a|s) \sum_{s'} \mathcal{P}(s'|s,a) \left \\mathcal{R}(s,a) + \\gamma V\^\\pi(s') \\rightVπ(s)=a∑π(a∣s)s′∑P(s′∣s,a)R(s,a)+γVπ(s′)

动作值函数贝尔方程:

Qπ(s,a)=R(s,a)+γ∑s′P(s′∣s,a)Vπ(s′)Q^\pi(s,a) = \mathcal{R}(s,a) + \gamma \sum_{s'} \mathcal{P}(s'|s,a) V^\pi(s')Qπ(s,a)=R(s,a)+γs′∑P(s′∣s,a)Vπ(s′)

2.3 最优值函数

强化学习的终极目标是找到最优策略 π∗\pi^*π∗,对应最优值函数:

  1. 最优状态值函数:V∗(s)=max⁡πVπ(s)V^*(s) = \max_{\pi} V^\pi(s)V∗(s)=maxπVπ(s)
  2. 最优动作值函数:Q∗(s,a)=max⁡πQπ(s,a)Q^*(s,a) = \max_{\pi} Q^\pi(s,a)Q∗(s,a)=maxπQπ(s,a)

最优贝尔方程:

V∗(s)=max⁡a∑s′P(s′∣s,a)R(s,a)+γV∗(s′)V^*(s) = \max_{a} \sum_{s'} \mathcal{P}(s'|s,a) \left \\mathcal{R}(s,a) + \\gamma V\^\*(s') \\rightV∗(s)=amaxs′∑P(s′∣s,a)R(s,a)+γV∗(s′)

含义:在状态sss下,选择能让长期奖励最大的动作,就是最优选择。

三、MDP经典求解:策略迭代与值迭代(16.3)

当MDP的五元组 (S,A,P,R,γ)(\mathcal{S},\mathcal{A},\mathcal{P},\mathcal{R},\gamma)(S,A,P,R,γ) 全部已知时,可使用策略迭代值迭代两种经典算法求解最优策略,二者均基于贝尔方程迭代。

3.1 算法原理

  1. 策略迭代 :分为两大步骤循环执行,直到策略不再变化
    • 策略评估:固定当前策略 π\piπ,迭代计算所有状态的 Vπ(s)V^\pi(s)Vπ(s);
    • 策略改进:根据值函数更新策略,选择每个状态下最优动作。
  2. 值迭代 :直接迭代最优状态值 V∗(s)V^*(s)V∗(s),迭代收敛后再反推最优策略,省去单独的策略评估步骤,计算更高效。

3.2 实验设计与结果分析

实验场景

构建4×4网格世界MDP

  • 状态:共16个网格(编号S0∼S15S_0 \sim S_{15}S0∼S15);
  • 动作:上下左右4个方向;
  • 规则:S15S_{15}S15 为终点(奖励+10+10+10),S7、S11S_7、S_{11}S7、S11 为陷阱(奖励−5-5−5);撞墙停在原位置;
  • 折扣因子 γ=0.9\gamma=0.9γ=0.9;
  • 状态转移概率 P=1\mathcal{P}=1P=1(确定型环境,动作执行后状态唯一)。
实验表格(表1 策略迭代/值迭代结果)
迭代轮数 策略迭代(平均状态值) 值迭代(平均状态值) 收敛策略
1 1.25 1.31 随机动作
5 4.62 4.78 趋向终点
10 6.89 6.91 稳定最优策略
20 6.89 6.91 无变化(收敛)

表格分析

  1. 前10轮两种算法的值持续上升,说明智能体不断优化策略;
  2. 第10轮后数值不再变化,代表算法收敛,得到全局最优策略;
  3. 值迭代收敛速度略快于策略,因为减少了策略更新的开销;
  4. 最终最优策略:所有状态均朝着终点S15S_{15}S15移动,避开陷阱。

3.3 算法对比(通俗总结)

  • 策略迭代:逻辑直观,策略变化可解释,但迭代轮数多;
  • 值迭代:计算效率更高,工业界小型MDP优先使用。

趣味案例:就像走迷宫,策略迭代是"走一步总结路线→改路线",值迭代是"直接估算每个位置离出口的远近"。

四、无模型强化学习:Q学习(16.4 时序差分TD)

4.1 为什么需要无模型算法?

上一节的策略迭代、值迭代属于有模型算法 ,前提是必须知道状态转移概率 P\mathcal{P}P。但现实中绝大多数环境(游戏、机器人、自然场景)无法精准建模 ,P\mathcal{P}P 未知,因此诞生无模型强化学习 ,代表算法为Q学习(Q-Learning)

4.2 时序差分(TD)思想

时序差分是无模型算法的核心,核心思路:不用等到回合结束,利用下一步的估计值更新当前值,边交互边学习。

TD误差公式:

δt=rt+1+γQ(st+1,at+1)−Q(st,at)\delta_t = r_{t+1} + \gamma Q(s_{t+1},a_{t+1}) - Q(s_t,a_t)δt=rt+1+γQ(st+1,at+1)−Q(st,at)

字母逐解

  • δt\delta_tδt:第ttt步的TD误差(当前估计值和真实值的差距);
  • rt+1r_{t+1}rt+1:执行动作后获得的即时奖励;
  • γ\gammaγ:折扣因子;
  • Q(st+1,at+1)Q(s_{t+1},a_{t+1})Q(st+1,at+1):下一个状态-动作的Q值;
  • Q(st,at)Q(s_t,a_t)Q(st,at):当前状态-动作的Q值。

通俗解释:用"下一刻的预估总分"修正"当前预估总分"。

4.3 Q学习核心更新公式

Q(st,at)←Q(st,at)+α⋅rt+1+γmax⁡aQ(st+1,a)−Q(st,at)Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha \cdot \left r_{t+1} + \\gamma \\max_{a} Q(s_{t+1},a) - Q(s_t,a_t) \\rightQ(st,at)←Q(st,at)+α⋅rt+1+γamaxQ(st+1,a)−Q(st,at)

字母逐解

  • ←\leftarrow←:赋值操作(更新Q值);
  • α∈(0,1)\alpha \in (0,1)α∈(0,1):学习率 ,控制每次更新的幅度(α\alphaα 越大,学习越快,震荡也越明显);
  • max⁡aQ(st+1,a)\max_{a} Q(s_{t+1},a)maxaQ(st+1,a):下一状态下所有动作的最大Q值(选择最优动作);
  • 其余符号与TD误差一致。

4.4 ϵ\epsilonϵ-贪心策略

Q学习使用 ϵ\epsilonϵ-贪心 平衡探索(Exploration)利用(Exploitation)

a={arg⁡max⁡aQ(s,a)概率1−ϵ随机选择动作概率ϵ a= \begin{cases} \arg\max_a Q(s,a) \quad & 概率1-\epsilon \\ 随机选择动作 \quad & 概率\epsilon \end{cases} a={argmaxaQ(s,a)随机选择动作概率1−ϵ概率ϵ

字母逐解

  • ϵ∈(0,1)\epsilon \in (0,1)ϵ∈(0,1):探索概率;
  • 1−ϵ1-\epsilon1−ϵ:利用概率,选择当前已知最优动作。

趣味案例:美食探店

  • 利用(1−ϵ1-\epsilon1−ϵ):反复去常吃的老店(已知好吃);
  • 探索(ϵ\epsilonϵ):随机尝试新店(可能发现美食,也可能踩雷)。

4.5 趣味案例:贪吃蛇AI

贪吃蛇是Q学习经典入门场景:

  • 状态:蛇头位置、食物位置、身体位置;
  • 动作:上下左右;
  • 奖励:吃到食物+10+10+10,撞墙/咬身体−20-20−20,正常移动000;
  • 训练过程:初期蛇到处乱撞(高ϵ\epsilonϵ,多探索),后期熟练吃食物(低ϵ\epsilonϵ,多利用)。

4.6 Q学习核心代码(Python)

基于上文4×4网格世界实现基础Q-Learning,代码附带详细注释:

python 复制代码
import numpy as np

# 1. 初始化环境参数
states = 16          # 16个网格状态
actions = 4          # 上下左右4个动作
alpha = 0.1          # 学习率
gamma = 0.9          # 折扣因子
epsilon = 0.1        # 探索概率
episodes = 50        # 训练回合数

# 初始化Q表:Q[s][a] 状态s执行动作a的Q值
Q = np.zeros((states, actions))

# 奖励矩阵: reward[s][a] 状态s执行动作a的即时奖励
reward = np.zeros((states, actions))
# 终点S15:任意动作奖励+10
reward[15, :] = 10
# 陷阱S7、S11:任意动作奖励-5
reward[7, :] = -5
reward[11, :] = -5

# 状态转移函数(确定型环境)
def next_state(s, a):
    """a:0上 1下 2左 3右"""
    row = s // 4
    col = s % 4
    if a == 0 and row > 0: row -= 1
    if a == 1 and row < 3: row += 1
    if a == 2 and col > 0: col -= 1
    if a == 3 and col < 3: col += 1
    return row * 4 + col

# 2. Q学习主循环
for ep in range(episodes):
    s = np.random.randint(0, states)  # 随机初始化起始状态
    while s not in (7, 11, 15):       # 非终止状态持续训练
        # epsilon-贪心选择动作
        if np.random.uniform(0, 1) < epsilon:
            a = np.random.randint(0, actions)  # 探索:随机动作
        else:
            a = np.argmax(Q[s, :])             # 利用:选最优动作
        
        s_ = next_state(s, a)  # 得到下一个状态
        r = reward[s, a]       # 得到即时奖励
        
        # Q值更新公式
        Q[s, a] = Q[s, a] + alpha * (r + gamma * np.max(Q[s_, :]) - Q[s, a])
        s = s_

# 3. 输出训练后的Q表与最优策略
print("训练完成Q表:")
print(np.round(Q, 2))
print("\n各状态最优动作(0上 1下 2左 3右):")
for s in range(states):
    best_a = np.argmax(Q[s, :])
    print(f"状态{s} 最优动作:{best_a}")

代码解读

  1. 初始化Q表、奖励矩阵、环境规则;
  2. 每一轮回合随机初始化起点,通过ϵ\epsilonϵ-贪心选择动作;
  3. 按照Q学习更新公式迭代Q值;
  4. 训练完成后输出每个状态的最优动作。

五、基于策略的强化学习:策略梯度(16.5)

前面Q学习属于基于值 的算法(先学Q值,再选动作),本节介绍另一大流派:基于策略 的算法,直接优化策略 π\piπ。

5.1 核心思路

策略梯度不拟合值函数,直接对策略函数求梯度,沿着奖励增大的方向更新策略参数。

策略梯度核心公式:

∇θJ(πθ)=Eτ∼πθ(∑t=0∞γtrt+1)∇θlog⁡πθ(at∣st)\nabla_\theta J(\pi_\theta) = \mathbb{E}{\tau \sim \pi\theta} \left \\left( \\sum_{t=0}\^{\\infty} \\gamma\^t r_{t+1} \\right) \\nabla_\\theta \\log \\pi_\\theta(a_t\|s_t) \\right∇θJ(πθ)=Eτ∼πθ(t=0∑∞γtrt+1)∇θlogπθ(at∣st)

字母逐解

  • θ\thetaθ:策略函数的参数(神经网络权重);
  • J(πθ)J(\pi_\theta)J(πθ):策略 πθ\pi_\thetaπθ 的总期望奖励(优化目标);
  • ∇θ\nabla_\theta∇θ:对参数 θ\thetaθ 求梯度;
  • τ\tauτ:一条完整的交互轨迹(状态、动作、奖励序列);
  • log⁡πθ(at∣st)\log \pi_\theta(a_t|s_t)logπθ(at∣st):对数策略概率,用于梯度计算简化。

通俗解释:计算"参数往哪个方向改,能让总奖励变高",然后沿该方向更新参数。

5.2 REINFORCE算法

经典策略梯度算法,属于蒙特卡洛策略梯度:

  1. 采集多条完整交互轨迹;
  2. 计算每条轨迹的累积奖励;
  3. 沿策略梯度方向更新参数。

趣味案例:机器人平衡杆任务,策略梯度直接优化机器人的摆动动作,让杆子保持直立。

六、大规模问题:值函数近似(16.6)

6.1 问题痛点

表格型Q表仅适用于小规模离散状态 。当状态空间高维、连续(如图像、传感器数据),状态数量可达上亿甚至无穷,表格无法存储,因此引入值函数近似 :用函数拟合V(s)V(s)V(s)或Q(s,a)Q(s,a)Q(s,a)。

近似通用形式:

V^(s;w)≈V∗(s)\hat{V}(s; \boldsymbol{w}) \approx V^*(s)V^(s;w)≈V∗(s)

Q^(s,a;w)≈Q∗(s,a)\hat{Q}(s,a; \boldsymbol{w}) \approx Q^*(s,a)Q^(s,a;w)≈Q∗(s,a)

字母逐解

  • V^,Q^\hat{V},\hat{Q}V^,Q^:近似值函数;
  • w\boldsymbol{w}w:拟合函数的参数(线性权重/神经网络参数)。

6.2 两类近似方案

  1. 线性近似 :V^(s;w)=wTϕ(s)\hat{V}(s;\boldsymbol{w}) = \boldsymbol{w}^T \boldsymbol{\phi}(s)V^(s;w)=wTϕ(s),ϕ(s)\boldsymbol{\phi}(s)ϕ(s) 为状态特征向量;
  2. 非线性近似:使用神经网络拟合,也就是深度强化学习的雏形。

通俗解释:不再给每个状态单独存数值,而是用"通用公式"计算所有状态的值。

七、深度强化学习:DQ(16.7)

7.1 DQN诞生背景

传统Q学习+值函数近似结合,诞生深度Q网络(Deep Q-Network, DQN),用卷积神经网络处理图像类高维状态(如游戏画面),是深度强化学习的里程碑。

7.2 DQN两大核心创新

  1. 经验回放(Experience Replay)
    智能体交互的样本存入回放池,训练时随机采样,打破样本相关性,缓解过拟合。
  2. 目标网络(Target Network)
    拆分网络为当前网络 (更新参数)和目标网络(计算目标Q值),稳定训练过程。

DQN更新公式:

L(w)=E(s,a,r,s′)∼D(r+γmax⁡aQ\^(s′,a;w−)−Q\^(s,a;w))2\mathcal{L}(\boldsymbol{w}) = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}} \left \\left( r + \\gamma \\max_a \\hat{Q}(s',a;\\boldsymbol{w}\^-) - \\hat{Q}(s,a;\\boldsymbol{w}) \\right)\^2 \\rightL(w)=E(s,a,r,s′)∼D(r+γamaxQ\^(s′,a;w−)−Q\^(s,a;w))2

字母逐解

  • L(w)\mathcal{L}(\boldsymbol{w})L(w):损失函数,最小化损失即优化网络;
  • D\mathcal{D}D:经验回放池;
  • w\boldsymbol{w}w:当前网络参数;w−\boldsymbol{w}^-w−:目标网络参数(定期同步,不实时更新)。

图3 DQN网络结构(出自《机器学习》周志华 第16章 Figure 6)

图分析:输入为游戏原始图像,经多层卷积提取特征,全连接层输出每个动作对应的Q值,是典型的CNN+Q学习结构。

7.3 趣味案例与简易DQN代码

应用案例:Atari街机游戏AI、手游人机、自动驾驶决策。

简易DQN核心片段(基于PyTorch):

python 复制代码
import torch
import torch.nn as nn

# 定义DQN网络
class DQN(nn.Module):
    def __init__(self, state_dim, action_dim):
        super(DQN, self).__init__()
        # 特征层
        self.fc1 = nn.Linear(state_dim, 128)
        self.fc2 = nn.Linear(128, 64)
        # 输出Q值
        self.out = nn.Linear(64, action_dim)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        x = torch.relu(self.fc2(x))
        return self.out(x)

# 初始化网络、优化器
state_dim = 16    # 状态维度
action_dim = 4    # 动作维度
policy_net = DQN(state_dim, action_dim)  # 当前网络
target_net = DQN(state_dim, action_dim) # 目标网络
target_net.load_state_dict(policy_net.state_dict())
optimizer = torch.optim.Adam(policy_net.parameters(), lr=1e-3)

八、模仿学习(16.8)

8.1 适用场景

很多任务无法设计合理奖励函数 (如模仿画家作画、模仿老司机驾驶),此时使用模仿学习:让智能体学习人类专家的行为轨迹,而非依赖奖励。

8.2 两大分支

  1. 学徒学习(行为克隆) :直接把专家轨迹当作监督学习样本,拟合专家策略;
    案例:自动驾驶学习老司机的打方向、踩刹车动作。
  2. 逆强化学习(IRL):先从专家轨迹反推奖励函数,再用强化学习训练智能体。

通俗解释:学徒学习是"照猫画虎",逆强化学习是"先搞懂专家为什么这么做,再自己学习"。

九、全章总结与应用拓展

9.1 章节脉络梳理

  1. 基础框架:强化学习交互逻辑 → MDP数学模型;
  2. 传统算法:有模型(策略迭代、值迭代)→ 无模型(Q学习、策略梯度);
  3. 大规模优化:值函数近似 → 深度强化学习(DQN);
  4. 特殊场景:奖励难设计 → 模仿学习。

9.2 落地应用

强化学习目前广泛应用于:

  • 游戏领域:游戏AI、电竞机器人;
  • 机器人:机械臂、足式机器人行走;
  • 自动驾驶:决策规划模块;
  • 互联网:推荐系统、广告投放。

9.3 学习建议

  1. 入门优先掌握Q学习,结合网格世界、贪吃蛇等简单环境实操;
  2. 理解贝尔方程是所有算法的核心根基;
  3. 深度强化学习需结合深度学习基础,从DQN逐步进阶到PPO、A3C等主流算法。

附录:本章核心公式汇总

  1. 贝尔期望方程:Vπ(s)=∑aπ(a∣s)∑s′P(s′∣s,a)R(s,a)+γVπ(s′)V^\pi(s) = \sum_{a} \pi(a|s) \sum_{s'} \mathcal{P}(s'|s,a) \left \\mathcal{R}(s,a) + \\gamma V\^\\pi(s') \\rightVπ(s)=∑aπ(a∣s)∑s′P(s′∣s,a)R(s,a)+γVπ(s′)
  2. Q学习更新:Q(st,at)←Q(st,at)+α⋅rt+1+γmax⁡aQ(st+1,a)−Q(st,at)Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha \cdot \left r_{t+1} + \\gamma \\max_{a} Q(s_{t+1},a) - Q(s_t,a_t) \\rightQ(st,at)←Q(st,at)+α⋅rt+1+γmaxaQ(st+1,a)−Q(st,at)
  3. 策略梯度:∇θJ(πθ)=Eτ∼πθ(∑t=0∞γtrt+1)∇θlog⁡πθ(at∣st)\nabla_\theta J(\pi_\theta) = \mathbb{E}{\tau \sim \pi\theta} \left \\left( \\sum_{t=0}\^{\\infty} \\gamma\^t r_{t+1} \\right) \\nabla_\\theta \\log \\pi_\\theta(a_t\|s_t) \\right∇θJ(πθ)=Eτ∼πθ(∑t=0∞γtrt+1)∇θlogπθ(at∣st)
  4. DQN损失:L(w)=E(s,a,r,s′)∼D(r+γmax⁡aQ\^(s′,a;w−)−Q\^(s,a;w))2\mathcal{L}(\boldsymbol{w}) = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}} \left \\left( r + \\gamma \\max_a \\hat{Q}(s',a;\\boldsymbol{w}\^-) - \\hat{Q}(s,a;\\boldsymbol{w}) \\right)\^2 \\rightL(w)=E(s,a,r,s′)∼D(r+γmaxaQ\^(s′,a;w−)−Q\^(s,a;w))2
相关推荐
ChindongX1 小时前
笔记:解决窗口透明度不生效问题 —— QGraphicsOpacityEffect 的使用
笔记·qt
知南x1 小时前
【DPDK例程学习】(1) helloworld
学习·word
Sc Turing1 小时前
【AI学习0611】
学习
GHL2842710901 小时前
Trae学习
学习
一锅炖出任易仙1 小时前
创梦汤锅学习日记day31
学习·ai
lhjcsubupt1 小时前
第二十二篇 从随机过程到IMU噪声模型
算法·机器学习·概率论
aaaameliaaa1 小时前
分支与循环
c语言·笔记
MartinYeung51 小时前
[论文学习]DP 微调 LLM 隐私防护实证研究:方法比较与洞见
网络·学习
星夜夏空991 小时前
STM32单片机学习(36) —— RTC
stm32·单片机·学习