如何提高强化学习算法模型的泛化能力?

article/2025/10/13 19:45:20

深度强化学习实验室

官网:http://www.neurondance.com/

来源:https://zhuanlan.zhihu.com/p/328287119

作者:网易伏羲实验室

编辑:DeepRL

在深度学习中,模型很容易过拟合到参与训练的数据集。因此,深度学习训练模型的时候通常会将数据集分成训练集和测试集,保证训练的模型在测试集上仍然有很好的性能,即模型的泛化能力。在深度强化学习的应用中,模型的泛化能力也同样重要。本文将介绍最近深度强化学习领域中提高模型泛化能力的一些方法,如域随机化、正则等。

一、泛化
什么是泛化(generalization)呢?
这里引用维基百科上关于泛化的定义:
A generalization is a form of abstraction whereby common properties of specific instances are formulated as general concepts or claims. Generalizations posit the existence of a domain or set of elements, as well as one or more common characteristics shared by those elements (thus creating a conceptual model). As such, they are the essential basis of all valid deductive inferences (particularly in logic, mathematics and science), where the process of verification is necessary to determine whether a generalization holds true for any given situation.
在机器学习任务中,泛化能力被认为是在训练集上训练后,在“未见过”的数据集上的性能。当然,这里常常有一个假设,训练的数据集和测试的数据集是同分布的,即来自于同一个领域(domain)的同一个任务(task)。

二、领域和任务
这里引用万引迁移学习[1]中关于领域(domain)和任务(task)的定义:
领域D={X, P(X)}由两个部分组成:特征空间X和特征空间的边缘分布P(X)。如果两个领域不同,它们的特征空间或边缘概率分布不同。
A domain is a pair D={X, P(X)}, which consists of two components: a feature space X and a marginal probability distribution P(X). In general, if two domains are different, then they may have different feature spaces or different marginal probability distributions.

任务T={Y, P(Y|X)}组成:给定一个领域D={X, P(X)}的情况下,一个任务也包含两个部分:标签空间Y和一个目标预测函数f(.)。目标预测函数不能被直接观测,但可以通过训练样本学习得到。从概率论角度来看,目标预测函数f(.)可以表示为P(Y|X)。
A task is defined as a pair T={Y, P(Y|X)}. Given a specific domain, D={X, P(X)}, a task consists of two components: a label space Y and an objective predictive function f(.), which is not observed but can be learned from the training data. From a probabilistic viewpoint, f(x) can be written as p(y|x).

三、泛化和迁移

如下图所示,本文讨论的是来自同一个领域同一个任务的模型泛化能力,红色框中的部分。而那些领域不同或者任务不同的情况被认为是迁移学习的范畴,蓝色框中的部分。


对于强化学习来说,泛化能力指的是:对于同一个领域中的同一个任务,强化学习模型在训练环境训练,在测试环境验证的模型的性能。

四、强化学习的泛化

因为机器学习中的泛化能力一般是指同分布的不同数据集上的模型的性能。

这里,主要考虑两种情况来说明强化学习模型的泛化能力:在场景A(训练集)中训练,在场景B(测试集)中测试。
1. 场景A的状态集和场景B的状态集S不一样,状态转移矩阵P一样。比如对手风格A中训练,对手风格B中泛化测试。
2. 场景A的状态集和场景B的状态集S类似,状态转移矩阵P不一样。比如游戏版本A中训练,游戏版本B中泛化测试。

强化学习的数据是有模型与环境交互过程中产生的,所以普遍认为强化学习中的泛化能力弱,模型较容易过拟合到当前的训练环境。目前比较常见的提高强化学习模型泛化能力的方式主要有两种:Regularization和Randomization。

Regularization-CoinRun
这里,首先介绍一篇2019年发表在ICML上的论文,Quantifying generalization in reinforcement learning[2]。
首先,如图所示,这篇文章中开源了一个用来验证深度强化学习算法泛化性能的游戏环境——CoinRun。这个游戏环境拥有上百万不同的关卡,每个关卡都有相应的难度等级(从难度1-难度3),因此可以用来验证强化课程学习的算法性能。


文章中还进行了很多基准实验:

对模型架构的评估
通过调整模型的构架,对比不同容量大小的模型的泛化能力。文章中采取了3中不同的模型架构:
Nature-CNN: PPO+3 CNNs
IMPALA-CNN: IMPALA+3 residual blocks
IMPALA-Large: IMPALA+5 residual blocks
如图所示,可以看出,模型容量越大,算法的泛化能力越强。


对正则项的评估
通过调整模型正则项,对比不同的正则项对模型泛化能力的影响。文章中进行了5种不同的消融实验,baseline算法为IMPALA-CNN。从图中可以看出,正则项对模型的泛化能力都是有积极的作用的。

Regularization-Information Bottleneck
文章Dynamics Generalization via Information Bottleneck in Deep Reinforcement Learning[3]认为,深度强化学习模型可以分为两个部分,感知层和决策层。感知层的作用是将环境观测转换为状态表示,而决策层负责从状态表示中学习控制策略。但是感知层比较容易过拟合到当前的训练环境,文章提出了一种信息瓶颈(Information Bottleneck),尽可能地限制从环境观测传递到状态标识的信息,鼓励神经网络去学习一些高维地特征,算法可以有效的泛化到未见过的环境。如下是文章中的主要框架图。


这是文章中主要用到的KL散度公式,和相应的正则和梯度计算方式。


文章中声明信息瓶颈比基线算法和其他正则化技术(如L-2正则和Dropout)拥有更好的泛化能力。

Randomization-Domain Randomization
文章Domain randomization for transferring deep neural networks from simulation to the real world[4]提出了一种样本增强的新方式——域随机化。在一些难以直接采样的环境中,比如机器人的抓取任务,真实环境交互学习代价非常高。文章中提出利用域随机化的方式在仿真环境中进行大量实验可以很好的迁移到正式环境。

域随机化的方向有以下几个方面:

从实验结果的表格中可以看出:

  • 训练的时候加入干扰物是至关重要的。

  • 随机相机位置也能提供一点帮助,但是对最终性能的影响不大。

  • 在预处理中加入随机噪声没什么效果,但是少量的噪声可以帮助收敛。

仿真环境实验的时候可以采用域随机化的方式,缓解神经网络过拟合到单一环境的问题。可以让特征提取网络不关注低维的环境动态参数,更关注提取环境中的高维特征。

Randomization-Active Domain Randomization
文章Active domain randomization[5]在域随机化的基础上提出了,主动的域随机化技术。提出用强化学习去学环境参数的调整方向,用判别器预测奖励(reward),使域随机化的更有效率。


Randomization-Network Randomization
文章Network randomization: A simple technique for generalization in deep reinforcement learning[6]提出了一种十分有效的样本增强方式,可以一次采样,多次训练。通过提高模型泛化能力的同时,又提高了样本的利用率。


这是文章中网络随机化主要用到的公式:

文章中进行ile一组有趣的对比试验,模型在黑猫白狗的训练集中训练,在白猫黑狗的测试集中测试。模型很容易过拟合到训练样本,提取了一些无关紧要的特征:颜色。通过网络随机化这种样本增强方式,可以增强网络提取特征的能力。同时,相比于传统的图像样本增强方式:1)cutout (CO);2)grayout (GR);3)inversion (IV);4)color jitter (CJ),文章中的网络随机化的样本增强方式更有效率。

如下图所示是文章进行大量消融实验的结果,可以看出在不同的算法中,网络随机化保证了最优的模型泛化能力。


参考文献:
[1] Pan S J, Yang Q. A survey on transfer learning[J]. IEEE Transactions on knowledge and data engineering, 2009, 22(10): 1345-1359.
[2]Cobbe K, Klimov O, Hesse C, et al. Quantifying generalization in reinforcement learning[C]//International Conference on Machine Learning. PMLR, 2019: 1282-1289.
[3]Lu X, Lee K, Abbeel P, et al. Dynamics Generalization via Information Bottleneck in Deep Reinforcement Learning[J]. arXiv preprint arXiv:2008.00614, 2020.
[4]Tobin J, Fong R, Ray A, et al. Domain randomization for transferring deep neural networks from simulation to the real world[C]//2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2017: 23-30.
[5]Mehta B, Diaz M, Golemo F, et al. Active domain randomization[C]//Conference on Robot Learning. PMLR, 2020: 1162-1176.
[6]Lee K, Lee K, Shin J, et al. Network randomization: A simple technique for generalization in deep reinforcement learning[J]. arXiv, 2019: arXiv: 1910.05396.

原文连接:https://zhuanlan.zhihu.com/p/328287119

实验室官网:http://www.neurondance.com/

实验室社区:http://deeprl.neurondance.com/

总结1:周志华 || AI领域如何做研究-写高水平论文

总结2:全网首发最全深度强化学习资料(永更)

总结3:  《强化学习导论》代码/习题答案大全

总结4:30+个必知的《人工智能》会议清单

总结52019年-57篇深度强化学习文章汇总

总结6:   万字总结 || 强化学习之路

总结7:万字总结 || 多智能体强化学习(MARL)大总结

总结8:深度强化学习理论、模型及编码调参技巧

第94篇:多智能体强化学习《星际争霸II》研究

第93篇:MuZero在Atari基准上取得了新SOTA效果

第92篇:谷歌AI掌门人Jeff Dean获冯诺依曼奖

第91篇:详解用TD3算法通关BipedalWalker环境

第90篇:Top-K Off-Policy  RL论文复现

第89篇:腾讯开源分布式多智能TLeague框架

第88篇:分层强化学习(HRL)全面总结

第87篇:165篇CoRL2020 accept论文汇总

第86篇:287篇ICLR2021深度强化学习论文汇总

第85篇:279页总结"基于模型的强化学习方法"

第84篇:阿里强化学习领域研究助理/实习生招聘

第83篇:180篇NIPS2020顶会强化学习论文

第82篇:强化学习需要批归一化(Batch Norm)吗?

第81篇:《综述》多智能体强化学习算法理论研究

第80篇:强化学习《奖励函数设计》详细解读

第79篇: 诺亚方舟开源高性能强化学习库“刑天”

第78篇:强化学习如何tradeoff"探索"和"利用"?

第77篇:深度强化学习工程师/研究员面试指南

第76篇:DAI2020 自动驾驶挑战赛(强化学习)

第75篇:Distributional Soft Actor-Critic算法

第74篇:【中文公益公开课】RLChina2020

第73篇:Tensorflow2.0实现29种深度强化学习算法

第72篇:【万字长文】解决强化学习"稀疏奖励"

第71篇:【公开课】高级强化学习专题

第70篇:DeepMind发布"离线强化学习基准“

第69篇:深度强化学习【Seaborn】绘图方法

第68篇:【DeepMind】多智能体学习231页PPT

第67篇:126篇ICML2020会议"强化学习"论文汇总

第66篇:分布式强化学习框架Acme,并行性加强

第65篇:DQN系列(3): 优先级经验回放(PER)

第64篇:UC Berkeley开源RAD来改进强化学习算法

第63篇:华为诺亚方舟招聘 || 强化学习研究实习生

第62篇:ICLR2020- 106篇深度强化学习顶会论文

第61篇:David Sliver 亲自讲解AlphaGo、Zero

第60篇:滴滴主办强化学习挑战赛:KDD Cup-2020

第59篇:Agent57在所有经典Atari 游戏中吊打人类

第58篇:清华开源「天授」强化学习平台

第57篇:Google发布"强化学习"框架"SEED RL"

第56篇:RL教父Sutton实现强人工智能算法的难易

第55篇:内推 ||  阿里2020年强化学习实习生招聘

第54篇:顶会 || 65篇"IJCAI"深度强化学习论文

第53篇:TRPO/PPO提出者John Schulman谈科研

第52篇:《强化学习》可复现性和稳健性,如何解决?

第51篇:强化学习和最优控制的《十个关键点》

第50篇:微软全球深度强化学习开源项目开放申请

第49篇:DeepMind发布强化学习库 RLax

第48篇:AlphaStar过程详解笔记

第47篇:Exploration-Exploitation难题解决方法

第46篇:DQN系列(2): Double DQN 算法

第45篇:DQN系列(1): Double Q-learning

第44篇:科研界最全工具汇总

第43篇:起死回生|| 如何rebuttal顶会学术论文?

第42篇:深度强化学习入门到精通资料综述

第41篇:顶会征稿 ||  ICAPS2020: DeepRL

第40篇:实习生招聘 || 华为诺亚方舟实验室

第39篇:滴滴实习生|| 深度强化学习方向

第38篇:AAAI-2020 || 52篇深度强化学习论文

第37篇:Call For Papers# IJCNN2020-DeepRL

第36篇:复现"深度强化学习"论文的经验之谈

第35篇:α-Rank算法之DeepMind及Huawei改进

第34篇:从Paper到Coding, DRL挑战34类游戏

第33篇:DeepMind-102页深度强化学习PPT

第32篇:腾讯AI Lab强化学习招聘(正式/实习)

第31篇:强化学习,路在何方?

第30篇:强化学习的三种范例

第29篇:框架ES-MAML:进化策略的元学习方法

第28篇:138页“策略优化”PPT--Pieter Abbeel

第27篇:迁移学习在强化学习中的应用及最新进展

第26篇:深入理解Hindsight Experience Replay

第25篇:10项【深度强化学习】赛事汇总

第24篇:DRL实验中到底需要多少个随机种子?

第23篇:142页"ICML会议"强化学习笔记

第22篇:通过深度强化学习实现通用量子控制

第21篇:《深度强化学习》面试题汇总

第20篇:《深度强化学习》招聘汇总(13家企业)

第19篇:解决反馈稀疏问题之HER原理与代码实现

第18篇:"DeepRacer" —顶级深度强化学习挑战赛

第17篇:AI Paper | 几个实用工具推荐

第16篇:AI领域:如何做优秀研究并写高水平论文?

第15篇:DeepMind开源三大新框架!

第14篇:61篇NIPS2019DeepRL论文及部分解读

第13篇:OpenSpiel(28种DRL环境+24种DRL算法)

第12篇:模块化和快速原型设计Huskarl DRL框架

第11篇:DRL在Unity自行车环境中配置与实践

第10篇:解读72篇DeepMind深度强化学习论文

第9篇:《AutoML》:一份自动化调参的指导

第8篇:ReinforceJS库(动态展示DP、TD、DQN)

第7篇:10年NIPS顶会DRL论文(100多篇)汇总

第6篇:ICML2019-深度强化学习文章汇总

第5篇:深度强化学习在阿里巴巴的技术演进

第4篇:深度强化学习十大原则

第3篇:“超参数”自动化设置方法---DeepHyper

第2篇:深度强化学习的加速方法

第1篇:深入浅出解读"多巴胺(Dopamine)论文"、环境配置和实例分析


http://chatgpt.dhexx.cn/article/OoTKyGar.shtml

相关文章

BatchFormer:有效提升数据稀缺场景的模型泛化能力|CVPR2022

文 | 侯志知乎(已授权)源 | 极市平台 摘要 当前的深度神经网络尽管已经取得了巨大的成功,但仍然面临着来自于数据稀缺的各种挑战,比如数据不平衡,零样本分布,域适应等等。 当前已经有各种方法通过样本之间的…

图解深度学习-提高泛化能力的方法

数据集 在深度学习的训练过程中,神经网络的类型和结构固然重要,但训练样本才是重中之重。 数据增强 当训练样本数量较少时,可以通过数据增强来增加样本的多样性。 数据增强就是通过对样本图像进行平移、旋转、镜像翻转等方式进行变换。除…

JAVASE提高 -- Java泛型

1. 泛型类 &#xff08;1&#xff09;使用语法 类名<具体的数据类型> 对象名 new 类名<具体的数据类型>(); &#xff08;2&#xff09;Java1.7以后&#xff0c;后面的<>中的具体的数据类型可以省略不写 类名<具体的数据类型> 对象名 new 类名<&…

【NLP】如何提高模型泛化能力?以中文NER为例

我们知道模型的泛化能力是很重要的&#xff0c;如果一个模型具有很好的泛化性能&#xff0c;那么它往往能够在没有见过的数据上表现良好。以中文命名实体识别为例&#xff0c;在用于评估模型泛化性能的数据集中&#xff0c;我们可能忽略了数据偏差对模型泛化的影响。 论文标题&…

C#提升(一、泛型)

一、什么是泛型 泛型&#xff0c;即“参数化类型” 我们来看以下代码&#xff0c;目的很明确&#xff0c;就是显示参数类型&#xff0c;这种类似的代码或者说只有参数类型不同&#xff0c;但是功能相同时&#xff0c;我们如何让代码写的更优雅&#xff1f; 在泛型没有出现的…

深度学习提高泛化能力的技术

LeetCode题目记录 1.泛化能力&#xff08;generalization&#xff09; 2.正则化&#xff08;regularization&#xff09;2.1 正则化方法 1.泛化能力&#xff08;generalization&#xff09; 对于模型&#xff0c;我们不仅要求它对训练数据集有很好的拟合&#xff08;训练误差&a…

lecture9-提高模型泛化能力的方法

HInton第9课&#xff0c;这节课没有放论文进去。。。。。如有不对之处还望指正。话说hinton的课果然信息量够大。推荐认真看PRML《Pattern Recognition and Machine Learning》。 摘自PRML中22页。 正文&#xff1a; 一、提高泛化方法的概述 在这部分中&#xff0c;将会介绍…

思考深度学习的泛化能力

神经网络通过记忆学习 传统观点论文观点论文实验 神经网络 不 通过记忆学习参考资料 深度神经网络往往带有大量的参数&#xff0c;但依然表现出很强的泛化能力&#xff08;指训练好的模型在未见过的数据上的表现&#xff09;。 深度神经网络为何会拥有如此强的泛化能力&…

SQL提升(一)

Sql不常见关键字提升 一、前言 Sql是最重要的关系数据库操作语言&#xff0c;现在基本上任何与数据库相关的操作都离不开sql。所以说sql功能是很强大的。 我们常用的sql关键字不外乎 group by;in; where; from; update……等&#xff0c;这些关键字有时组成sql的基础。 但是…

越大的数据集训练,网络泛化能力越强

虽然这个直观很好理解&#xff0c;但我想找这个论点的论文支持&#xff0c;如果再能找张图就好了&#xff0c;下面是过程 首先是On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima这篇经典文章&#xff0c;里面的这张flat minima和sharp minim…

浅谈深度学习泛化能力

谷歌最近出品的82页论文《ON THE GENERALIZATION MYSTERY IN DEEP LEARNING》&#xff0c;在此我简单归纳下论文的思想&#xff0c;有兴趣的看看原论文。论文链接&#xff1a;github.com/aialgorithm/Blog 一、DNN泛化能力的问题 论文主要探讨的是&#xff0c; 为什么过参数的…

深入理解泛化

文章目录 1.引言2.泛化的定义3.数据集分类4.泛化能力分类5.从训练过程来理解泛化参考资料 1.引言 什么是泛化呢&#xff1f; 先举个栗子&#xff1a; 小明和小李都上了高三。小明头脑机灵&#xff0c;一边刷着五年高考三年模拟一边总结做题规律&#xff0c;而小李一门心思刷题…

机器学习-泛化能力

目录 1.什么是泛化能力 2.什么是好的机器学习模型的提出 3.泛化误差 4.模型泛化能力的评价标准 4.提高泛化能力 5.举例 6.相关引用文献 1.什么是泛化能力 百度百科解释&#xff1a;机器学习算法对新鲜样本的适应能力。 更加具体的解释&#xff1a;学习到的模型对未知…

机器学习中的泛化能力

模型的泛化能力&#xff1a;指机器学习算法对新鲜样本的适应能力。 学习的目的&#xff1a;学到隐含在数据背后的规律&#xff0c;对具有同一规律的学习集以外的数据&#xff0c;经过训练的网络也能给出合适的输出&#xff0c;该能力称为泛化能力。 由此可见&#xff0c;经训练…

神经网络泛化的能力因素,神经网络泛化的能力差

1、BP神经网络当中 所提到的泛化能力是指什么&#xff1f; 就是外推的能力。 很多时候训练的网络对于训练的数据能很好的拟合&#xff0c;但是对于不在训练集内的数据拟合就很差强人意了。这种情况就叫泛化能力----差。也就是说可能你的网络存在过拟合的现象。 谷歌人工智能写…

【深度学习】常见的提高模型泛化能力的方法

前言 模型的泛化能力是其是否能良好地应用的标准&#xff0c;因此如何通过有限的数据训练泛化能力更好的模型也是深度学习研究的重要问题。仅在数据集上高度拟合而无法对之外的数据进行正确的预测显然是不行的。本文将不断总结相关的一些方法。 一、模型角度 Dropout 首先随…

TCP/IP报文格式

1、IP报文格式    IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务&#xff0c;也即依赖其他层的协议进行差错控制。在局域网环境&#xff0c;IP协议往往被封装在以太网帧&#xff08;见本章1.3节&#xff09;中传送。而所有的TCP、UDP、ICMP、IGMP数据…

TCP首部报文段格式

最近《计算机网络》这本书看到了传输层的 TCP 协议&#xff0c;因为TCP 的全部功能都体现在它的首部中&#xff0c;因此觉得有必要将这些知识梳理一下。 首先TCP 是面向字节流的。这个流指的是流入到进程或从进程流出的字节序列。面向字节流的含义是&#xff1a;应用程序与 TC…

ARP报文格式详解

ARP 协议包&#xff08;ARP 报文&#xff09;主要分为 ARP 请求包和 ARP 响应包&#xff0c;本节将介绍 ARP 协议包的格式。 ARP 报文格式 ARP 协议是通过报文进行工作的&#xff0c;ARP 报文格式如图所示。 ARP 报文总长度为 28 字节&#xff0c;MAC 地址长度为 6 字节&…

CAN的报文格式

CAN的报文格式 在总线中传送的报文&#xff0c;每帧由7部分组成。CAN协议支持两种报文格式&#xff0c;其唯一的不同是标识符&#xff08;ID&#xff09;长度不同&#xff0c;标准格式为11位&#xff0c;扩展格式为29位。 在标准格式中&#xff0c;报文的起始位称为帧起始&am…