我正在尝试在基于Pacman的游戏中使用强化学习。我想使用Q-learning技术来生成我的代理的动作。我正计划使用openai-gym和keras库来训练我的模型,但是我希望有一种方法可以保存我的模型并在没有开放式健身房和keras库的情况下使用它(在它经过训练之后)。根据我的理解,Q-learning可用于生成状态 - 动作对,我想知道是否有可能为Pacman等可解决的系统保存这些的所有可能组合。这看起来有点不切实际,所以如果你有任何其他想法,我很乐意听到它们。
从你的问题来看,你似乎有一个世界模型(基于吃豆子的游戏),并且想要训练一个Q学习算法来解决环境问题。完成后,您要保存模型。
要保存模型,它完全取决于您使用的RL算法。当然,所有这些都可以保存,或者在现实世界中无用。
表格RL:表格Q学习基本上将代理的策略(Q值)存储到形状矩阵(S x A)中,其中s是所有状态,a是所有可能的动作。解决环境后,只需将此矩阵另存为csv文件即可。我在强化学习下的GitHub上快速实现了这一点。
线性RL:如果状态空间和/或动作空间太大,则可以使用函数逼近。在这种情况下,您构建一个近似Q矩阵的线性模型。要保存此模型,您只需将此线性模型的权重保存为csv,甚至是文本文件。
深RL:与线性RL相同。你只需要保存神经网络的权重。如果您自己编码网络,将它保存为csv文件应该是微不足道的。如果您使用tensorflow,则可以通过以下方式创建检查点:
saver = tf.train.Saver() # Builds the saver
在你的训练结束的地方,放:
saver.save(sess, model_path)
我对GitHub上的深层确定性策略渐变也实现了这一点。