2

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

我想找到每次迭代的误差值,这样我就可以在绘图上看到收敛。这可以通过存储命令窗口中显示的错误来完成,该错误通过使用errlog将options(1)设置为1来完成,是netopt输出。

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

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

有没有办法为网络运行的每次迭代存储mlperr ?

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

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

然而,由于某种原因,它给出了以 options(14) 下指定的迭代次数而不是 k 运行网络的不同结果。

4

1 回答 1

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是一个奇异值。

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

希望这对某人有用!

于 2016-12-04T12:17:00.580 回答