强化学习DQN环境结构
Reinforcement learning DQN environment structure
我想知道如何最好地将我的 DQN 代理对其环境所做的更改反馈给自身。
我有一个电池模型,代理可以观察到 17 个步骤和 5 个特征的时间序列预测。然后它会决定是充电还是放电。
我想在它的观察 space 中包括它当前的充电状态(空、半满、满等)(即我正在喂它的 (17,5) 数据帧中的某个地方)。
我有几个选项,我可以将一整列、整行设置为充电状态值,或者我可以展平整个数据框并将一个值设置为充电状态值。
这些有什么不明智的吗?将整个列设置为单个值对我来说似乎有点简陋,但它真的会影响性能吗?当我计划使用 conv 或 lstm 层(尽管当前模型只是密集层)时,我对将整个事物展平持谨慎态度。
您不希望添加在状态表示中重复的不必要特征,因为当您希望将模型扩展到更大的输入大小时(如果这在您的计划中),它可能会妨碍您的 RL 代理收敛。 .
此外,您希望在状态表示中提供多少信息的决定主要是实验性的。最好的开始方式是只给出一个值作为电池状态。但是如果模型不收敛,那么也许你可以尝试你在问题中提到的其他选项。
我想知道如何最好地将我的 DQN 代理对其环境所做的更改反馈给自身。
我有一个电池模型,代理可以观察到 17 个步骤和 5 个特征的时间序列预测。然后它会决定是充电还是放电。
我想在它的观察 space 中包括它当前的充电状态(空、半满、满等)(即我正在喂它的 (17,5) 数据帧中的某个地方)。
我有几个选项,我可以将一整列、整行设置为充电状态值,或者我可以展平整个数据框并将一个值设置为充电状态值。
这些有什么不明智的吗?将整个列设置为单个值对我来说似乎有点简陋,但它真的会影响性能吗?当我计划使用 conv 或 lstm 层(尽管当前模型只是密集层)时,我对将整个事物展平持谨慎态度。
您不希望添加在状态表示中重复的不必要特征,因为当您希望将模型扩展到更大的输入大小时(如果这在您的计划中),它可能会妨碍您的 RL 代理收敛。 .
此外,您希望在状态表示中提供多少信息的决定主要是实验性的。最好的开始方式是只给出一个值作为电池状态。但是如果模型不收敛,那么也许你可以尝试你在问题中提到的其他选项。