关于强化学习的稀疏奖励问题,主要的解决方案有:
[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在每一步都可以得到一个奖励了。解决了强化学习面对的稀疏奖励的问题。
因此,这篇文章的核心就是预测误差。下面,我们就解释一下到底是哪些变量的预测误差。
首先,介绍策略输出网络
这篇论文用参数为 θ 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
从图2可以看出,ICM其实有三个模块,
从上面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节解释。
这个模块其实挺有意思的,它输入的是当前的动作 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的动作,而正向模型使这种学习的特征表示更具可预测性。
--------------------------------- 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,也就是预测动作和预测状态的前向模型和逆模型对整体损失函数的贡献是互斥的,也就是说他们两个是一个变大,另一个就会变小。
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去探索。