I'm just beginning to understand neural networks and I've performed a couple of successful tests with numerical series where the NN was trained to find the odd one or a missing value. It all works pretty well.
The next test I wanted to perform was to approxmimate the solution of a Sudoku which, I thought could also be seen as a special kind of numerical series. However, the results are really confusing.
I'm using an MLP with 81 neurons in each of the three layers. All output neurons show a strong tendency to yield values that are close to either 0 or 1. I have scaled and truncated the output values. The result can be seen below:
Expected/Actual Solution: Neural Net's Solution:
6 2 7 3 5 0 8 4 1 9 0 9 9 9 3 0 0 3
3 4 8 2 1 6 0 5 7 0 9 9 0 0 0 9 9 0
5 1 0 4 7 8 6 2 3 0 9 1 9 9 0 2 0 4
1 6 4 0 2 7 5 3 8 0 0 5 0 0 9 0 0 7
2 0 3 8 4 5 1 7 6 0 0 0 0 0 9 9 0 9
7 8 5 1 6 3 4 0 2 9 9 9 9 0 6 2 9 0
0 5 6 7 3 1 2 8 4 0 0 0 0 9 9 0 9 0
4 3 1 5 8 2 7 6 0 9 9 0 0 0 0 9 0 9
8 7 2 6 0 4 3 1 5 9 9 0 9 9 0 9 0 9
The training set size is 100000 Sudokus while the learning rate is a constant 0.5. I'm using NodeJS/Javascript with the Synaptic library.
I don't expect a perfect solution from you guys, but rather a hint if that kind of behavior is a typical symptom for a known problem, like too few/many neurons, small training set, etc.