Machine learning (ML) is an exciting and rapidly expanding domain in Computer Science. ML is a field of study devoted to the automated improvement of computer algorithms through exposure to data. The knowledge base underneath ML consists of a broad range in topics in mathematics, statistics, and computer programming. There is a wealth of available resources to become familiar with all of the concepts. This post summarizes the best books from those just starting their machine learning journey to seasoned practitioners and researchers who want to touch-up their knowledge or learn something new. The included contents of each book allow you to search on this page for particular concepts you may want to know about and find the relevant text.

## Table of contents

- Summary
- Hands-On Machine Learning with Scikit-Learn, Keras & Tensorflow
- Deep Learning With Python
- Pattern Recognition and Machine Learning
- Deep Learning
- An Introduction to Statistical Learning: with Applications in R
- The Hundred-Page Machine Learning Book
- Speech and Language Processing
- Applied Predictive Modeling
- Reinforcement Learning: An Introduction
- Concluding Remarks

## Summary

- Hands-on Machine Learning with Scikit-Learn, Keras & Tensorflow
- Deep Learning With Python
- Pattern Recognition and Machine Learning
- Deep Learning (Ian Goodfellow)
- An Introduction to Statistical Learning: with Applications in R
- The Hundred-Page Machine Learning Book
- Speech and Language Processing
- Applied Predictive Modeling
- Reinforcement Learning: An Introduction

## Hands-On Machine Learning with Scikit-Learn, Keras & Tensorflow

### Contents

- Machine learning background and fundamentals
- Building an End-to-end machine learning project
- Classification tasks
- Training models (gradient descent, decision boundaries, softmax regression)
- Support Vector Machines
- Ensemble learning and Random Forests
- Dimensionality Reduction
- Unsupervised Learning Techniques
- Neural Networks and Deep Learning
- Using TensorFlow
- Computer Vision using CNNs
- Processing sequences using RNNs and CNNs
- Natural Language Processing with RNNs and Attention
- Reinforcement Learning
- Training and Deploying Models at Scale

### Summary

This book is for intermediate and advanced readers. They have some theoretical background in machine learning and want to focus on the coding aspects of building, optimizing, and deploying ML models. Optimally, you should have some working knowledge with the Python frameworks Scikit-learn and Tensorflow. There is the right balance of practical and theoretical information with clear examples given through Jupyter notebooks. However, advanced Tensorflow examples can be challenging for hobbyists. In addition to this book, to enhance your Tensorflow knowledge and give you plenty more examples, go through the Tensorflow tutorials. Alongside Tensorflow, Keras is a framework for ML that is generally easier to use and provides an API layer over Tensorflow’s functionalities. Learning both Tensorflow and Keras will optimize your skillset. You can gain more experience with Keras through François Chollet’s Deep Learning with Python described below. Overall, this an excellent book for advanced professionals who want to build ML solutions at scale.

## Deep Learning With Python

### Contents

- Mathematical Building Blocks of Neural Networks
- Introduction to Keras and Tensorflow
- Classification and Regression
- Fundamentals of Machine Learning
- The Workflow of Machine Learning
- Keras Deep-dive
- Deep Learning for Computer Vision
- Deep Learning for Time Series
- Generative Deep Learning
- Best Practices for Real-World Applications

### Summary

François Chollet is the creator of the Keras deep-learning library and a contributor to the TensorFlow machine-learning framework. His book provides a clear and concise introduction to deep learning and the best tools for ML practitioners to build solutions. The book does not focus on the mathematics behind deep-learning but provides enough to give first-time practitioners a foothold for the more advanced subjects in the field. There is an assumed working knowledge of Python; therefore, readers should do some practice with basic Python programming before attempting the practical examples in the book. You can find the companion code for the book on Github. This book is an excellent reference for deep learning that would pair well with the more theoretical texts, like Deep Learning (Goodfellow) or Mathematics for Machine Learning (Deisenroth). To learn more about why Python is an ideal fit for machine learning and deep learning, click on my article titled “Why Python is Ideal for Machine Learning“.

## Pattern Recognition and Machine Learning

### Contents

- Probability Distributions
- Linear Models for Regression
- Linear Models for Classification
- Neural Networks
- Kernel Methods
- Sparse Kernel Machines
- Graphical Models
- Mixture Models and EM
- Approximate Inference
- Sampling Methods
- Continuous Latent Variables (Principal Component Analysis)
- Sequential Data (Markov models)
- Combining Models

### Summary

This book gives a comprehensive summary of machine learning and serves as a good springboard into more advanced texts. There is an assumption of familiarity with multivariate calculus, probability, and statistics. This book is primarily for intermediate practitioners who have some confidence in applying and discussing statistics and mathematics. Each chapter is self-contained, giving the reader the freedom to move between chapters after the first couple as required. This text presents pattern recognition from the Bayesian viewpoint and can provide balance for the frequentist statistician. The book is very clear with easily interpretable diagrams and serves as one of the cornerstone texts for intermediate and advanced ML practitioners.

## Deep Learning

### Contents

- Linear Algebra
- Probability and Information Theory
- Numerical Computation
- Numerical Computation
- Machine Learning Basics
- Deep Feedforward networks
- Regularization for Deep Learning
- Optimization for Training Deep Models
- Convolutional Networks
- Sequence Modeling: Recurrent and Recursive Networks
- Linear Factor Models
- Autoencoders
- Representation Learning
- Structured Probabilistic Models for Deep Learning
- Monte Carlo Methods
- Partition Function
- Approximate Inference
- Deep Generative Models

### Summary

Deep learning is a challenging and fast-moving area of machine learning; this book summarizes the state of the art. The book provides sections dedicated to the mathematical concepts which underpin deep learning. Optimally, you should have an undergraduate level mathematics background. Still, there is enough discussion on the basics that anyone can access this book provided there are willing to consult other materials alongside this one. The book emphasizes the history and progression of concepts in machine learning, which gives the book a strong narrative and gives the reader “the big picture” of deep learning.

## An Introduction to Statistical Learning: with Applications in R

### Contents

- Statistical Learning
- Linear Regression
- Classification
- Resampling Methods
- Linear Model Selection and Regularization
- Moving Beyond Linearity
- Tree-based Methods
- Support Vector Machines
- Unsupervised Learning

### Summary

This book is considered one of the best reference texts for statistics and machine learning. “An Introduction to Statistical Learning: with Applications in R” enables readers who are not experienced in mathematics to get a firm handle on statistical techniques for machine learning. The book describes the fundamental algorithms with examples and problems written in the R programming language to implement the concepts presented. If you have some undergraduate-level knowledge mathematics, this book is perfect to start learning statistical learning. This book is recommended as a reference text for online courses on data science and machine learning as it provides the extra depth and completeness that may be missing.

## The Hundred-Page Machine Learning Book

### Contents

- Notation and Definitions.
- Fundamental Algorithms.
- Anatomy of a Learning Algorithm.
- Neural Networks and Deep Learning.
- Unsupervised Learning.

### Summary

This book is perfect for first time ML practitioner. There is no assumption of mathematics and statistics knowledge, but it is helpful to have some understanding of basic concepts before reading. Because the book is brief, it will give you a condensed view of the “essentials” for machine learning (supervised, unsupervised, semi-supervised, reinforcement, deep). One of the significant aspects of the book is it simplifies mathematical concepts without a lot of jargon and symbols, making it very accessible for readers who may find reading mathematics scary. The book provides QR codes throughout its entirety for readers after extra material. The supplementary material includes code examples, papers, and references. The book highlights topics not covered in-depth so that if the reader is so motivated, they can explore them. Choose this book for a comprehensive, concise summary of the evergreen concepts in machine learning, without advanced technical discussion.

## Speech and Language Processing

### Contents

- Regular Expressions, Text Normalization, and Edit Distance
- Language Modeling with N-grams
- Naive Bayes Classification and Sentiment
- Logistic Regression
- Vector Semantics and Embeddings
- Neural Nets and Natural Language Models
- Part-of-Speech Tagging
- Sequence Processing with Recurrent Networks
- Encoder-Decoder Models, Attention, and Contextual Embeddings
- Machine Translation
- Constituency Grammars
- Constituency Parsing
- Logical Representations of Sentence Meaning
- Computational Semantics and Semantic Parsing
- Information Extraction
- Word Senses and WordNet
- Semantic Role Labeling and Argument Structure
- Lexicons for Sentiment, Affect, and Connotation
- Coreference Resolution
- Discourse Coherence
- Summarization
- Question Answering
- Dialog Systems and Chatbots
- Phonetics
- Speech Processing
- Hidden Markov Models
- Spelling Correction and the Noisy Channel

### Summary

This book is for ML practitioners who want to specialize in Natural Language Processing (NLP). NLP is one of the most actively developed and applicable areas of machine learning, with many data scientists and machine learning engineers required to have some experience in it. This text gives excellent coverage on NLP and presents a broad scope of topics that would not typically appear in machine learning books. The book is appropriate as an introductory and reference textbook for undergraduate or a researcher or professional working with NLP techniques. The strength of the book is its ability to cater to a broad audience: computer scientists, linguists, and engineers and, as such, presents NLP in a comprehensive and integrated way. However, given the breadth of the audience, there may not be sufficient depth to satisfy all audiences equally for their given requirements. For a more statistical approach, consider partnering this book with Foundations of Statistical Natural Language Processing.

## Applied Predictive Modeling

### Contents

- Data Pre-processing
- Model Tuning
- Linear Regression
- Non-Linear Regression Models
- Regression Trees and Rule-Based Models
- Classification Models
- Discriminant Analysis and Other Linear Classification Models
- Non-Linear Classification Models
- Classification Trees and Rule-Based Models
- Grant Application Models
- Class Imbalance
- Measuring Predictor Importance
- Feature Selection

### Summary

Applied Predictive Modeling is widely considered a reference text for machine learning theory and practical applications for all intermediate ML practitioners. It uses the R programming language for examples and problems around the concepts discussed. The book has a dedicated website that provides additional data and code used in the book. The book focuses on real-world applications of machine learning and building models to make predictions, with optimal model selection for prediction being the end goal. There is a chapter for “General Strategies” of predictive modeling covering oft-overlooked topics like overfitting, feature selection, and class imbalance. Including these topics as well makes this reference a stand out for serious ML practitioners. The book is more accessible and applicable than other reference texts like The Elements of Statistical Learning.

## Reinforcement Learning: An Introduction

### Contents

- Multi-armed Bandits
- Finite Markov Decision Processes
- Dynamic Programming
- Monte Carlo Methods
- Temporal-Difference Learning
*n*-step Bootstrapping- Planning and Learning with Tabular Methods
- On-policy Prediction with Approximation
- On-policy Control with Approximation
- Off-policy Methods with Approximation
- Eligibility Traces
- Policy Gradient Methods
- Applications to Psychology and Neuroscience

### Summary

The second edition (2018) of this text gives a widely expanded and state-of-the-art scope on reinforcement learning (RL) and is considered the reference text for this area. The book is suitable for interested students, researchers, and ML practitioners. The authors summarise the complex RL algorithms through a set of fundamental components and demonstrate how these components work together. The book is in three parts, with one dedicated to the RL problem description, and the other two discussing the range of RL algorithms and related research issues. The book is very accessible, written conversationally, with intuitive algorithmic descriptions and many examples and exercises with solutions. The examples given are easily relatable and allow the reader to get to grips with concepts quickly. If you are exploring this highly active field of machine learning and want to gain a foothold on current research, this book is a must. Pair this book with Neuro-Dynamic Programming for more insight into the mathematical foundations of reinforcement learning.

## Concluding Remarks

This selection of books provides many of the leading reference materials for ML practitioners. Some books rely more heavily on theory than others and may require more familiarisation with the necessary mathematics to get the most out of them. If you are starting to learn about machine learning and have little to no formal background in mathematics or statistics, go for the more practical books like Deep Learning With Python or Applied Predictive Modeling. As your confidence with the concepts grows, you can take your time reading through the more extensive books. For more practical applications of machine learning, pair your chosen books with an online course. Often new ML practitioners will start with a MOOC and find that there is not enough depth given to one or more of the discussed topics. By combining active learning through online courses with in-depth materials, you will get the most out of your time and educational resources. To find out the best Python libraries for data science and machine learning for when you develop your own projects you can read through my blog post titled “Top 12 Python Libraries for Data Science and Machine Learning“.

Thank you for reading through the Research Scientist Pod recommended books on machine learning and deep learning for beginners and experts in 2020. Please share this with others who also want to or are exploring machine learning and have fun reading!

Suf is a senior advisor in data science with deep expertise in Natural Language Processing, Complex Networks, and Anomaly Detection. Formerly a postdoctoral research fellow, he applied advanced physics techniques to tackle real-world, data-heavy industry challenges. Before that, he was a particle physicist at the ATLAS Experiment of the Large Hadron Collider. Now, he’s focused on bringing more fun and curiosity to the world of science and research online.