繁体   English   中英

如何自定义MATLAB神经网络的误差函数

[英]How to customize error function of MATLAB Neural Network

我想将此函数实现为用于训练神经网络的错误函数:

function err = MyErrorFunction(T,O)
  d = T - O;
  err = -d*( exp(-d) - 1 );
end

其中T是目标值, O是输入的神经网络输出。

训练算法无关紧要(显然, trainlm错误函数不可自定义,因此我可以使用trainscg )。

我发现这篇文章建议使用template_performance.m文件定义一个新的性能函数。 我说我只是复制了这个文件并根据需要对其进行了自定义。

但是据我所知,`template_performance.m`是** performance **函数的模板,而不是** error **函数:`template_performance.m`获取错误值并输出性能值,例如可以对误差平方求和并输出(SSE)。

显然,自MATLAB 2010起已弃用template_performance.m

那么,当训练神经网络时,如何改变计算/评估错误/性能的方式呢?

我有一个类似的问题……关于定制性能功能的整个过程完全是一场灾难。 很多东西都被折旧了,关于我们应该怎么做的文献零。

我最终不得不破解我不打算使用的性能功能的核心文件(SSE)。 在matlab目录MATLAB\\R2012b\\toolbox\\nnet\\nnet\\nnperformance您可以找到它们。 我修改了apply.m(在SSE +文件夹中)函数,并根据tt-1变化使用了一些方向权重。 但是后来我遇到了一个训练算法的问题,该算法以与perform()不同的方式和格式发送参数到apply() perform() 我最终没有使用perform()并为此编写自己的代码。 耶稣...一团糟。

这是一个非常丑陋的骇客,我很想听听任何找到正确方法的人的来信。

据我了解,性能功能既用于训练又用于测试/评估(除非将某种训练算法硬编码为特定功能)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM