我一直在研究 Sutton + Barto RL 文本,实现了一些算法 + 在 OpenAI 健身房中运行它们。我似乎经常遇到的一个现象是,在训练期间的某些时候,代理似乎在学习合理的状态值/状态动作函数方面取得了良好进展,“灾难性地忘记”他们收集的见解,随后永远不会恢复。
为了使这一点更具体,这是我在MountainCar环境中运行具有线性函数逼近和二元特征的半梯度预期 SARSA 代理实现的(平滑的)奖励历史。
问题详情
- 该问题有一个有界的连续状态空间和一个离散的 3 动作动作空间。
- 学习者获得奖励 在每个时间步。当汽车一路上山或达到 200 个时间步但没有成功时,这一集就结束了。
- 在学习之前,我使用 8x8 网格和 8 个重叠的平铺对状态空间进行平铺编码,使用 Sutton 自己的
tiles.py脚本生成。
学习者详情
- 学习器是半梯度 SARSA 算法的实现,对 Q 值具有线性函数逼近。
- 代理从所有 Q 权重初始化为 0 开始。
- 代理的学习率设置为 , 在哪里 在这种情况下是
- 在学习过程中,代理使用 - 软政策,其中 设置为 0.10
- 代理的时间折扣因子设置为 (尽管我意识到考虑到任务的情节性质,它可能是 1)
我的问题
我想排除的一种可能性是我对学习代理的实现不正确。为此,我很想知道其他人是否经历过这种“遗忘”行为(即使是在这样的简单问题上),如果是这样,如何减少这种行为。
