这些天,我看到很多论文使用了中间监督。
单一网络
当使用单个神经网络时,多个神经元输出预测,可能是通过以不同方式处理数据。然后,损失函数对每个预测计算的各个损失求和。
例如,考虑下面FlowNet架构的一部分:
在这个网络中,所有Convolution#层 ( Convolution1, Convolution2, ...) 在网络的不同阶段输出预测。然后,通过对所有这些预测分别应用均方误差并将它们全部相加来计算损失函数。
多个网络
当使用多个网络时,例如Stacked Hourglass Networks:
每个单独的网络输出一个预测,并且通过计算每个网络预测的均方误差并将它们全部相加来计算整体损失函数。
我的问题是:这样做背后的直觉是什么?我认为这将迫使第一个网络学会很好地预测任务,而其余的网络只是执行身份转换。为什么在实践中没有观察到这一点?
另外,我只在 CNN 中看到过这种应用,但我可能是错的。


