教材讲解 第三章

第三章 强化学习简介

前两章的模型在猜下一个字。这一部分换场景:一个会动的家伙,在环境里试来试去,想把奖励拿多。书用倒立摆把名词钉死,再用 MDP 和贝尔曼方程写成数学。

  1. 强化学习只有两边:智能体环境。它们按拍交互。
  2. 每一拍:看见状态 → 做出动作 → 拿到奖励 → 跳到下一状态。
  3. 策略 π 是「看见状态该怎么动」的函数。深度强化学习 = 策略是神经网络。
  4. 智能体要的不是眼前那 1 分,是打折之后的未来总和,叫回报 G。
  5. 价值是回报的期望。贝尔曼方程说:现在的价值 = 这一拍的奖励 + γ × 下一拍的价值。

书 §3.1–3.6 · p.47–60

3.1 基本概念:两边在传球

是什么。强化学习讨论的是:智能体(agent)怎么在复杂、不确定的环境(environment)里,把能拿到的奖励尽量变多。

就两方。智能体从环境拿到某个状态,根据状态输出一个动作;动作在环境里执行,环境吐出下一个状态,以及这一拍的奖励。智能体的目的就是尽可能多地从环境里拿奖励。

为什么要拆成拍。不是一次交卷。走一步看一步:状态变了,下一拍再决定。书里把这一拍写成 St、At、Rt、St+1。图 3.1 就是这个循环。

书 §3.1 · 图 3.1 · p.47

点循环上的一块

先点智能体或环境,再点这一拍里的状态 / 动作 / 奖励。右边说人话。

名词对照:Agent 智能体,Environment 环境,State 状态,Reward 奖励,Action 动作。先把传球方向记住,公式后头再写。

接下节。把循环落到一个具体游戏:倒立摆。推车、木杆、向左或向右。

倒立摆:一个会倒的杆

是什么。图 3.2 里,智能体是那辆推车。车上竖着一根木杆。推车只能干两件事:向左推,向右推。

状态有四个数:推车位置、推车速度、木杆角度、木杆角速度。奖励很干脆:只要杆没倒,这一拍就给 1 分。

何时结束。杆倒了、推车冲出屏幕,都算失败。连着做了 200 次动作杆还在,算成功,满分 200。

推车每一步要看状态再决定。杆往左歪,往往得往左推一把,用底盘去「追」杆。策略就是这个「看见什么就怎么推」的函数。如果策略是神经网络,输入四个浮点数,输出「向左 0.7、向右 0.3」这种概率,那就是深度强化学习。

书 §3.1 · 图 3.2–3.4 · p.48–50 · 式 (3.2)

推一把,看杆往哪倒

教学用的小杆,不是 Gym 仿真。点向左 / 向右。角度太大就倒。

还没推。杆是直的。

真实环境里还有速度和角速度,推一下不会立刻倒,但会改变下一拍的状态。这里只留下「动作会改角度,倒了就没分」。

轨迹:把每一拍串起来

一个回合(episode)从状态 S0 开始:动作 A0、奖励 R0、状态变成 S1,再继续。写在一起叫轨迹 τ(读「掏」):

τ = (S0, A0, R0, S1, A1, R1, …) 式 (3.3) · p.50。动作是从概率里抽的,所以轨迹有无数条。图 3.5。

接下节。杆多撑一会儿,分就多。但未来的 1 分,不等于现在的 1 分。要打折。

3.2 价值函数:未来要打折

是什么。站在时刻 t、状态 St,往后还能拿多少奖励?把以后每一拍的奖励加起来,但越远越不值钱。这个打折后的总和叫回报(收益,Return)Gt

Gt = Rt + γ Rt+1 + γ2 Rt+2 + ⋯ 式 (3.4) · p.50。γ 是折扣因子,介于 0 和 1 之间。

递推更干净:Gt = Rt + γ Gt+1。式 (3.5)。γ = 0.9 时,下一拍的 1 分只值 0.9,再下一拍 0.81。

为什么要 γ。两件事。一、连续任务如果不打折,总和会涨到无穷。二、眼前的奖励更香——你更想今天拿 10000,还是一年后拿 20000?γ 把「以后」按指数削薄。

状态价值函数把随机性收成一个数:vπ(s) = 期望[Gt | 现在在 s,策略是 π]。同一状态,策略不同,期望就不同,所以 π 要写在脚上。

书 §3.2 · 式 (3.4)–(3.6) · p.50–51;价值的严格定义在 §3.4.7 · 式 (3.16)(3.17) · p.57

五个 1 分,看 γ 怎么削

假设杆还没倒,连续五拍每拍奖励都是 1。拖 γ,看总回报。

0.90

G = 1 + γ + γ² + γ³ + γ⁴

γ = 0:只认眼前那 1 分。γ = 1:五个 1 全额相加得 5。倒立摆里 γ 常取 0.99 一类,既防无穷,又不至于鼠目寸光。

接下节。把「状态怎么跳、奖励怎么给、动作怎么选」写成三个式子。这就是 MDP。

3.4 马尔可夫决策过程

是什么。MDP 用数学把智能体和环境的互动写下来。时间被切成时间步。智能体要考虑的是将来奖励的总和,不是只盯眼前。

从 S0 起:执行 A0 得 R0,来到 S1,再执行 A1……式 (3.11) 和前面的轨迹是同一件事。

要写全,需要三块:

  • 状态转移 p(s′ | s, a):在 s 做了 a,跳到 s′ 的概率。竖杠右边是条件。
  • 奖励 r(s, a, s′):这一跳给多少分。
  • 策略 π(a | s):在 s 选 a 的概率。

倒立摆里,给定状态再往左推,下一状态常常是确定的——物理引擎算出来的。一般 MDP 允许随机跳。

状态 vs 观察。能看见环境的全部信息,叫状态;只能看见一部分,叫观察。书上先当「看见的就是状态」。

MDP 的目标:找到最优策略——让收益期望最大的那个 π。最优价值写成 v*

书 §3.4.1–3.4.7 · 式 (3.11)–(3.17) · p.55–57

MDP 三件套

点一块,看它在倒立摆里长什么样。

表 4.1 后头会强调:环境的转移和奖励你改不了,唯一能拧的是策略。这一章先把三个符号认全。

接下节。价值满足一个递推。许多算法都从它来。叫贝尔曼方程。

3.5 贝尔曼方程

是什么。先把回报的递推写出来:Gt = Rt + γ Gt+1。式 (3.24)。再塞进价值的定义 vπ(s) = Eπ[Gt | St = s],得到:

vπ(s) = Eπ[ Rt + γ Gt+1 | St = s ] 式 (3.26) · p.58。用期望的线性拆开:眼前奖励的期望,加上 γ 乘「从下一状态再出发」的期望。

为什么重要。人话:现在值多少 = 这一拍能拿到的 + 打折后的下一拍值多少。评估一个状态,不必把未来无穷步全展开,只要「这一拍」加「下一个状态的价值」。骰子期望那一段(式 3.18)只是提醒:期望 = 每种情况的数值 × 概率,再加总。

下一章起,策略梯度不再先把 v 求精确,而是直接拧 π。但 Gt = Rt + γ Gt+1 会反复出现。

书 §3.5 · 式 (3.18)–(3.26) · p.57–59

拆开一拍

当前价值拆成「即时奖励」和「γ × 下一价值」。拖两个数,看相加。

1.0
8.0
0.90

v ≈ Rt + γ · vnext

这是示意,不是把期望里所有 (a, s′) 都展开。书上完整展开还要乘 π(a|s) 和 p(s′|s,a)。直觉先抓住「现在 = 眼前 + 打折的以后」。

合上。循环、倒立摆、打折的回报、MDP 三件套、贝尔曼递推。下一章:唯一能拧的是策略,怎么用梯度去拧。

合上这一章

对照刚才玩过的控件:

  1. 循环。智能体看状态、出动作;环境给奖励、换下一状态。
  2. 倒立摆。推车左右推,杆不倒就 +1,200 步满分。
  3. 策略。π(a|s) 是概率。网络来当 π,就是深度强化学习。
  4. 回报 G。未来要乘 γ。γ = 0 只看眼前,γ = 1 把以后全算上。
  5. MDP。转移、奖励、策略。目标是最优策略。
  6. 贝尔曼。现在的价值 = 这一拍奖励 + γ × 以后的价值。

章末自测

讲完了。下面几题核对本讲刚说过的概念。点选立刻看对错;做错也不会锁下一章。

第四章 策略梯度法 · 原书 p.61–90 · 唯一能改的是策略。

打开第四章 回到目录