传统上,Agent 从他们的经验中学习下一状态预测模型,并将预测误差用作内在 reward。与现有方法不同,RND引入的内在 reward 基于预测下一状态下固定且随机初始化的神经网络的输出。在不熟悉的状态下,很难预测输出,因此奖励很高。 它可以应用于任何强化学习算法,实现简单而且高效。
研究问题
强化学习( RL )方法的目标是最大化策略的期望 return。当环境中有大量 reward 时,传统的探索方法很有效,这些奖励很容易通过随机的一系列行动找到,但是当奖励很少且很难找到时,这种方法往往会失效。
经典的 DQN 算法在《蒙特祖玛的复仇》中无法取得任何得分。简单的探索策略极不太可能得到任何奖励,或者看到该级别的24个房间中的更多,从那时起,该游戏进展被许多人视为探索进步的代名词。
之前有关 Curiosity-Driven 的文章大都是从经验中学习下一状态的预测模型,并将预测结果和实际结果的误差作为内在 reward 使用。
基于 Curiosity-Driven 的 Next-State 预测模型
Noisy-TV 问题
Agent 被安排在一个迷宫里,它的任务是找到最高奖励的对象(和在超市里找奶酪的道理一样)。迷宫中有一台电视,而 Agent 有它的遥控器。但是电视只有几个台(每个台放的节目不一样),每按一下遥控器,电视就会随机切换频道。在这种情况下, Agent 应该怎么做呢?
对于基于误差的好奇心方程来说,调换频道会导致较大的奖励,因为每次换台都是无法预测的,充满惊喜。重要的是,当所有频道轮换一遍之后,随机选择仍会让 Agent 感到惊奇, Agent 仍然可能会预测错误。所以, Agent 为了获得不断的惊喜、得到奖励,就会一直站在电视机前不走。所以为了避免这种情况,该如何重新定义好奇心呢?
因为 TV 上的节目是随机播放的,也就是下一状态根本无法预测,之前的 Curiosity-Driven 的预测模型无法解决这个问题。在《蒙特祖玛的复仇》游戏里,基于 与现有方法不同,RND引入的内在 reward 基于预测下一状态下固定且随机初始化的神经网络的输出。在《蒙特祖玛的复仇》游戏中,基于 Curiosity-Driven 的算法会出现在两个房间来回切换的问题。
Random Network Distillation
对于预测模型,一般来说,预测误差和四个因素有关:
- 预测器无法泛化,因为训练集不够
- 预测目标是随机的
- 缺少必要的输入信息
- 模型能力不足以适应目标函数
第一点是必要的,泛化能力差就代表了预测误差高也就是好奇心高。第二点导致到了Noisy-TV问题,应该避免。同样的,第三点和第四点也要去除。
于是提出了RND算法,引入的内在 reward 是基于预测下一状态下 固定且随机初始化的神经网络 的输出。
通过两张图片的对比可以发现,之前的 Curiosity-Driven 算法输入是 $(O_i,a_i)$,输出是下一状态的预测 $\hat{f_{i+1}}$,对于 Noisy-TV 问题,下一状态 $\hat{f_{i+1}}$ 是无法确定的,自然也就无法预测,永远会算出一个很高的好奇心,对应了第二点。
而RND模型预测的输出是确定的,规避了第二点。为了避免三号和四号因素,RND 选择和目标网络相同的架构。
实验
超级马里奥:
- Agent通过了11关,找到了许多隐藏的房间,并打败了库巴大魔王。
蒙特祖玛的复仇:
- 最好成绩,当然是24个房间都攻破,顺利通过第一关,得分17.5k。
- 并且,多数情况下,智能体都能解锁20-22个房间,得分14.5k。
- 对比一下,人类平均分是4.7k。
等等
REF:
- Exploration by Random Network Distillation
- https://blog.openai.com/reinforcement-learning-with-prediction-based-rewards/