
Neural Networks and Deep Learning: An Introduction - Jasamba
http://neuralnetworksanddeeplearning.com/index.html
======
jaybosamiya
This is an excellent book written by Michael Nielsen. I had tried to learn
neural nets earlier, but either found the descriptions too simplistic to come
up with a clear understanding, or too complicated. IMHO, in this book, the
right learning curve exists, and dare I say, trains up our biological neurons
at the optimal learning rate :)

------
vonnik
Michael has written a great book. I humbly propose that readers who would like
another intro, and who learn better from conceiving of the same subject in
different ways, check out our introduction to neural nets:

[http://deeplearning4j.org/neuralnet-
overview.html](http://deeplearning4j.org/neuralnet-overview.html)

------
goodbyegti
For C fans I ported the Python example from this excellent book here:

[https://github.com/dougszumski/NNet](https://github.com/dougszumski/NNet)

------
obulpathi
Highly recommended! I was able to get a pretty good understanding of Deep
Learning using this book. The book contains really good analogies (like
explaining how a basic neuron works using a real life decision model) to help
you understand the complex topic of Deep Learning.

------
max_
The book is excellent, but i have some trouble understanding, Gradient descent
(mostly the calculus equations)

Can anyone help me with a rudimentary, simpler explanation for this? (a link
may also do)

~~~
Jasamba
If you haven't already, you should check out the first and second week of
Andrew Ng's Coursera Course on Machine learning. He exclusively talks about
gradient descent the first few weeks. [https://www.coursera.org/learn/machine-
learning](https://www.coursera.org/learn/machine-learning)

~~~
mindcrime
Second the motion. Ang really explains gradient descent very well in that
course.

As far as the equations go, if you don't know multi-variable calculus, you
might not be able to follow the actual derivations, but I don't think that's
all that crucial, depending on what your goals are. Certainly you can _apply_
this stuff without knowing the calculus behind it. And in the ang course, he
gives you all the derivations you need to implement gradient descent for
various purposes.

Anyway, here's my quick and dirty, way too high level overview of the whole
calc business:

All you're really trying to do is optimize (minimize) a function. Given a
point on the graph of that function, you need to know which direction to move
in in order to get a smaller (more minimal) output. To do that, you calculate
the slope at that point. Calculating the slope at a point on a curve is
exactly what calculus does for you. If you were working with only one
variable, the derivations would be trivial, but once you get into higher
dimensional spaces and the need for partial derivatives, that's where the
calculus gets a little trickier. But in concept, you're always just doing the
same thing... calculating the slope so you know where to move, and by how much
(the steeper the slope, the bigger the hop you make in a given iteration).

------
mindcrime
Another freely available book on Neural Networks is here:

[http://hagan.okstate.edu/nnd.html](http://hagan.okstate.edu/nnd.html)

I've started skimming over this and it looks pretty useful so far.

