This neural network is designed to be able to take an 20px
For this simple neural network, there is only one output layer neuron.
There are no "hidden" neuron layers, and the input neuron values are a vector of floating point values with a length of 400 (20px
The neuron layer input vector
The neuron layer weight matrix
The neuron layer bias vector
The neuron layer output vector
To calculate the value of the single output neuron in this scenario, we can use this equation:
-
$y$ is new neuron layer values vector.-
$m$ is the number of neurons on this neuron layer.
-
-
$W_{m \times n}$ is the weight values matrix.-
$m$ is the number of neurons in the previous layer, and; -
$n$ is the number of neurons in the previous layer.
-
-
$x$ is the previous/input neuron values vector.-
$n$ is the number of neurons on the previous neuron layer.
-
-
$b$ is the vector of bias values.-
$m$ is the number of neurons on this neuron layer.
-
The neural network seems to struggle to get an accuracy of guessing the shapes over 70% no matter how many images are used to train. I have tried to train it with both 10,000 and 100,000 images, and, in both scenarios, the network is correctly guessing the test shapes about 70% of the time.
I have two theories as to why this might be the case:
- Only 70% of the test images generated are close to/the same as the training images.
- When there are a large number of images used to train the network weights, the weights seem to "blend" together and the network can only correctly guess about 70% of the time.