Answers.Body: <p>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 <em>must</em> be incredibly complicated with thousands of lines of code, and many layers, or even many "neurons" total.</p>
  
  <p>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 <em>really</em> simple example of an ANN, but it's still an ANN.</p>
  
  <p>Remember what Geoffrey Hinton says in his <em>Coursera</em> 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".</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-17T01:22:35.403Z
Answers.Text: Could you link to the mentioned coursera class?
Answers.UserDisplayName: kenorb
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-17T03:04:07.287Z
Answers.Text: 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.
Answers.UserDisplayName: mindcrime
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-17T03:07:57.763Z
Answers.Text: If you've some dead link, double check on http://web.archive.org. Maybe the course is mirrored somewhere, like on YouTube or somewhere.
Answers.UserDisplayName: kenorb
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-13T03:27:59.370Z
Answers.LastActivityDate: 2016-08-17T01:23:18.030Z
Answers.LastEditDate: 2016-08-17T01:23:18.030Z
Answers.UserDisplayName: mindcrime
Body: <p>I've found this short <a href="http://iamtrask.github.io/2015/07/12/basic-python-network/" rel="nofollow">Python code</a> which implements neural network in 11 lines of code:</p>
  
  <pre><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)
  </code></pre>
  
  <p>I believe it may be a valid implementation of neural network, but how do I know?</p>
  
  <p>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?</p>
  
  <p>In other words, I'd like to ask, what features/properties makes a valid artificial neural network?</p>
  
Tags: <neural-networks><implementation><computer-programming>
Title: What are the minimum requirements to call something artificial neural network?
UserDisplayName: kenorb
ThreadText: # What are the minimum requirements to call something artificial neural network?
  
  (Asked by: username_0 on 2016-08-13)
  
  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?
  
  **Tags:** neural-networks, implementation, computer-programming
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2016-08-13. Score: 4 | Accepted answer
  
  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".
  
  > **Comments:**
  > **username_0**: Could you link to the mentioned coursera class?  
  > **username_1**: 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.  
  > **username_0**: If you've some dead link, double check on http://web.archive.org. Maybe the course is mirrored somewhere, like on YouTube or somewhere.  
  
  ---
  
  