2014-11-08 173 views
14

我有5184倍的值(两位数字的值,换算成字节的图像)的22个输入的神经网络,并且我试图设置2个输出具有值0或1,如:我的神经网络有多少个输出神经元?

<input data line with 5184 values> 
0 1 
<input data line with 5184 values> 
1 0 
<input data line with 5184 values> 
. 
. 
. 

而且,当我做这样的训练,我得到如下结果:

Epochs   1. Current error: 0.3750000000. Bit fail 33. 

那么,这一点失败了? The documentation says

失败位数;意味着 不同于失败极限的输出神经元数量。

但是,如果我只有2个输出,我怎么能有33个输出神经元失效?

--update

我想象这33可以是从总44个输出(2从各22个输入)的。但是文档中没有什么可以证实这一点...

回答

9

数字'33'是神经网络训练期间输出与预期目标输出之间的“差异”以上的数量。这只是表示你的神经网络偏离了期望输出的33位'太多'。请注意,它计算了所有的输出,并给出了一个当前的“错误率”,这对你来说是37.5%。根据文档,标准错误率容差为0.35,因此假设这是33%40 = 1320位输出中的错误位数相当于33位的2.5%。或者至少这是我从这些文档页面了解到的。

您可能意外地有超过2个输出。 1320/22 = 60.

+0

感谢您的回答!我不明白这个'33 * 40',你的意思是'33 * 44'?或者这个'40'来自哪里? 此外,如果我打印'fann_num_output_train_data',我得到'2',所以看起来像输出是正确的。无论如何,你确实帮助澄清了一些失败的东西,谢谢! – 2014-11-17 22:20:55

+0

40来自2.5%。 2.5 * 40 = 100%,这应该是你的全部。从这三个事实我可以用一些基本的数学计算最后的值。当然,我假设错误信息是正确的。 – aphid 2014-11-18 07:53:24

+0

我明白'1320'为'(33/2.5)* 100 = 1320'。但是我仍然试图弄清楚这个“40”......如果我做了1320/33我得到了40个,但是这40个真的意味着什么? – 2014-11-30 20:01:38