14

My neural network has 22 inputs of 5184 values (two digit values, images converted to bytes), and I tried to set 2 output neurons with value 0 or 1, like:

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

From training results :

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

What is this bit fail? The documentation says:

The number of fail bits; means the number of output neurons which differ more than the bit fail limit.

How can I have 33 output neurons fail for only 2 output neurons? I imagine this 33 could be from a total of 44 outputs (2 from each of the 22 inputs). But documentation does not confirm this.

user4157124
  • 2,809
  • 13
  • 27
  • 42
The Student
  • 27,520
  • 68
  • 161
  • 264

1 Answers1

9

The number '33' is the amount above the 'difference' between your output and the expected target output during training of the neural network. This simply signifies that your neural network deviates by 33 bits 'too much' from the desired output. Note that it counts all of the output and also gives a current 'error rate', which for you is 37.5%. The standard error rate tolerance is 0.35 as per the documentation, so assuming this, you have 2.5% too much error bits corresponding to 33 bits in a 33*40 = 1320-bit output. Or at least that's what I understand from these documentation pages.

You possibly accidentally have more than 2 outputs. 1320/22 = 60.

aphid
  • 1,135
  • 7
  • 20
  • Thanks for answering! I don't understand this `33*40`, you mean `33*44`? Or where this `40` comes from? Also, if I print `fann_num_output_train_data`, I get `2`, so looks like the outputs are correct. Anyway, you did help clarify the bit fail stuff, thanks! – The Student Nov 17 '14 at 22:20
  • The 40 comes from the 2.5%. 2.5 * 40 = 100%, which -should- be all your bits. From the three facts I can calculate the last value using some basic math. Of course, I'm assuming the error message is correct. – aphid Nov 18 '14 at 07:53
  • I understand the `1320` as `(33/2.5)*100=1320`. But I'm still trying to figure out this `40`... If I do 1320/33 I get 40, but what this 40 really means? – The Student Nov 30 '14 at 20:01
  • 1 / 2.5 * 100 = 40. In other words, saying "A is 2.5% of B" is the same as "B is 40 times A". 2.5% is 1/40th, and that's where it comes from. – aphid Nov 30 '14 at 22:30