I am learning about artificial neural networks and I've decided to go with perceptrons. I already made a sample program that can learn based on the learning data, but when I tried to make it recognize the color green it stopped working. The learning data is based off of RGB values.
So at first the perceptron was learning fine. Here are the 17 initial training examples: $\{\langle(0, 250, 154), 1\rangle, \langle(0, 238, 118), 1\rangle, \langle(0, 205, 102), 1\rangle, \langle(0, 139, 69), 1\rangle, \langle(60, 179, 113), 1\rangle, \langle(84, 255, 159), 1\rangle, \langle(78, 238, 148), 1\rangle, \langle(67, 205, 128), 1\rangle, \langle(46, 139, 87), 1\rangle, \langle(0, 201, 87), 1\rangle, \langle(0, 205, 205), 0\rangle, \langle(47, 79, 79), 0\rangle, \langle(224, 255, 255), 0\rangle, \langle(0, 191, 255), 0\rangle, \langle(255, 165, 0), 0\rangle, \langle(105, 139, 34), 1\rangle, \langle(139, 139, 122), 0\rangle\},$
where $1$'s stand for green and $0$'s stand for not green. For the above training examples it worked fine and the solution that was computed for the weights was $(-18, 28.3, -34.3)$.
However, when I added $\langle (205,205,0), 0\rangle$ to the training examples, the program ran forever.
My question is, if i am teaching the perceptron correctly and it just can't find an answer or if i should try some other method? (By the way, I am not using back propagation and am also wondering if using back propagation would solve this problem.)