创建一个额外的神经网络来学习主神经网络的输出误差(预测目标)有意义吗?

2024-09-28 22:31:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读这个Paper,其中使用的解决方案把我弄糊涂了。相反,他们使用一个普通的MLP来预测位置,他们使用他们称之为SDANN(源差分ANN)的方法对此进行优化,这基本上意味着他们将MLP拆分为两个MLP,一个MLP用于学习我们通常会做的输入-输出关系,他们用它来训练模型,通过计算误差和使用反向传播来更新权重(这里没有异常),另一个MLP用于学习输入误差关系,即,第二个MLP的目标是第一个MLP在预测输出时产生的误差,然后在最后,整个模型的预测值是第一个MLP的预测值和第二个MLP的预测值之间的总和,这非常混乱

我将给出两个MLP的输出作为等式,以便更容易理解它们所做的工作:

  • 对于第一个MLP:误差计算如下:e_mlp1=目标(实际值y)-mlp1的预测位置值(y_hat)

  • 对于第二个MLP:误差计算如下:e_mlp2=e_mlp1(现在是实际值y)-mlp2的预测值(y_hat)

因此,基本上,他们让第二个MLP学习预测将从MLP1产生的误差值,然后整个NN的最终输出预测将是MLP1的预测位置和MLP2的预测值的总和。我不明白这怎么会有用!既然第二个网络正在学习预测第一个神经网络产生的误差值,为什么这是一个求和而不是减法呢

更令人困惑的是,对于一个完美的预测,我们会有一个0的误差值,所以为什么要费心创建一个额外的神经网络,它将接受相同的输入,并学习预测等于0的输出值。也许这里有人能为我澄清这些概念。我也没有看到任何使用额外的NN来学习输入/错误关系的用例。如果以前有人用过这个,给我一些建议会很有帮助


Tags: 模型目标关系hat神经网络nn解决方案paper