第三章 强化学习简介
前两章的模型在猜下一个字。这一部分换场景:一个会动的家伙,在环境里试来试去,想把奖励拿多。书用倒立摆把名词钉死,再用 MDP 和贝尔曼方程写成数学。
- 一强化学习只有两边:智能体和环境。它们按拍交互。
- 二每一拍:看见状态 → 做出动作 → 拿到奖励 → 跳到下一状态。
- 三策略 π 是「看见状态该怎么动」的函数。深度强化学习 = 策略是神经网络。
- 四智能体要的不是眼前那 1 分,是打折之后的未来总和,叫回报 G。
- 五价值是回报的期望。贝尔曼方程说:现在的价值 = 这一拍的奖励 + γ × 下一拍的价值。
书 §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,再继续。写在一起叫轨迹 τ(读「掏」):
接下节。杆多撑一会儿,分就多。但未来的 1 分,不等于现在的 1 分。要打折。
3.2 价值函数:未来要打折
是什么。站在时刻 t、状态 St,往后还能拿多少奖励?把以后每一拍的奖励加起来,但越远越不值钱。这个打折后的总和叫回报(收益,Return)Gt。
递推更干净: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。拖 γ,看总回报。
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],得到:
为什么重要。人话:现在值多少 = 这一拍能拿到的 + 打折后的下一拍值多少。评估一个状态,不必把未来无穷步全展开,只要「这一拍」加「下一个状态的价值」。骰子期望那一段(式 3.18)只是提醒:期望 = 每种情况的数值 × 概率,再加总。
下一章起,策略梯度不再先把 v 求精确,而是直接拧 π。但 Gt = Rt + γ Gt+1 会反复出现。
书 §3.5 · 式 (3.18)–(3.26) · p.57–59
拆开一拍
当前价值拆成「即时奖励」和「γ × 下一价值」。拖两个数,看相加。
v ≈ Rt + γ · vnext
这是示意,不是把期望里所有 (a, s′) 都展开。书上完整展开还要乘 π(a|s) 和 p(s′|s,a)。直觉先抓住「现在 = 眼前 + 打折的以后」。
合上。循环、倒立摆、打折的回报、MDP 三件套、贝尔曼递推。下一章:唯一能拧的是策略,怎么用梯度去拧。
合上这一章
对照刚才玩过的控件:
- 循环。智能体看状态、出动作;环境给奖励、换下一状态。
- 倒立摆。推车左右推,杆不倒就 +1,200 步满分。
- 策略。π(a|s) 是概率。网络来当 π,就是深度强化学习。
- 回报 G。未来要乘 γ。γ = 0 只看眼前,γ = 1 把以后全算上。
- MDP。转移、奖励、策略。目标是最优策略。
- 贝尔曼。现在的价值 = 这一拍奖励 + γ × 以后的价值。
章末自测
讲完了。下面几题核对本讲刚说过的概念。点选立刻看对错;做错也不会锁下一章。