深度强化学习

Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist,致力于推进世界人工智能化进程。制定并实施 UAI 中长期增长战略和目标,带领团队快速成长为人工智能领域最专业的力量。
作为行业领导者,他和UAI一起在2014年创建了TASA(中国最早的人工智能社团), DL Center(深度学习知识中心全球价值网络),AI growth(行业智库培训)等,为中国的人工智能人才建设输送了大量的血液和养分。此外,他还参与或者举办过各类国际性的人工智能峰会和活动,产生了巨大的影响力,书写了60万字的人工智能精品技术内容,生产翻译了全球第一本深度学习入门书《神经网络与深度学习》,生产的内容被大量的专业垂直公众号和媒体转载与连载。曾经受邀为国内顶尖大学制定人工智能学习规划和教授人工智能前沿课程,均受学生和老师好评。

David Silver,Google DeepMind
slide
lecture

强化学习观点:人工智能=强化学习

强化学习是一种人工智能的通用框架:

  1. RL 是针对一个拥有行动能力的 agent 而言的
  2. 每个行动影响了 agent 的未来状态
  3. 使用标量值回报信号来度量成功

一言以蔽之:选择行动来最大化未来回报。我们最终的目标是寻求得到可以解决所有人类层级的任务的单一的 agent,这也是智能 agent 的本质。

agent 和环境

RL 结构
  • 在每个时间步 t,agent:
  • 接受状态 st
  • 接受标量回报 rt
  • 执行行动 at
  • 环境:
  • 接受行动 at
  • 产生状态 st
  • 产生标量回报 rt

强化学习的例子

这里给出一些强化学习适用的场景:

  1. 控制物理系统:行走、飞行、驾驶、游泳、……
  2. 与用户进行交互:客户维护 retain customers、个性化频道 personalise channel、用户体验优化 optimise user experience、……
  3. 解决物流问题:规划 scheduling、带宽分配 bandwidth allocation、电梯控制、认知无线电 cognitive radio、电力优化 power optimisation、……
  4. 游戏:棋类、扑克、围棋、Atari 游戏、……
  5. 学习序列化算法:注意力 attention、记忆 memory、条件计算 conditional computation、激活 activation、……

策略 policy 和估值 value 函数

  • 策略 π 是给定状态下选择行动的行为函数:
    a=π(s)
  • 估值函数 Qπ(s, a) 是从状态 s 开始在策略 π 下采取行动 a 的期望全回报:
    Qπ(s, a) = E[rt+1+γrt+22rt+3+...|s, a]
    说白了,估值就是评估在状态 s 时采取行动 a 的好坏。

强化学习的几个方向

  • 基于策略的 RL
  • 直接搜索最优策略 π*
  • 目标就是得到最大未来回报的策略
  • 基于值的 RL
  • 估计最优值函数 Q*(s, a)
  • 在任何策略下可获得的最大值
  • 基于模型的 RL
  • 构建一个环境的迁移模型
  • 使用该模型进行规划(通过查找规则)

深度强化学习

  • 自然的,有这样的一个问题,我们能不能将深度学习用在强化学习上?
  • 使用深层网络来表示估值函数/策略/模型
  • 端对端的方式优化估值函数/策略/模型
  • 这样就可以使用随机梯度下降来实现函数的优化

贝尔曼 Bellman 方程

  • 估值函数可以递归展开:
    Qπ(s, a)
    = E[rt+1 + γrt+2 + γ2 rt+3 + ... | s, a]
    = Es' [r + γQπ(s', a') | s, a]
  • 最有值函数 Q*(s, a) 可以递归展开为:
    Q(s, a) = Es'[r + γ maxa' Q(s', a') | s, a]
  • 估值迭代算法可以解贝尔曼方程:
    Qi+1(s, a) = Es' [r + γ maxa' Qi(s', a') | s, a]

深度 Q-学习

  • 通过权重 w 的深层 Q-网络来表示估值函数:Q(s, a, w) ≈ Qπ(s, a)
  • 定义 Q值的均方误差 MSE 作为目标函数:
  • 目标 T=r + γ maxa'Q(s', a', w)
  • L(w) = E[(T-Q(s,a,w))2]
  • 所以得到下面的 Q-学习的梯度:
    ∂L(w)/∂w = E[(T-Q(s,a,w)) ∂Q(s,a,w)/∂w]
  • 使用 ∂L(w)/∂w 对目标函数使用 SGD 进行端对端优化

深度强化学习的稳定性问题

使用神经网络进行简易的 Q-学习会震荡或者发散,原因如下:

  1. 数据是序列化的
  • 时间连续的样本是相关的,不是独立的分布
  1. Q-值微小的变动会剧烈地影响策略
  • 策略可能会震荡
  • 数据分布会从一个极端摇摆到另一个极端
  1. 回报和 Q-值的值范围未知
  • 简易的 Q-学习的梯度在反向传播的时候会非常不稳定

深度 Q-网络 DQN

DQN 给出了基于值的深度强化学习一个稳定的解

  1. 使用经验回放
  • 打破数据之间的关联,将我们拉回独立同分布的配置下
  • 从所有过去的策略中进行学习
  1. 固定目标 Q-网络
  • 避免了震荡
  • 将 Q-网络和目标之间的关联打破
  1. 剪切回报或者规范化网络到一个可行的范围内
  • 健壮的梯度

稳定深度强化学习 1:经验回放

为了移除关联,从 agent 自身的经验中构建数据集合:

  • 根据 ���ε-贪婪策略选择行动 at
  • 将迁移 (st, at, rt+1, st+1)存入经验内存 D 中
  • 从 D 中采样随机 minibatch 的迁移 (s, a, r, s')
  • 优化Q-网络和Q-学习之间的 MSE:
    L(w) = Es,a,r,s'∼D�[(r + γ maxa'Q(s', a', w) − Q(s, a, w))2]

稳定深度强化学习 2:固定目标 Q-网络

为了避免震荡,固定在 Q-学习目标中使用的参数

  • 使用老的固定的参数 w-计算 Q-学习目标:
    r + γ maxa'Q(s', a', w-)
  • 优化 Q-网络和 Q-学习目标间的 MSE
    L(w) = Es,a,r,s'∼D�[(r + γ maxa'Q(s', a', w-) − Q(s, a, w))]
  • 周期性地更新固定参数:w- ← w

稳定深度强化学习 3:回报/值范围

  • DQN 剪切回报在 [-1, +1] 范围内
  • 保证 Q-值不会变得太大
  • 确保梯度有良好的条件 well-conditioned
  • 不能够区分小的或者大的回报

使用强化学习来玩 Atari 游戏

这确实是一个很自然的应用。


Atari 游戏

DQN 用在 Atari 游戏中

  • 从像素 s 中端对端学习值 Q(s, a)
  • 输入状态 s 就是来自过去 4 帧的原始像素的栈
  • 输出是对应于 18 个的手柄或者按钮位置的 Q(s, a)
  • 回报则在那个步骤根据分值进行改变
Minh et al.

DQN 在 Atari 游戏中的结果

results

Demo 省略

DQN 起到多大作用

DQN improvements

规范化 DQN

  • 规范化 DQN 使用真实(非剪切)的回报信号
  • 网络输出一个在稳定范围内的标量值,
    U(s, a,w) ∈ [−1, +1]
  • 输出被重新规范值范围并被转化成 Q-值,
    Q(s, a,w, σ, π) = σU(s, a,w) + π
  • π, σ 会调整成确保 U(s, a,w) ∈ [−1, +1]
  • 网络参数 w 被调整来确保 Q-值是一个常量
    σ1U(s, a,w1) + π1 = σ2U(s, a,w2) + π2

Demo 省略(规范化的 DQN 在 PacMan 中的表现)

Gorila(GOogle ReInforcement Learning Architecture)

Gorila 架构
  • 并行行动:产生新的交互
  • 分布式回放记忆:保存上面产生的交互
  • 并行学习:从回放的交互中进行梯度计算
  • 分布式神经网络:用上面产生的梯度来更新网络

稳定深度强化学习 4:并行更新

Vanilla DQN 在并行时表现得不稳定。我们使用下面的方式克服这个问题:

  • 丢弃陈旧的(stale)梯度
  • 丢弃利群点梯度 g > µ + kσ
  • AdaGrad 优化技术

Gorila 结果

使用 100 并行行动器和学习器

  • Gorila 显著地超过了 Vanilla DQN 的性能:49 个 Atari 游戏中的 41 个游戏中
  • Gorila 达到了 2 倍与 Vanilla DQN 的分数:49 个 Atari 游戏中的 22 个游戏中
  • Gorila 达到同样的性能却比 Vanilla DQN 快 10 倍:49 个 Atari 游戏中的 38 个游戏中

Gorila DQN 在 Atari 中的结果:

Paste_Image.png

连续行动的确定性策略梯度

  • 使用权重为 u 的深度网络 a = π(s, u) 表示确定性策略
  • 定义目标函数为全部折扣回报
    J(u) = E[r1 + γr2 + γ2 r3 + ...]
  • 端对端通过 SGD 来优化目标函数
    ∂J(u)/∂u = Es[(∂Qπ(s, a)/∂a) (∂π(s, u)/∂u)]
  • 在提高 Q 最大的方向更新策略
  • 即通过行动器 actor 来反向传播评价(critic)

确定性 Actor-Critic 模型

使用两个网络:actor 和 critic

  • critic 通过 Q-学习来估计当前策略的值
    ∂L(w)/∂w = E[(��r + γQ(s', π(s'), w) − Q(s, a,w)) ∂Q(s, a,w)/∂w]
  • actor 按照提高 Q 的方向更新策略
    ∂J(u)/∂u = Es[∂Q(s, a, w)/∂a ∂π(s, u)/∂u]

确定性深度 Actor-Critic

  • 简易的 actor-critic 使用神经网络会震荡或者发散
  • DDAC 给出了一个稳定解决方案
  1. 对 actor 和 critic 都使用经验回放
  2. 使用目标 Q-网络来避免震荡

∂L(w)/∂w = Es,a,r,s'∼D [��(r + γQ(s', π(s'), w) − Q(s, a, w)) ∂Q(s, a, w)/∂w]
∂J(u)/∂u = Es,a,r,s'∼D [∂Q(s, a, w)/∂a ∂π(s, u)/∂u]

DDAC 进行连续行动控制

  • 从原始像素 s 进行控制策略的端对端学习
  • 输入状态 s 是最近 4 个帧的原始像素的栈
  • 两个分隔开的卷积网络用于 Q 和 π
  • 物理行为在 MuJoCo 中模拟
DDAC 架构

��

DDAC demo 略

基于模型的强化学习

其目标是学习一个环境转移模型:
p(r, s'| s, a)

使用转移模型进行规划

  • 例如,通过转移模型来查找最优的行动
Model-Based RL

深度模型

  • 使用深度网络来表示转移模型 p(r, s'| s, a)
  • 定义目标函数衡量模型的好坏
  • 比如,重构下一状态的比特数目 (Gregor et al.)
  • 通过 SGD 来优化目标函数

DARN Demo 略

基于模型的强化学习的挑战

复合错误:

  • 转移模型转移路径符合的错误
  • 长的状态转移路径的结尾,回报可能完全错误
  • 基于模型的强化学习在 Atari 中失效

深度估值/策略网络可以隐式地进行规划

  • 网络每层执行任意一步计算
  • n层网络可以向前看 n 步
  • 到底是否需要转移模型呢?

深度学习应用在围棋中

Monte-Carlo 搜索

  • Monte-Carlo 搜索(MCTS)模拟未来的转移路径
  • 构建很大的拥有数百万位置的查找搜素树
  • 目前最好的 19 X 19 的围棋程序就是使用 MCTS 技术 (Gelly et al.)

卷积网络

  • 12-层卷积网络用来训练预测专家走法
  • 原始卷积网络(只看一个位置,不含搜索)
  • 等价于拥有 105 位置的搜索树 MoGo 的性能 (Maddison et al.)
Paste_Image.png

结论

  • 强化学习给出了一种通用的人工智能框架
  • 强化学习问题可以通过端对端深度学习技术来解决
  • 单一的 agent 现在已经能解决很多具有挑战性的任务
  • 强化学习+深度学习=人工智能

问题?

“The only stupid question is the one you never ask.” - Richard Sutton

更多深度强化学习的资源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容