I've found this short Python code which implements neural network in 11 lines of code:X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])y = np.array([[0,1,1,0]]).Tsyn0 = 2*np.random.random((3,4)) - 1syn1 = 2*np.random.random((4,1)) - 1for j in xrange(60000):    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))    l2_delta = (y - l2)*(l2*(1-l2))    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))    syn1 += l1.T.dot(l2_delta)    syn0 += X.T.dot(l1_delta)I believe it may be a valid implementation of neural network, but how do I know?In other words, is just creating bunch of arrays which compute the output on certain criteria and call them layers with synapses does it make proper neural network?In other words, I'd like to ask, what features/properties makes a valid artificial neural network?
What are the minimum requirements to call something artificial neural network?
neural networks;implementation;computer programming
If you pick up a textbook on Neural Networks, you'll find that the simplest examples shown are ones that just implement an AND gate or something.  They're trivial, probably fewer lines of code than what you have there.  The bar to be an artificial neural network is pretty low... it certainly isn't the case that ANN's must be incredibly complicated with thousands of lines of code, and many layers, or even many neurons total.Basically, if something is setting up at least one neuron with multiple inputs, and using some kind of weighting function to generate an output from those inputs, it's a valid ANN. It might be a really simple example of an ANN, but it's still an ANN.Remember what Geoffrey Hinton says in his Coursera class - (paraphrased) We don't pretend that the things we're building really work the way the brain does, we're just taking the brain as loose inspiration for an approach that we've found works.