1

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]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for 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?

kenorb
  • 10,423
  • 3
  • 43
  • 91

1 Answers1

4

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".

kenorb
  • 10,423
  • 3
  • 43
  • 91
mindcrime
  • 3,737
  • 14
  • 29
  • 1
    Could you link to the mentioned coursera class? – kenorb Aug 17 '16 at 01:22
  • Maybe. I think that is one of the ones that got deleted, and I'm not sure if the new Neural Networks class has the same video content or not. But if I can scour up a link, I'll drop it here. – mindcrime Aug 17 '16 at 03:04
  • If you've some dead link, double check on http://web.archive.org. Maybe the course is mirrored somewhere, like on YouTube or somewhere. – kenorb Aug 17 '16 at 03:07