我目前正在开发一个深度强化学习网络,但是我对NN输出中的q值的数量有一点疑问。我将总共有150个q值,这对我个人来说似乎太过分了。我读过几篇论文和书籍,这可能是一个问题。我知道这将取决于我将建立的NN类型,但你们认为q值的数量太高了吗?我应该减少吗?
答案 0 :(得分:1)
没有一般原则是什么"太多"。一切都完全取决于学习中可以获得的问题和吞吐量。特别是,只要Q(a,s)的内部参数化是有效的,动作的数量就不重要。举一些例子,假设神经网络实际上是NN(a,s)= Q(a,s)的形式,换句话说,它接受动作为输入,与状态一起,并输出Q值。如果这样的架构可以在所考虑的问题中进行训练,那么它可能能够扩展到大型行动空间;另一方面,如果神经网络基本上每个动作具有独立的输出,那么形式为NN(s)[a] = Q(a,s),则许多动作可能导致模型的相对稀疏的学习信号,从而导致缓慢收敛。
由于你问的是减少动作空间,听起来真正的问题有复杂的控制(可能它是一个连续的控制域?)而你正在寻找一些离散化以使其更容易学习。如果是这种情况,您将不得不遵循典型的试验和错误方法 - 尝试使用简单的动作空间,观察动态,如果结果不令人满意 - 增加问题的复杂性。这允许进行迭代改进,而不是朝着相反的方向 - 从过于复杂的设置开始以获得任何结果,而不必在不知道什么是合理的值的情况下减少它。