周志华《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
相关推荐
阿里云大数据AI技术1 天前
光轮智能 × 阿里云:共建 Physical AI 云上数据、评测与持续学习基础设施
人工智能·机器学习
拾年2753 天前
大模型的"聪明"从哪来?聊聊 AI 数据集的那些事儿
人工智能·深度学习·机器学习
罗西的思考3 天前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
ShallWeL3 天前
【机器学习】(3)—— 线性回归:梯度下降
人工智能·机器学习
ShallWeL4 天前
【机器学习】(2)—— 线性回归:损失函数
人工智能·机器学习
RainCity4 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端