发布于 2018-07-20 20:52:08
这两种架构都能工作。对于更简单的问题,使用两个单独的网络,对于一个更复杂的问题,例如一个涉及机器视觉的问题,使用组合网络可能更常见。
一般来说,您需要这两个函数-策略和值-是分开的。在从状态到输出的总体映射方面,没有理由期望它们有太多的共同点。然而,如果状态需要大量的非线性解释才能得到有意义的特征,如图像、音频或视频输入,那么如果这两个函数共享较低级别的特征表示,则可能是一个总体好处。这不仅会鼓励人们更好地学习低水平的特性(因为相对于单独的情况,每一步数据的有效训练是数据的两倍),而且计算也应该更快。
出于类似的原因,如果代理从自然图像中工作,您可以使用一些在ImageNet上训练的模型的上层的预处理功能,也可以使用这种模型的第一层初始化的网络。这可能也适用于其他RL代理,比如DQN --如果这是可行的,那么当您有多个功能要处理时,显然共享网络的那一部分也可以工作。
如果您的状态数据比较简单,例如几个位置和速度,或者策略和值都与状态有简单的关系,那么联合网络可能就不那么有用了。
当策略函数和值函数在共享网络中时,它们可能仍然有多个专用层,因为这两个函数之间没有任何简单的线性关系(一个NN可以自己学习到这一点,但是这个假设足够好,可以通过将网络分成两个分支来硬编码,每个分支在输出前可能有几个隐藏层)。
https://datascience.stackexchange.com/questions/35814
复制相似问题