我阅读了DDPG 论文,其中作者指出这些动作只是在稍后才被馈送到他们的 Q 网络:
直到 Q 的第二个隐藏层才包括动作。(第 7 节,实验细节)
那么这是否意味着,第一个隐藏层的输入只是状态,第二个隐藏层的输入是第一个隐藏层的输出与动作相连接?
为什么要这么做?让第一层专注于学习独立于所选动作的状态值?那会有什么帮助?
这只是一个小小的调整还是更显着的改进?
我阅读了DDPG 论文,其中作者指出这些动作只是在稍后才被馈送到他们的 Q 网络:
直到 Q 的第二个隐藏层才包括动作。(第 7 节,实验细节)
那么这是否意味着,第一个隐藏层的输入只是状态,第二个隐藏层的输入是第一个隐藏层的输出与动作相连接?
为什么要这么做?让第一层专注于学习独立于所选动作的状态值?那会有什么帮助?
这只是一个小小的调整还是更显着的改进?
那么这是否意味着,第一个隐藏层的输入只是状态,第二个隐藏层的输入是第一个隐藏层的输出与动作相连接?
是的。
为什么要这么做?让第一层专注于学习独立于所选动作的状态值?那会有什么帮助?
神经网络隐藏层逐层学习逐渐接近与目标线性关系的表示。
因此,第一层不会学习状态值本身,而是学习与输出处的动作值更好相关的状态表示。
神经网络架构通常是通过实验建立的,所以我希望他们在这里尝试了这个想法并且性能还可以。如果他们没有在论文中给出替代架构,那么确切的原因就不清楚了。
我可以尝试一些猜测:
将动作与输入层中的状态连接起来会导致神经网络有更多参数来达到相同的精度,但运行速度会稍微慢一些。这是因为将输入层与第一个隐藏层链接起来需要更多的权重。
分离状态和动作输入层是一种正则化形式,因为第一层必须产生对所有可能动作有用的特征。
您不希望神经网络构建反向映射,您希望它独立评估动作值以完成其作为批评者的工作。通过在不同的后期呈现状态和动作,这减少了神经网络由于“识别策略”来预测值而找到捷径的机会。这是因为状态和动作配对可能会重复(因此要被识别),但第一层的激活会随着时间而变化(所以即使有重复的状态/动作对,这也是一种可以学习的新表示)。
这只是一个小小的调整还是更显着的改进?
我不知道,建议查看同一作者以前的工作,以防他们更详细地描述该方法。