10

RND(Exploration by Random Network Distillation)算法

 2 years ago
source link: https://gyh75520.github.io/2018/11/20/RND/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

RND(Exploration by Random Network Distillation)算法

2018-11-20

传统上,Agent 从他们的经验中学习下一状态预测模型,并将预测误差用作内在 reward。与现有方法不同,RND引入的内在 reward 基于预测下一状态下固定且随机初始化的神经网络的输出。在不熟悉的状态下,很难预测输出,因此奖励很高。 它可以应用于任何强化学习算法,实现简单而且高效。

强化学习( RL )方法的目标是最大化策略的期望 return。当环境中有大量 reward 时,传统的探索方法很有效,这些奖励很容易通过随机的一系列行动找到,但是当奖励很少且很难找到时,这种方法往往会失效。

经典的 DQN 算法在《蒙特祖玛的复仇》中无法取得任何得分。简单的探索策略极不太可能得到任何奖励,或者看到该级别的24个房间中的更多,从那时起,该游戏进展被许多人视为探索进步的代名词。

之前有关 Curiosity-Driven 的文章大都是从经验中学习下一状态的预测模型,并将预测结果和实际结果的误差作为内在 reward 使用。

基于 Curiosity-Driven 的 Next-State 预测模型
p0

Noisy-TV 问题

Agent 被安排在一个迷宫里,它的任务是找到最高奖励的对象(和在超市里找奶酪的道理一样)。迷宫中有一台电视,而 Agent 有它的遥控器。但是电视只有几个台(每个台放的节目不一样),每按一下遥控器,电视就会随机切换频道。在这种情况下, Agent 应该怎么做呢?

对于基于误差的好奇心方程来说,调换频道会导致较大的奖励,因为每次换台都是无法预测的,充满惊喜。重要的是,当所有频道轮换一遍之后,随机选择仍会让 Agent 感到惊奇, Agent 仍然可能会预测错误。所以, Agent 为了获得不断的惊喜、得到奖励,就会一直站在电视机前不走。所以为了避免这种情况,该如何重新定义好奇心呢?

因为 TV 上的节目是随机播放的,也就是下一状态根本无法预测,之前的 Curiosity-Driven 的预测模型无法解决这个问题。在《蒙特祖玛的复仇》游戏里,基于 与现有方法不同,RND引入的内在 reward 基于预测下一状态下固定且随机初始化的神经网络的输出。在《蒙特祖玛的复仇》游戏中,基于 Curiosity-Driven 的算法会出现在两个房间来回切换的问题。

Random Network Distillation

对于预测模型,一般来说,预测误差和四个因素有关:

  • 预测器无法泛化,因为训练集不够
  • 预测目标是随机的
  • 缺少必要的输入信息
  • 模型能力不足以适应目标函数

第一点是必要的,泛化能力差就代表了预测误差高也就是好奇心高。第二点导致到了Noisy-TV问题,应该避免。同样的,第三点和第四点也要去除。

于是提出了RND算法,引入的内在 reward 是基于预测下一状态下 固定且随机初始化的神经网络 的输出。
p1

通过两张图片的对比可以发现,之前的 Curiosity-Driven 算法输入是 (Oi,ai),输出是下一状态的预测 ^fi+1,对于 Noisy-TV 问题,下一状态 ^fi+1 是无法确定的,自然也就无法预测,永远会算出一个很高的好奇心,对应了第二点。

而RND模型预测的输出是确定的,规避了第二点。为了避免三号和四号因素,RND 选择和目标网络相同的架构。

超级马里奥:

  • Agent通过了11关,找到了许多隐藏的房间,并打败了库巴大魔王。

蒙特祖玛的复仇:

  • 最好成绩,当然是24个房间都攻破,顺利通过第一关,得分17.5k。
  • 并且,多数情况下,智能体都能解锁20-22个房间,得分14.5k。
  • 对比一下,人类平均分是4.7k。

REF:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK