21
$\begingroup$

I'm a freshman undergraduate student (mentioning this so you may forgive my unfamiliarity) who is currently doing research using neural networks. I've coded a three-node neural network (that works) based on my professor's guidance. However, I'd like to pursue a career in AI and Data Science, and I'd like to teach myself more about these properly in-depth. Are there any books or resources that will teach me more about neural network structures, deep learning, etc? Are there any recommendations?

Note: I'm proficient in Java, Python, Bash, JavaScript, Matlab, and know a bit of C++.

$\endgroup$
2
  • $\begingroup$ An update from the author of the question: This has become a high-impact question with >3k views. Here is my recommendation, 1.5 years later: Any resource written by Andrew Ng or Hands On Machine Learning with Scikit-Learn is a solid resource. giant_neural_network on YouTube (whom I've asked for advice on some ML projects) has a great ML 101 course. $\endgroup$ Commented Jul 20, 2020 at 20:50
  • $\begingroup$ See EpyNN. $\endgroup$
    – Synthaze
    Commented Sep 17, 2021 at 18:11

9 Answers 9

10
$\begingroup$

I have a Master's in Computer Science and my thesis was about time-series prediction using Neural Networks.

The book Hands on machine learning with Scikit and Tensorflow was extremely helpful from a practical point of view. It really lays things very clearly, without much theory and math. I strongly recommend it.

On the other hand, the book by Ian Goodfellow is also a must (kind of the bible of DL). There you'll find the theoretical explanations, also it will leave you much much more knowledgeable with regards to deep learning and the humble beginning of the field till now.

Another, as others have suggested, is of course, Deep Learning with Python by Chollet. I indulged reading this book. Indeed it was very well written, and again, it teaches you tricks and concepts that you hardly grasp from tutorials and courses online.

Furthermore, I see you are familiar with Matlab, so maybe you have taken some stats/probability classes, otherwise, all these will overwhelm you a bit.

$\endgroup$
0
13
$\begingroup$

If you want a good and solid start for deep learning, I would suggest to start with the book "Deep Learning" by Ian Goodfellow et al. After that you'll have a good base that you can expend by the many different tutorials, articles and courses available online.

However, I would also add that before doing that, you should take some basic "machine learning" class (should be available at your University). Many people these days go straight to deep learning and implementing Neural networks because it is relatively easy, but than they lack the understanding to improve it or use it to its fullest potential.

$\endgroup$
1
  • 1
    $\begingroup$ I completely agree with this. A lot of ML and NN has "knowledge dependencies" where it is easiest not to jump into the hard stuff without building a sufficient background in some of the underlying techniques/concepts. Beyond Calculus and Linear Algebra, build a foundation in some of the basic machine learning concepts (especially mathematically) $\endgroup$
    – Ethan
    Commented Dec 26, 2018 at 18:41
10
$\begingroup$

As others suggested are very good resources. If you want in-depth Knowledge, I would suggest a course by Andrew Ng on Coursera. It covers in-depth knowledge of the basics of ML and if you are confused about whether you begin with AI, ML, or deep learning You could follow the blog link in my profile. I recently posted how to go with these technologies.

PS: I am not advertising here my blog. I am just helping. If you want to follow you may follow otherwise just go with Andrew Ng.

$\endgroup$
2
  • 4
    $\begingroup$ Ng is kind of a classic, and his new re-worked speciality is up-to-date, and additionally features interviews with a lot of the big names in the subject (Hinton, Le Cunn, Goodfellow, and many more, etc.). Taking this course will give you a good grounding, and is something you are likely to have in common with other practitioners of your generation. I would do it for that last reason alone - note that it is not very hard - the Coursera course by Hinton is far harder, but a bit dated now. $\endgroup$
    – Mike Wise
    Commented Dec 26, 2018 at 18:32
  • $\begingroup$ @MikeWise Yes i am not saying course is hard. I Am saying neural network is hard, specially when you are beginner and from web background $\endgroup$
    – Gaurav
    Commented Dec 27, 2018 at 2:30
7
$\begingroup$

I suggest starting with Google’s Crash Course on ML if you want to revisit the basics. I then suggest to follow fast.ai’s ML and DL lessons. For reading I suggest Introduction to Machine Learning by Alex Smola and S.V.N. Vishwanathan. Have a nice day!

$\endgroup$
6
$\begingroup$

I highly suggest you to read this great book: hands on machine learning with Scikit and Tensorflow. Neural networks are presented succinctly in chapters 9 and 10. There are a lot of examples for you to practice. To effectively understand the script of examples you should have background of Python programming. Have a nice day!

$\endgroup$
3
$\begingroup$

Deep Learning with Python by François Chollet is a great, high-level introduction into deep learning by the author of Keras.

$\endgroup$
1
$\begingroup$

There are many good websites for self-learning. Following are 2 examples:

Machine Learning Mastery | Deep Learning (Keras)

An Introductory Guide to Deep Learning and Neural Networks (Notes from deeplearning.ai Course #1)

These are especially helpful for practical aspects, maybe less so for theoretical background.

$\endgroup$
1
$\begingroup$

To add to the above references (the Deep Learning book by Goodfellow et al. is a must if you want to go deep into the subject), an excellent hands-on book is dive into deep learning that gives a state of the art approach (computer vision, NLP) using the gluon API (mxnet framework, see also the straight dope). I also highly recommend the resources in the PyTorch software (tutorials).

$\endgroup$
0
$\begingroup$

I really love that book!! This is a great resource as well.

Try to take each model apart, and put it back together, with your own specific datasets being fed in. If you can use your own data, rather than the sample data that they give you, and make it work, I think you will have the skills you need to do whatever you want to do.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.