我想知道 Netlab package 中的 mlperr
是否有效正在计算均方误差。
documentation指出它取决于输出的单位激活函数。这有什么意义呢?它不应该独立于此吗?
我还尝试阅读 source code of mlperr
我没有看到任何迹象可以让我认为这是一个 MSE 误差函数。
这里有 Netlab 专家可以提供一些见解吗?谢谢! :)
最佳答案
该方法用于根据其输出激活来评估多层感知器。它假设最常见的用法,因此:
对于线性输出,它返回 MSE 误差
0.5*sum(sum((y - t).^2))
对于逻辑输出,它返回交叉熵误差
-sum(sum(t.*log(y) + (1 - t).*log(1 - y)))
对于softmax输出,它返回相应的能量误差
-sum(sum(t.*log(y)))
完整源码可见here .
关于matlab - Netlab的函数mlperr计算均方误差吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946101/