社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

流式深度学习终于奏效了!强化学习之父Richard Sutton力荐

机器之心 • 3 天前 • 19 次点击  

机器之心报道

机器之心编辑部

自然智能(Natural intelligence)过程就像一条连续的流,可以实时地感知、行动和学习。流式学习是 Q 学习和 TD 等经典强化学习 (RL) 算法的运作方式,它通过使用最新样本而不存储样本来模仿自然学习。这种方法也非常适合资源受限、通信受限和隐私敏感的应用程序。

然而,在深度强化学习中,学习器(learners )几乎总是使用批量更新和重放缓冲区,这种方式使得它们在计算上很昂贵,并且与流式学习不兼容。

研究认为批量深度强化学习之所以普遍,是因为它的样本效率高。流式深度强化学习存在样本效率问题,经常出现不稳定和学习失败的情况。这一现象称为流式障碍。

就像下图展示的,流式强化学习需要从即时单个样本进行更新,而无需存储过去的样本,而批量强化学习则依赖于存储在重放缓冲区中的过去样本的批量更新。


为了解决流式障碍,本文来自阿尔伯塔大学等机构的研究者提出了 stream-x 算法,这是第一类深度强化学习算法,用于克服预测和控制流式障碍,并匹配批量强化学习的样本效率。


  • 论文地址:https://openreview.net/pdf?id=yqQJGTDGXN
  • 项目地址:https://github.com/mohmdelsayed/streaming-drl
  • 论文标题:Deep Reinforcement Learning Without Experience Replay, Target Networks, or Batch Updates

论文作者还提供了 stream-x 算法的最小实现(大约 150 行代码),感兴趣的读者可以参考原项目。


本文证明了 stream-x 算法能够克服流式障碍。

在电力消耗预测任务、MuJoCo Gym、DM Control Suite、MinAtar 和 Atari 2600 上的结果证明,该方法能够作为现成的解决方案,克服流式障碍,提供以前无法通过流式方法实现的结果,甚至超越批量 RL 的性能。特别是,stream AC 算法在一些复杂的环境中达到了已知的最佳性能。 

如下所示,经典的流方法(例如 Classic Q )和批处理 RL 方法的流式版本(例如 PPO1)由于流式障碍而表现不佳。相比之下, stream-x 算法(例如 stream Q )克服了流式障碍,并与批处理 RL 算法竞争,证明了其稳定性和鲁棒性。


这项研究得到了强化学习之父 Richard Sutton 的转发和评论:

「最初的强化学习(RL)算法受自然学习的启发,是在线且增量式的 —— 也就是说,它们是以流的方式进行学习的,每当新的经验增量发生时就学习,然后将其丢弃,永不再次处理。

流式算法简单而优雅,但在深度学习中,RL 的首次重大成功并非来自流式算法。相反,像 DQN(深度 Q 网络)这样的方法将经验流切割成单独的转换(transitions),然后以任意批次进行存储和采样。随后的一系列工作遵循、扩展并完善了这种批量方法,发展出异步和离线强化学习,而流式方法却停滞不前,无法在流行的深度学习领域中取得良好效果。

直到现在,阿尔伯塔大学的研究人员已经证明,在 Atari 和 Mujoco 任务上,流式强化学习(Streaming RL) 算法可以与 DQN 一样有效。

在我看来,他们似乎是第一批熟悉流式强化学习算法的研究人员,认真地解决深度强化学习问题,而不受批量导向的软件和批量导向的监督学习思维方式的过度影响。」


还有网友表示,流式算法确实塑造了强化学习的格局。
 

方法介绍

本文通过引入流式深度强化学习方法 ——Stream TD (λ)、Stream Q (λ) 和 Stream AC (λ),这些统称为 stream-x 算法,并利用资格迹,来解决流式障碍问题。

该方法无需使用重放缓冲区、批量更新或目标网络,即可从最新的经验中进行学习。与普遍认知相反,本文证明了流式深度强化学习可以是稳定的,并且在样本效率上可与批量强化学习相当。 

由于流式学习方法在使用样本后必须将其丢弃,因此可能会导致样本效率低下。为此,本文提出了两种技术来提高流式学习方法的样本效率:1)稀疏初始化,2)资格迹。 

算法 1 展示了本文提出的稀疏初始化技术 — SparseInit。此稀疏初始化方案可用于全连接层和卷积层。


算法 3 展示了如何构建一个优化器,该优化器使用有效步长这一条件来控制更新大小。
 

下面为 stream-x 算法伪代码。为了提高算法可读性,作者使用了以下颜色编码:紫色表示层归一化,蓝色表示观测规一化,橙色表示奖励缩放,青色表示步长缩放,棕色表示稀疏初始化。




实验结果

为了演示 Stream-x 算法的有效性,该研究首先展示了在不同环境中经典方法失败的流式障碍,而 Stream-x 算法克服了这一障碍,并且与其他批处理方法性能相当。

克服流式障碍

流式深度强化学习方法经常会遇到不稳定和学习失败的情况,称为流式障碍。图 2 显示了三个不同的具有挑战性的基准测试任务中的流障碍:MuJoCo、DM Control 和 Atari。


Stream-x 算法的样本效率

该研究通过比较不同算法的学习曲线来研究 stream-x 方法的样本效率。图 3 显示了不同深度 RL 方法在四个连续控制 MuJoCo 任务上的性能。


图 4 展示了流 Q (0.8) 与其对应经典方法以及 DQN1 和 DQN 在 MinAtar 任务上的性能。


Stream-x 算法在扩展运行中的稳定性 

接下来,研究团队探究了 Stream-x 算法在长时间运行时的稳定性,以有效地揭示方法是否可以长时间运行而不出现任何问题。实验结果如下图 5 所示:


图 6 显示了不同智能体在总共经历 2 亿帧的 Atari 游戏上的性能:


感兴趣的读者可以阅读论文原文,了解更多研究内容。

© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:liyazhou@jiqizhixin.com

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/176384
 
19 次点击