Teaching yourself deep learning is a long and arduous process. You need a strong background inlinear algebra and calculus, good Python programming skills, and a solid grasp of data science, machine learning, and data engineering. Even then, it can take more than a year of study and practice before you reach the point where you can start applyingdeep learning to real-world problems and possibly land a job as a deep learning engineer.
Knowing where to start, however, can help a lot in softening the learning curve. If I had to learn deep learning with Python all over again, I would start withGrokking Deep Learning, written by Andrew Trask. Most books on deep learning require a basic knowledge ofmachine learningconcepts and algorithms. Trask’s book teaches you the fundamentals of deep learning without any prerequisites aside from basic math and programming skills.
The book won’t make you a deep learning wizard (and it doesn’t make such claims), but it will set you on a path that will make it much easier to learn from more advanced books and courses.
Building an artificial neuron in Python
Deep neural networks with Python
Code library is a bit cumbersome
Not everything aboutGrokking Deep Learningis perfect. In aprevious post, I said that one of the main things that defines a good book is the code repository. And in this area, Trask could have done a much better job.
TheGitHub repositoryofGrokking Deep Learning is rich with Jupyter Notebook files for every chapter. Jupyter Notebook is an excellent tool for learning Python machine learning and deep learning. However, the strength of Jupyter is in breaking down code into several small cells that you can execute and test independently. Some ofGrokking Deep Learning’s notebooks are composed of very large cells with big chunks of uncommented code.
This becomes especially problematic in the later chapters, where the code becomes longer and more complex, and finding your way in the notebooks becomes very tedious. As a matter of principle, the code for educational material should be broken down into small cells and contain comments in key areas.
Also, Trask has written the code in Python 2.7. While he has made sure that the code also works smoothly in Python 3, it contains old coding techniques that have become deprecated among Python developers (such as using the “for i in range(len(array))” paradigm to iterate over an array).
The broader picture of artificial intelligence
Trask has done a great job of putting together a book that can serve both newbies and experienced Python deep learning developers who want to fill the gaps in their knowledge.
But as Tywin Lannister says (and every engineer will agree), “There’s a tool for every task, and a task for every tool.” Deep learning isn’t a magic wand that can solve every AI problem. In fact, for many problems, simpler machine learning algorithms such as linear regression and decision trees will perform as well as deep learning, while for others,rule-based techniquessuch as regular expressions and a couple of if-else clauses will outperform both.
The point is, you’ll need a full arsenal of tools and techniques to solve AI problems. Hopefully,Grokking Deep Learning will help get you started on the path to acquiring those tools.
The AI universe is vast and quickly expanding, and there is a lot to learn. If this is your first book on deep learning, then this is the beginning of an amazing journey.
This article was originally published by Ben Dicksonon TechTalks, a publication that examines trends in technology, how they affect the way we live and do business, and the problems they solve. But we also discuss the evil side of technology, the darker implications of new tech and what we need to look out for. You can read the original article here.