Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Deep learning with Python : a hands-on introduction
Ketkar N., Apress, New York, NY, 2017. 226 pp. Type: Book (978-1-484227-65-7)
Date Reviewed: Jul 16 2018

This book is written specifically for Python programmers who wish to learn how to apply their Python programming skills to machine learning applications. Consequently, a very brief introduction to machine learning is necessary in order to provide a context for understanding what the book has to offer.

Suppose you are walking down the street on a cloudy day and notice that most of the people you pass are wearing sunglasses. This strikes you as odd, so you decide to count how many of the next ten people are wearing sunglasses. Six of the ten people you observe are wearing sunglasses, so you conclude (tentatively) that 60 percent of the people you encounter wear sunglasses even if the sun is not out. To test this idea, you count how many of the next ten are wearing sunglasses, and the next ten, and so on. Over time, as you collect more data, your prediction would get more accurate, although not particularly useful for anything.

Now, let’s take a huge leap in the complexity of the problem and the usefulness of the result. Let’s say you are in a large shopping area where thousands of shoppers pass through every day, and you wonder if there is anything you can observe about the shoppers that might be useful to the vendors in the shopping area. For example, are people who don’t take their coats off more likely to shoplift? Are people who wear polished shoes and an overcoat more likely to spend more money? Are mothers with two or fewer children in tow more likely to buy toys than those with four or more children? Now the problem is much more complex, and just counting people with a particular feature is not enough. Instead, you need to collect a lot of data and process it with sophisticated algorithms that will identify potentially useful, but heretofore unknown, patterns in the data. Once you have discovered a pattern, you can test it against new data (or data you set aside for this purpose) to see if it continues to hold. Over time, your patterns will become more refined, as well as the quality of your predictions. And now you are in the realm of machine learning, well beyond anything you can do unaided.

This new realm requires a solid understanding of math and statistics and some understanding of software that implements models based on that understanding. This intersection of various kinds of expertise is not unheard of, although mastery of all the elements is rare. One normally begins in one area where they are comfortable (say linear algebra) and moves into an area where they are far less comfortable (say programming algorithms). This is one of the challenges in machine learning, and various books attempt to address it in various ways.

This book assumes you have expertise in Python programming and attempts to gently nudge you through some of the theory behind machine learning. If you are a competent Python programmer who wishes to learn more about machine learning, this is a good place to start. If your math background is adequate but needs a little brushing up, you may have to stop periodically and review before proceeding; however, there is enough explanation in the book to get you started in this process.

The book begins by explaining the basic categories of machine learning. The next few chapters then move on to a more in-depth look at neural networks. Chapter 4 introduces Theano, a Python library that provides basic mathematical functions needed for machine learning. Chapters 5 and 6 return to neural networks, and chapter 7 follows with Python libraries Kera and Tensorflow (an alternative to Theano) and elaborate Python code examples. Then the book moves on to increasingly more sophisticated models such as stochastic gradient descent and automatic differentiation, and further to even more sophisticated content. The content is supported by simple graphics (simple relative to the content), which provide a pictorial representation of key ideas.

It would be misleading in the extreme to suggest that the book can turn you into a machine learning expert overnight. However, if you are a competent and determined Python programmer, with a reasonable quantitative background (calculus and statistics) who is willing to work your way through the material, stopping occasionally for remedial refreshers, it will definitely put you on the path to becoming a machine learning expert over time. Machine learning is not easy, and no book can make it easy. However, some books make it accessible. This is one of those books.

Reviewer:  J. M. Artz Review #: CR146153 (1809-0485)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Learning (I.2.6 )
 
 
Python (D.3.2 ... )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Learning": Date
Learning in parallel networks: simulating learning in a probabilistic system
Hinton G. (ed) BYTE 10(4): 265-273, 1985. Type: Article
Nov 1 1985
Macro-operators: a weak method for learning
Korf R. Artificial Intelligence 26(1): 35-77, 1985. Type: Article
Feb 1 1986
Inferring (mal) rules from pupils’ protocols
Sleeman D.  Progress in artificial intelligence (, Orsay, France,391985. Type: Proceedings
Dec 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy