Netlab - 如何计算错误?

时间:2016-11-19 20:36:28

标签: matlab validation neural-network gradient-descent mean-square-error

我试图在Matlab上使用Netlab优化和验证神经网络

我想找到每次迭代的误差值,所以我可以在一个图上看到收敛。这可以通过存储命令窗口中显示的错误来完成,该错误通过使用 errlog 选项(1)设置为 1 来完成< strong> netopt 输出。

然而,这些错误与 mlperr 不同,后者为最后一次迭代提供了 0.5 *(平方和误差)的错误值。如果我不知道如何计算它们,我就无法真正有效地使用它们。

有人知道命令窗口中显示的错误代表什么(我使用缩放共轭渐变作为我的优化算法)?

是否有一种方法可以为网络的每次迭代存储 mlperr 运行

非常感谢任何帮助,非常感谢!

NB: 我尝试过类似的事情: ftp://ftp.dcs.shef.ac.uk/home/spc/com336/neural-lab-wk6.html

然而,由于某些原因,它使用选项(14)中指定的迭代次数而不是k来运行网络给出不同的结果。

1 个答案:

答案 0 :(得分:0)

当然可以,

ERRLOG 向量,作为网络优化函数 netopt 的输出创建,具有以下语法

[NET, OPTIONS, ERRLOG] = netopt(NET, OPTIONS, X, T, ALG)

ERRLOG 的每一行为相应的网络优化迭代提供0.5 * SSE(平方和误差)。在预测输出(y)和目标输出(t)之间计算该误差。

MLPERR 函数,具有以下语法

E = mlperr(NET, X, T)

它还在预测输出(y)和目标输出(t)之间提供0.5 * SSE,但由于网络参数是常数(NET应该预先训练), E 是一个奇异值

如果使用 ERRLOG 输出运行 netopt ,然后使用相同的网络和变量运行 MLPERR E < / em>应该与 ERRLOG 的最后一行的值相同(网络优化的最后一次迭代后的错误)。

希望这对某人有用!