关于强化学习的稀疏奖励问题,主要的解决方案有:
- 1)塑形奖励函数,但是塑形奖励函数一般或多或少的带有设计者的个人主观因素,这可能会导致模型的最优策略发生偏移。目前,防止塑形奖励函数改变最优策略的方法是吴恩达的
Potential-Based Reward Shaping (没了解的可以搜索一下看看,有很多博客)。 - 2)模仿学习,其实也就是使用专家演示数据引导训练,典型的代表就是DQN中使用的transitions通过专家演示数据生成和使用专家数据预训练DQN的backbone。但是,好用的专家演示数据一般是很难采集的。
- 3)就是好奇心驱动的探索,也就是本文要分享的方法。.基于好奇心的探索主要分为两类:
第一类是使用预测误差作为内在奖励信号[1][2][3][4][5],第二类是使用“访问计数[6][7][8][9]”作为内在奖励。
[1] R. Houthooft, X. Chen, Y . Duan, J. Schulman, F. De Turck, and P .Abbeel. Vime: V ariational information maximizing exploration. In NIPS, 2016.
[2] S. Mohamed and D. J. Rezende. V ariational information maximisation for intrinsically motivated reinforcement learning. In NIPS, 2015.
[3] D. Pathak, P . Agrawal, A. A. Efros, and T. Darrell. Curiosity-driven exploration by self-supervised prediction. In ICML, 2017.
[4] J. Schmidhuber. A possibility for implementing curiosity and boredom in model-building neural controllers. In From animals to animats: Proceedings of the first international conference on simulation of adaptive behavior, 1991.
[5] S. P . Singh, A. G. Barto, and N. Chentanez. Intrinsically motivated reinforcement learning. In NIPS, 2005.
[6] M. Bellemare, S. Srinivasan, G. Ostrovski, T. Schaul, D. Saxton, and R. Munos. Unifying count-based exploration and intrinsic motivation. In NIPS, 2016.
[7] M. Lopes, T. Lang, M. Toussaint, and P .-Y . Oudeyer. Exploration in model-based reinforcement learning by empirically estimating learning progress. In NIPS, 2012.
[8] G. Ostrovski, M. G. Bellemare, A. v. d. Oord, and R. Munos. Count-based exploration with neural density models. arXiv:1703.01310, 2017.
[9] P . Poupart, N. Vlassis, J. Hoey, and K. Regan. An analytic solution to discrete bayesian reinforcement learning. In ICML, 2006.
首先看一下这个论文的框架图
图 2. 处于状态
s
t
s_{t}
st 的agent通过执行从其当前策略
π
π
π 中采样的动作
a
t
a_{t}
at与环境交互,并最终处于状态
s
t
+
1
s_{t+1}
st+1。训练策略π以优化环境 E 提供的外在奖励 (
r
t
e
r_{t}^{e}
rte) 和我们提出的内在好奇心模块 (ICM) 生成的基于好奇心的内在奖励信号 (
r
t
i
r_{t}^{i}
rti) 的总和。ICM 将状态
s
t
s_{t}
st、
s
t
+
1
s_{t+1}
st+1 编码为feature
φ
(
s
t
)
φ(s_{t})
φ(st)、
φ
(
s
t
+
1
)
φ(s_{t+1})
φ(st+1),这些feature经过训练以预测
a
t
a_{t}
at(即逆动力学模型)。前向模型将
φ
(
s
t
)
φ(s_{t})
φ(st) 和
a
t
a_{t}
at作为输入,并预测
s
t
+
1
s_{t+1}
st+1的特征表示 。
特征空间中的预测误差被用作基于好奇心的内在奖励信号。
作者的主要意图就是:使用预测误差作为好奇心奖励,这样就是得agent在每一步都可以得到一个奖励了。解决了强化学习面对的稀疏奖励的问题。
因此,这篇文章的核心就是预测误差。下面,我们就解释一下到底是哪些变量的预测误差。
1. 预测两个变量
首先,介绍策略输出网络
这篇论文用参数为
θ
P
θ_{P}
θP 的深度神经网络表示策略
π
(
s
t
;
θ
P
)
π(s_{t}; θ_{P})
π(st;θP)。给定状态 st的agent,它执行从策略中采样的动作
a
t
∼
π
(
s
t
;
θ
P
)
a_{t}∼π(s_{t}; θ_{P})
at∼π(st;θP)。
θ
P
θ_{P}
θP被优化以最大化期望的奖励总和,
---------------------------------------
min
θ
P
[
E
π
(
s
t
,
θ
P
)
[
Σ
t
r
t
]
]
\min_{\theta_{P}}[\mathbb{E}_{\pi ({s_{t},\theta _{P}})}[\Sigma_{t}r_{t}]]
minθP[Eπ(st,θP)[Σtrt]]
-------------------------------------------
r
t
=
r
t
e
+
r
t
i
r_{t}=r_{t}^{e}+r_{t}^{i}
rt=rte+rti
---------------------------------
r
t
i
=
η
2
∥
φ
^
(
s
t
+
1
)
,
φ
(
s
t
+
1
)
∥
2
2
r_{t}^{i}=\frac{\eta }{2} \left \| \hat{\varphi}(s_{t+1}),φ(s_{t+1}) \right \| _{2}^{2}
rti=2η∥φ^(st+1),φ(st+1)∥22
1.1 ICM模块的三个主要结构
从图2可以看出,ICM其实有三个模块,
- 特征提取器。我们可以将这两个特征提取看做是两个参数相同的深度神经网络,特征提取器输出的 φ ( s t ) φ(s_{t}) φ(st)和 φ ( s t + 1 ) φ(s_{t+1}) φ(st+1)是特征向量,输入其实就是agent观察到的图像,就是状态 s t s_{t} st和 s t + 1 s_{t+1} st+1。
- 前向模块:forward model。该模块的输入是agent根据当前策略采取的动作 a t a_{t} at和当前状态的特征向量 φ ( s t ) φ(s_{t}) φ(st)。输出是对下一时刻状态的特征向量的预测值 φ ^ ( s t + 1 ) \hat{\varphi}(s_{t+1}) φ^(st+1)。
- 逆模块: inverse model。该模块的输入当前状态的特征向量 φ ( s t ) φ(s_{t}) φ(st)和下一时刻状态的特征向量 φ ( s t + 1 ) φ(s_{t+1}) φ(st+1)。输出是对当前动作的预测值 a ^ t \hat{a}_{t} a^t。需要指出的是, a ^ t \hat{a}_{t} a^t是通过softmax处理的值。
1.2 逆模型预测动作 a t a_{t} at
从上面1.1节的分析可以看出,ICM的第一个预测值是对当前动作的预测值,输入是前后两个状态的特征向量,在这里,我们可以简单的将其看作是多智能体强化学习中的high-level Communication mechanism。这个操作让agent具有“全局观察能力”,其实也可以认为是这个操作让agent在时间上具有更大的视野。
逆模型的损失函数可以表示为:
----------------------------------------
min
θ
I
,
θ
E
L
I
(
a
^
t
,
a
t
)
\min_{\theta_{I},\theta_{E}} L_{I}(\hat{a}_{t},a_{t})
minθI,θELI(a^t,at)
逆模型的表达式可以表示为:
-------------------------------------------
a
^
t
=
g
(
φ
(
s
t
)
,
φ
(
s
t
+
1
)
;
θ
I
)
\hat{a}_{t}=g(\varphi (s_{t}),\varphi (s_{t+1});\theta_{I} )
a^t=g(φ(st),φ(st+1);θI)
其中,
L
I
L_{I}
LI 衡量了预测动作与实际动作之间的差异。当
a
t
a_{t}
at是离散的时,
L
I
L_{I}
LI被建模为所有可能动作的 softmax 损失。学习到的函数
g
g
g 也称为逆动力学模型(inverse dynamics model),学习
g
g
g 所需的元组 (
s
t
s_{t}
st,
a
t
a_{t}
at,
s
t
+
1
s_{t+1}
st+1) 是在agent使用其当前策略
π
(
s
)
π(s)
π(s) 与环境交互时获得的。
个人观点。从逆模块的损失函数可以看出。这个模块的作用是输出当前动作的预测值
a
^
t
\hat{a}_{t}
a^t。与该模块相关的顺势函数其实就是最小化当前策略输出的动作
a
t
a_{t}
at与逆模型输出的动作
a
^
t
\hat{a}_{t}
a^t之间的误差。
更信息的分析逆模型的作用,还需要进一步结合整体的损失函数来分析。不要急,我会在1.4节解释。
1.3 前向模块预测状态 s t + 1 s_{t+1} st+1
这个模块其实挺有意思的,它输入的是当前的动作
a
t
a_{t}
at和当前状态的特征向量
s
t
+
1
s_{t+1}
st+1,输出是下一个状态的特征向量的预测值
φ
^
(
s
t
+
1
)
\hat{\varphi}(s_{t+1})
φ^(st+1)。
首先看一下这个模块对应的损失函数:
----------------------------------
min
θ
F
,
θ
E
L
F
(
φ
^
(
s
t
+
1
)
,
φ
(
s
t
+
1
)
)
\min_{\theta_{F},\theta_{E}} L_{F}(\hat{\varphi}(s_{t+1}),\varphi(s_{t+1}))
minθF,θELF(φ^(st+1),φ(st+1))
这个模块的输入输出表达式可以表示为:
-------------------------------------------
φ
^
(
s
t
+
1
)
=
f
(
φ
(
s
t
)
,
a
t
;
θ
F
)
\hat{\varphi}(s_{t+1})=f(\varphi (s_{t}),a_{t};\theta_{F} )
φ^(st+1)=f(φ(st),at;θF)
前向模型有助于学习一个特征空间,该特征空间编码的信息仅用于预测agent的动作,而正向模型使这种学习的特征表示更具可预测性。
1.4 总的损失函数
---------------------------------
min
θ
P
,
θ
I
,
θ
F
,
θ
E
[
−
λ
E
π
(
s
t
,
θ
P
)
[
Σ
t
r
t
]
+
(
1
−
β
)
L
I
+
β
L
F
]
\min_{\theta_{P},\theta_{I},\theta_{F},\theta_{E}}[-\lambda \mathbb{E}_{\pi ({s_{t},\theta _{P}})}[\Sigma_{t}r_{t}]+(1-\beta )L_{I}+\beta L_{F}]
minθP,θI,θF,θE[−λEπ(st,θP)[Σtrt]+(1−β)LI+βLF]
其中
0
≤
β
≤
1
0≤β≤1
0≤β≤1是一个衡量反向模型损失和正向模型损失的标量,
λ
>
0
λ>0
λ>0衡量策略梯度损失和内在奖励信号的重要性。我们不将策略梯度损失反向传播到正向模型,以防止agent奖励它自己的退化解。
原文中的这句话很难理解,什么叫“防止agent奖励它自己的退化解”。
综合来看, L F L_{F} LF和 L I L_{I} LI,也就是预测动作和预测状态的前向模型和逆模型对整体损失函数的贡献是互斥的,也就是说他们两个是一个变大,另一个就会变小。
1.5 好奇心奖励 r t i r_{t}^{i} rti
r
t
i
=
η
2
∥
φ
^
(
s
t
+
1
)
,
φ
(
s
t
+
1
)
∥
2
2
r_{t}^{i}=\frac{\eta }{2} \left \| \hat{\varphi}(s_{t+1}),φ(s_{t+1}) \right \| _{2}^{2}
rti=2η∥φ^(st+1),φ(st+1)∥22
简单的将,好奇心奖励就是
φ
^
(
s
t
+
1
)
\hat{\varphi}(s_{t+1})
φ^(st+1)和
φ
(
s
t
+
1
)
φ(s_{t+1})
φ(st+1)的二范数,其实就是衡量实际值和预测值之间的误差,误差越大,二范数的值越大,则好奇心奖励的值就越大,那么这就越会鼓励agent去探索。