I have a standard feedforward backpropagation neural network that i would like to train to be able to recognize a blue ball. I have 30 images 20 of the ball and 10 without and my first question is whether or not this is enough im assuming its better to have more than less but it would be nice to know if there is a minimum of sorts. Each image is 96 pixels wide by 128 pixels high so thats 12,288 pixels in total times 3 for RGB which gives 36,864 perceptrons in my input layer. Since i only need to know if an image contains the blue ball or does not i have 1 output perceptron. All perceptrons in the network use the logistic activation function. In my hidden layer i’ve tried a whole bunch of different number of hidden units ranging from 100-3000 but none of them seem to work, the network either says that the MSE is low enough to stop after 1 iteration or the network never reaches the desired MSE and stops because of a training iteration limit and the output is always the same value no matter what the input is. Ive tried a range of learning rates and momentums all under 0.1 and the momentum is always less than the learning rate, my goal MSE right now is 0.0005. I’ve done object detection using a neural network before but instead of having an input layer i just had a hidden layer with 12,288 perceptrons (one for each pixel) and each perceptron had 24 inputs (8 bits per colour 3*8 = 24 bits) that received binary colour information from the image and then i had one output perceptron, all perceptrons used the logistic activation function and it worked. I thought id try using an input layer but so far the only thing i’ve been able to learn is the XOR problem.
So my questions are:
What would be optimal network topology for my problem? (How many layers, hidden units…)
Is there a range of learning rate and momentum values i should use?
Is 30 training samples enough?
And just as a side note in case it matters when my neural network is created the weights are initialized with values ranging from -0.3 – 0.3
In general, I think the big problem with neural nets is that you don’t get good guarantees before hand, and you have a lot of freedom in the structure. Picking the right parameters is a matter of doing lots of experimenting and iterating a lot.
I don’t think that anyone can you tell beforehand what will definitely work.