近端策略优化实现不收敛:离散环境

Proximal Policy Optimization Implementation Not Converging: Discrete Environment

提问人:Bernardo Olisan 提问时间:11/10/2023 更新时间:11/10/2023 访问量:23

问:

我从头开始为离散环境实施了近端策略优化 (PPO)。该算法涉及初始化策略网络、状态值函数和动作值函数(作为神经网络函数近似器)。该过程包括策略推出,其中策略网络和值函数使用梯度下降进行更新,并在每个时间步长计算优势函数。

以下是我的实现的简要概述:

初始化:策略网络、状态值和操作值函数的随机参数。 策略推出:在每个时间步长 (t) 前馈策略网络和值函数,使用梯度下降计算值函数,并计算优势函数。 代理目标:计算每个时间步长 (t) 的剪裁代理目标。 训练:使用随机梯度下降 (SGD) 根据整个剧集中剪裁的代理值的总和更新策略网络。损失是预期替代目标的负数。 尽管遵循了这些步骤,但我的实施并没有学习,我正在努力确定问题所在。我认为神经网络配置可能不正确,但考虑到离散环境的简单性,我不确定这是否是根本原因。

以下是每个神经网络的配置:

策略网络(操作输出):

输入维度:4 隐藏维度:32 输出尺寸:2 学习率: 0.0001 值函数 (Q(s,a), V(s)):

输入维度:4 隐藏维度:32 输出尺寸:1 学习率: 0.0001

集数: 500 集数步骤:100 削波参数 (Epsilon):0.2

这是完整的代码,大约有200行,很容易理解:https://github.com/BernardoOlisan/PPO-Clip/blob/main/ppo.py

我尝试将剧集数量增加到 500 集,但不幸的是,我没有观察到学习过程有任何明显的改进或近端策略优化实现的收敛。尽管进行了长时间的训练,但该算法似乎仍然很挣扎,我不确定这个问题的根本原因。

我正在寻求有关潜在陷阱、错误配置或其他可能阻碍学习过程的因素的指导。任何见解或建议将不胜感激。谢谢!

Python PyTorch 强化学习 收敛

评论


答: 暂无答案