通用强化学习用算法发现算法:DeepMind 数据驱动「价值函数」自我更新,14款Atari游戏完虐人类!

简介: 击败卡斯帕罗夫的「深蓝」并不是真正的人工智能,它过度依赖了人类设计的规则,而最近DeepMind的一项深度强化学习新研究表明,不用人工介入,完全数据驱动,算法自己就能发现算法。

微信图片_20220109134707.png


「深蓝」并非以智取胜,而是一个劳动密集型选手


当「深蓝」在1997年击败国际象棋世界冠军卡斯帕罗夫时,人工智能似乎要来了。 一台电脑击败了有史以来最聪明的国际象棋选手之一,很多人惊呼,电脑要超越人类了。 


然而事实并非如此,虽然「深蓝」是一段精心编制的程序,但这种方法过于劳动密集,过于依赖清晰的规则和有限的可能性,无法迁移到更复杂的游戏中,更不用说现实世界了。 


深度学习成功的关键在于算法基本上是自己编写的,给定数据集,他们从中学习到一些表征,所谓的算法就是这么出来的。 而DeepMind 正在开发一种新的元学习算法来进一步实现自动化,这种算法能够从零开始发现自己的价值函数--深度强化学习中的一个关键编程规则。 


近日该论文发表在了arxiv上。      

 微信图片_20220109134709.png        

发现强化学习算法的算法


DeepMind最近引入了一种新的元学习方法,可以自动生成强化学习算法,称为学习策略梯度(LPG) 


研究人员认为,该算法可以从数据中自动发现更新规则,而且能更好地适应特定环境,它既包括预测什么(价值函数),又包括如何从中学习,如何与环境交互。 


该元学习方法的目标是从环境和初始代理参数的分布中寻找最优的更新规则。      

 微信图片_20220109134711.png


我们来看下学习策略梯度(LPG)是如何进行元训练的。 


首先用θ参数化主体产生状态的动作概率π和预测向量y。 其次由η设置的更新规则(LPG)将代理的输出作为输入,向后展开给LSTM以生成代理输出(πˆ,yˆ)的目标。 


最后,更新规则参数η是从多个生存期进行元学习的,在每个生存期中,不同的代理与采样的环境进行交互,并使用共享更新规则更新其参数θ。


在所有K <N个参数通过滑动窗口更新后(在所有并行生命周期内取平均值),计算出元梯度以使回报最大化。 LPG进行元训练时,没有做任何试图发现更新规则的先验工作,取而代之的是,它们全都依赖于价值函数(可以说是RL的最基本构建块)进行引导


代理的更新(θ) 


代理通过下面这个公式引导梯度上升来更新参数:  

   微信图片_20220109134712.png


其中πˆ和yˆ是LPG的输出。     


 微信图片_20220109134714.png  

 

是Kullback-Leibler散度。 αy是用于预测更新的系数,在更高的层面来看,πˆ指定应如何调整动作概率,并直接影响代理的行为。yˆ指定 代理在给定状态预测下的类别分布,并且在LPG发现其有用的语义(例如,价值函数)并使用y通过自举来间接更改策略之前,不会对策略产生影响。

        微信图片_20220109134716.png


LPG的元训练过程 


这只是研究人员建议的框架,实际上并不限于这种特定形式的代理更新和架构(例如,具有KL散度的分类预测),你也可以采用其他方案。但是,有一点需要注意,不要对y强制执行任何语义,只能允许LPG从数据中发现y的语义。 


LPG的更新(η) 


对LPG进行元训练时,要考虑到它可以在多大程度上改善与不同类型环境交互的代理的性能。具体而言,通过对等式中的目标应用策略梯度来计算元梯度。


微信图片_20220109134720.png


直观地,我们使用从θ0到θN的更新规则η进行N次参数更新,直到生命周期结束,并估计更新参数θN的策略梯度,以找到使θN的预期收益(G)最大化的超梯度方向。 


从零开始自主学习,已经在14款游戏中超越人类


LPG生成的强化学习算法表现如何呢?研究人员在复杂的Atari游戏中对LPG进行了评估。 与高级RL算法相比,LPG可以很好地推广到Atari游戏。 


令人惊讶的是,训练环境主要由表格形式的数据组成,其基本任务比Atari游戏要简单得多,而且LPG在元训练期间从未见过如此复杂的世界。 


不过,接受LPG训练的代理可以在许多Atari游戏中学习复杂的行为,从而在14款游戏中实现超越人类的表现,而无需依赖任何手工设计的RL组件(例如价值函数),而是使用从零开始发现的规则。      


微信图片_20220109134722.png 

上图展示了LPG从玩具环境到Atari的泛化。X轴是用于元学习LPG的玩具环境的数量。


Y轴是代理在训练结束时胜过人类的Atari游戏的数量。虚线对应每年的最新算法。


可以看到LPG的表现非常喜人。 更多的细节请参见:


https://arxiv.org/pdf/2007.08794.pdf


LPG不是很完美,但我们离通用RL又近了一步


LPG仍然落后于人工设计的先进算法。


但是它在训练甚至是某些Atari游戏中的表现都超过了人为设计的基准,但这只能表明它在某些环境下是出色的。 本文首次尝试了结合「预测内容」和「如何进行引导」来元学习完整的RL的更新规则,从而取代了一些现有的RL概念。 


由于LPG完全是数据驱动的,得出的算法可能会捕获环境训练集中的意外偏差,而除了发现算法时的奖励,训练时并没有提供特定领域的信息,这使得算法很难在训练环境中捕获偏见。 


但是至少证明了,强化学习从玩具环境迁移到具有挑战性的基准是可能的。DeepMind的这一研究,让我们朝着通用 RL 算法又迈进了一步。

相关文章
|
4月前
|
机器学习/深度学习 算法 前端开发
别再用均值填充了!MICE算法教你正确处理缺失数据
MICE是一种基于迭代链式方程的缺失值插补方法,通过构建后验分布并生成多个完整数据集,有效量化不确定性。相比简单填补,MICE利用变量间复杂关系,提升插补准确性,适用于多变量关联、缺失率高的场景。本文结合PMM与线性回归,详解其机制并对比效果,验证其在统计推断中的优势。
1401 11
别再用均值填充了!MICE算法教你正确处理缺失数据
|
5月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
363 1
|
6月前
|
机器学习/深度学习 Dragonfly 人工智能
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
162 1
|
5月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
467 0
|
6月前
|
算法 机器人 定位技术
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
217 0
|
7月前
|
传感器 机器学习/深度学习 分布式计算
卡尔曼滤波的多传感器数据融合算法
卡尔曼滤波的多传感器数据融合算法
1186 0
|
5月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
385 2
|
5月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
160 3
|
4月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
229 0
|
5月前
|
机器学习/深度学习 人工智能 算法
当AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
TimeGuessr融合AI与历史文化,首创时间与空间双维度评分体系,结合分段惩罚、Haversine距离计算与加权算法,辅以连击、速度与完美奖励机制,实现公平且富挑战性的游戏体验。