强化学习调参经验

1.强化学习什么都学不到?

遇到这个问题,首先要确定是否是真的什么都学不到,还是训练不够,看似少量训练什么都学不到。因此进行强化学习过程中,我们最好是使用多环境,多线程同时训练。因为强化学习仿真环境多为cpu运行,因此我们的仿真环境可以是多核环境。

运行的环境数量为 cpu数量。多环境运行,效率拉满,以我本机为例。开了24个进程同时进行数据采集。这么一个方式大大提高了运行效率。

很多小白运行强化学习过程中,可能看到学了几天发现算法不收敛,以为是不work,但可能是因为训练不够,算力不够导致。所以建议强化学习尽量把性能拉满试验。

2.强化学习batch_size和n_steps的关系?

n_steps表示采集的经验数量,如果环境是24,同时采集,那么储存的经验相当于单环境的24倍,就如同鸣人的影分身一样,经验谁着分身数增多,而增大采集。经验池大小:512*24,是batch_size:2048的6倍作用,batch_size增大有利于学习稳定性。

以PPO算法为例:

PPO_PARAMS = {

"n_steps": 512,

"ent_coef": 0.05,

"learning_rate": 0.00025,

"n_epochs":8,#8, # 每个更新周期遍历 10 次

"batch_size": 2048,

"gamma" : 0.95,

"gae_lambda" : 0.95,#0.7,#0.9,

"clip_range" : 0.2

}

3.在面对序列数据的时候,到底是mlp更容易过拟合还是lstm更容易过拟合?

在提取序列数据方面,mlp方面更容易过拟合,因为mlp方面它比较难找出序列先后之间的关系,那么mlp在找不到相关关系,但又想要提高强化学习奖励,往往采用的措施就是把他们通通都记住。所以mlp在处理序列方面比lstm容易过拟合。这也是导致强化学习为什么泛化能力差的主要原因。

4.强化学习泛化能力差?

训练集表现很好,验证集表现很差,这是典型的过拟合。过拟合解决方案1.正则化,2.dropout。但是这两个方法往往效果都不佳。

过拟合解决能力:正则化效果>dropout

强化学习一般不使用dropout。因为加入dropout后效果一般难以收敛,因为不稳定。即使稳定了效果也很一般。

正则化视情况而定,如果效果不好,则不要继续使用。

正则化滥用有可能导致欠拟合。我们可以通过监测价值函数的梯度去查看是否是产生了欠拟合。如果价值函数输出都是同一个值且方差为0,说明欠拟合。以下是我打印的价值网络梯度,这是比较好的梯度情况。我没有使用正则化和dropout。所以你会发现有很多分散的小山丘,说明网络有很多神经元都有相应的梯度更新。

相关推荐
zhanghongbin016 分钟前
AI 采集器:Claude Code、OpenAI、LiteLLM 监控
java·前端·人工智能
AI应用实战 | RE9 分钟前
012、检索器(Retrievers)核心:从向量库中智能查找信息
人工智能·算法·机器学习·langchain
IT_陈寒11 分钟前
Python的列表推导式里藏了个坑,差点让我加班到凌晨
前端·人工智能·后端
Thomas.Sir14 分钟前
AI 医疗之罕见病/疑难病辅助诊断系统从算法到实现【表型驱动与知识图谱推理】
人工智能·算法·ai·知识图谱
liliangcsdn25 分钟前
MCP协议的深度分析与应用示例
人工智能·机器学习·全文检索
VBsemi-专注于MOSFET研发定制1 小时前
面向AI水泥厂储能系统的功率器件选型分析——以高可靠、高效率的能源转换与管理系统为例
人工智能·能源
海兰1 小时前
【第2篇】LangChain的初步实践
人工智能·langchain
漫游的渔夫1 小时前
别再直接 `json.loads` 了!AI 返回的 JSON 坑位指南
前端·人工智能
Warren2Lynch1 小时前
AI 驱动的 UML 图表支持全景指南
人工智能·架构·uml
小鱼~~1 小时前
什么是父进程
人工智能