RLDM 强化学习教程-David Silver

我们能够将深度学习应用在强化学习中。使用深度神经网络来端对端表示值函数/策略/模型,然后借助随机梯度下降进行参数更新。

深度值函数

Bellman 方程

Bellman 期望方程将值函数 $Q^{\pi}$ 展开:
$Q^\pi(s,a) = \mathbb{E}~[r_{t+1} + \gamma r_{t+1} + \gamma^2r_{t+1} + \dots | s,a] =\mathbb{E}_{s’,a’}[r + \gamma Q^\pi(s’,a’) | s, a]$

Bellman 最优方程将最优值函数 $Q^*$ 展开:

$Q^*(s,a) = \mathbb{E}_{s’} [r + \gamma \max_{a’} Q^*(s’,a’) | s, a]$

策略迭代算法求解了 Bellman 期望方程
$Q_{i+1}(s,a) = \mathbb{E}_{s’} [r + \gamma Q_i(s’, a’) | s,a]$

值迭代算法求解了 Bellman 最优方程
$Q_{i+1} (s, a) = \mathbb{E}_{s’,a’} [r + \gamma \max_{a’} Q_i(s’,a’)|s,a]$

非线性 Sarsa 策略迭代

使用参数为 w 的 Q-network 来表示值函数
$Q(s, a, w) \approx Q^\pi(s,a)$

通过 Q-值的均方误差来定义目标函数
$\mathcal{L}(w) = \mathbb{E} [(r + \gamma Q(s’,a’,w) - Q(s,a,w))^2]$

我们就有了下面的 Sarsa 梯度
$\frac{\partial \mathcal{L}(w)}{\partial w} = \mathbb{E}[(r + \gamma Q(s’,a’,w) - Q(s,a,w)) \frac{\partial Q(s,a,w)}{\partial w}]$

借助 SGD 使用 $\frac{\partial \mathcal{L}(w)}{\partial w}$ 端对端优化目标函数

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

基本的 Q-学习采用神经网络会出现振荡或者发散的情况

数据是序列化的
相邻的样本是相关的,非独立同分布的
Q-值微小变化会导致策略迅速变化
策略可能会振荡
数据的分布会从一个极端摇摆到另一个极端
奖励和 Q-值的范围未知
基本的 Q-学习梯度会在反响传播时变得很大从而不能稳定

深度 Q-网络(DQN)

DQN 为深度基于值的强化学习问题提供了一种稳定解决方案

使用经验回放
将数据之间的关联打破,重回独立同分布的设定下
从过去的策略中学习
使用 免策略 Q-学习
冻结 目标 Q-网络
避免振荡
将 Q-网络和目标网络之间的关联打破
截断奖励或者正规化网络,适应到合适的范围内
可以得到健壮的梯度

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

为了打破关联,我们从 agent 自己的经验中构建数据集

根据 $\epsilon$-贪婪策略采取行动 $a_t$
将转换 $(s_t, a_t, r_{t+1}, s_{t+1})$ 存放在记忆 $\mathcal{D}$ 中
从 $\mathcal{D}$ 中随机采样一个小批量样本 $(s,a,r,a’)$
优化 Q-网络和 Q-学习目标之间的均方误差 MSE,如
$\mathcal{L}(w) = \mathbb{E}_{s,a,r,s’ \sim \mathcal{D}} [(r + \gamma \max_{a’}Q(s’,a’,w) - Q(s,a,w))^2]$

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

为了避免振荡,固定在 Q-学习目标网络的参数

根据旧的,固定的参数 $w^-$ 计算 Q-学习目标函数
$r + \gamma \max_{a’} Q(s’,a’,w^-)$

优化 Q-网络和 Q-学习目标之间的均方误差 MSE
$\mathcal{L}(w) = \mathbb{E}_{s,a,r,s’\sim \mathcal{D}} [(r + \gamma \max_{a’}Q(s’,a’,w^-)-Q(s,a,w))^2]$

周期化地更新固定参数 $w^- \leftarrow w$

稳定的深度强化学习(3):奖励/值范围

DQN 截断奖励在 $[-1,+1]$ 之间
让 Q-值不会过大
确保梯度完好(well-conditioned)
不能够区分奖励的大小
更好的方式:正规化网络输出
比如,通过 batch 正规化

连续行动上的策略梯度

使用一个权重为 $u$ 的深度神经网络 $a = \pi(s,u)$ 来表示策略
定义目标函数为总折扣奖励
$J(u) = \mathbb{E} [r_1 + \gamma r_2 + \gamma^2 r_3 + \dots]$

使用 SGD 来端对端优化目标函数
即,调整策略参数 $u$ 来达到更大的奖励

确定型策略梯度

策略的梯度由下式给出

$\frac{\partial J(u)}{\partial u} = \mathbb{E}_s [\frac{\partial Q^\pi(s,a)}{\partial u}] = \mathbb{E}_s [\frac{\partial Q^\pi(s,a)}{\partial a} \frac{\partial \pi(s,u)}{\partial u}]$

策略梯度是最大化提升 $Q$ 的方向

确定型 Actor-Critic

使用两个网络

Actor 是参数为 $u$ 的策略 $\pi(s, u)$
$s \xrightarrow[u_1]{}\dots\xrightarrow[u_n]{} a$

Critic 是参数为 $w$ 的值函数 $Q(s, a, w)$
$s,a \xrightarrow[w_1]{}\dots\xrightarrow[w_n]{} Q$

Critic 为 Actor 提供损失函数
$s \xrightarrow[u_1]{}\dots\xrightarrow[u_n]{} a\xrightarrow[w_1]{}\dots\xrightarrow[w_n]{} Q$

梯度从 Critic 到 Actor 反向传播
$\frac{\partial a}{\partial u} \xleftarrow[]{}\dots\xleftarrow[]{} \frac{\partial Q}{\partial a} \xleftarrow[]{} \dots\xleftarrow[]{} $

确定型 Actor-Critic:学习规则

Critic 通过 Q-学习估计当前策略的值
$\frac{\partial \mathcal{L}(w)}{\partial w} = \mathbb{E} [(r + \gamma Q(s’,\pi(s’),w)-Q(s,a,w)) \frac{\partial Q(s,a,w)}{\partial w}]$

Actor 按照提升 Q 的方向更新策略
$\frac{\partial J(u)}{\partial u} = \mathbb{E}_s [\frac{\partial Q(s,a,w)}{\partial a} \frac{\partial \pi(s,u)}{\partial u}]$

确定型深度策略梯度(DDPG)

基本的 actor-critic 使用神经网络会振荡或者发散
DDPG 给出了稳定解
对 actor 和 critic 均使用经验回放
冻结目标网络来避免振荡
$\frac{\partial \mathcal{L}(w)}{\partial w} = \mathbb{E}_{s,a,r,s’\sim \mathcal{D}} [(r + \gamma Q(s’,\pi(s’,u^-),w^-)-Q(s,a,w)) \frac{\partial Q(s,a,w)}{\partial w}]$

$\frac{\partial J(u)}{\partial u} = \mathbb{E}_{s,a,r,s’\sim \mathcal{D}}[\frac{\partial Q(s,a,w)}{\partial a} \frac{\partial \pi(s,u)}{\partial u}]$

用于连续行动控制的 DDPG

从原始像素 $s$ 端对端学习控制策略
输入状态 $s$ 是前 4 帧的图像的原始像素的栈
对 $Q$ 和 $\pi$ 两个不同的卷积网络
在 MuJoCo 中进行模拟

基于模型的强化学习

学习环境的转移模型:$p(r,s’|s,a)$

使用转换模型来进行规划

使用转移模型来查找最优行动

深度模型

使用深度神经网络来表示转移模型 $p(r,s’|s,a)$
定义目标函数来评价模型的好坏
如,重新创建下一状态的比特数(Gregor et al.)
通过 SGD 来优化目标函数

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

综合误差

转换模型的误差会整个轨迹上复合
长轨迹的结尾,奖励就完全错了
基于模型的强化学习在 Atari 游戏上无效(到目前为止)
值/策略的深度神经网络可以隐式地“规划”

网络的每层执行任意的计算步骤
n-层网络可以向前看 n 步
转换模型是否需要?

围棋中的深度学习

Monte-Carlo 搜索

MCTS 模拟未来轨迹
构建巨大的拥有百万位置的向前搜索树
目前最佳 19X19 程序使用的是 MCTS
例如,第一个强大的围棋程序 MoGo (Gelly et al.)

卷积网络

12 层的卷积网络可以训练来预测专家走法
简单的卷积网络(只看一个位置,没有搜索)
等价于有 $10^5$ 位置的搜索树的 MoGo (Maddison et al.)

结论

强化学习为人工智能提供了一个通用途径的框架
强化学习问题可以用端对端深度学习解决
单个 agent 现在可以解决很多挑战性问题
强化学习 + 深度学习 = 人工智能

问题?

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

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2017 Universality All Rights Reserved.

UV : | PV :