首页 > 解决方案 > 用 C++ 实现的神经网络的可疑预测

问题描述

我在 C++ 中创建了一个神经网络,用于近似加法函数y = x + y。我使用了一个带有 5 个神经元的隐藏层。x 和 y 的值在 0 和 10 的范围内。所以在训练之前,我通过最大值 (2x10) 对训练数据(输入和输出数据)进行了归一化。

在我的模型做出预测后(位于 0 和 1 之间),我通过将预测乘以 2x20 来反规范化预测。但是,我的结果仍然显示出一个转变。

即,如果结果 (y) 应该被预测为 8,我的网络给出 -12。同样,我得到的不是 1,而是 -19。为了纠正这种变化,我在我的预测值上加了 20。这就是我得到的: 忽略标题,*f(x)= sin(x)*

忽略标题,f(x)= sin(x),其中,蓝色显示实际结果,红色显示预测值(我手动添加20后)

我的问题是:我的网络预测良好吗?“在结果中手动添加 20”是否正常?

(PS:链接到参考代码,并 链接到我有问题的代码)

标签: c++machine-learningneural-networkbackpropagationfeed-forward

解决方案


推荐阅读