Through a series of recent breakthroughs, deep learning has boosted the entire field of machine learning. Now, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.
By using concrete examples, minimal theory, and two production-ready Python frameworks--scikit-learn and TensorFlow--author Aurelien Geron helps you gain an intuitive understanding of the concepts and tools for building intelligent systems. You'll learn a range of techniques, starting with simple linear regression and progressing to deep neural networks. With exercises in each chapter to help you apply what you've learned, all you need is programming experience to get started.
* Explore the machine learning landscape, particularly neural nets
* Use scikit-learn to track an example machine-learning project end-to-end
* Explore several training models, including support vector machines, decision trees, random forests, and ensemble methods
* Use the TensorFlow library to build and train neural nets
* Dive into neural net architectures, including convolutional nets, recurrent nets, and deep reinforcement learning
* Learn techniques for training and scaling deep neural nets
* Apply practical code examples without acquiring excessive machine learning theory or algorithm details
Author(s): Aurélien Géron
Publisher: O'Reilly Media
Year: 2017
Language: English
Pages: 566
Contents
Preface
--- Fundamentals of Machine Learning
Machine Learning Landscape
What Is Machine Learning?
Why Use Machine Learning?
Types of Machine Learning Systems
Main Challenges of Machine Learning
Testing and Validating
Exercises
End-to-End ML Project
Working with Real Data
Look at the Big Picture
Get the Data
Discover & Visualize the Data to Gain Insights
Prepare the Data for Machine Learning Algorithms
Select and Train a Model
Fine-Tune Your Model
Launch, Monitor & Maintain the System
Try It Out!
Exercises
Classificatio
MNIST
Training a Binary Classifie
Performance Measures
Multiclass Classificatio
Error Analysis
Multilabel Classificatio
Multioutput Classificatio
Exercises
Training Models
Linear Regression
Gradient Descent
Polynomial Regression
Learning Curves
Regularized Linear Models
Logistic Regression
Exercises
SVMs
Linear SVM Classificatio
Nonlinear SVM Classificatio
SVM Regression
Under the Hood
Exercises
Decision Trees
Training and Visualizing a Decision Tree
Making Predictions
Estimating Class Probabilities
The CART Training Algorithm
Computational Complexity
Gini Impurity or Entropy?
Regularization Hyperparameters
Regression
Instability
Exercises
Ensemble Learning & Random Forests
Voting Classifier
Bagging and Pasting
Random Patches and Random Subspaces
Random Forests
Boosting
Stacking
Exercises
Dimensionality Reduction
The Curse of Dimensionality
Main Approaches for Dimensionality Reduction
PCA
Kernel PCA
LLE
Other Dimensionality Reduction Techniques
Exercises
--- Neural Networks & Deep Learning
Up & Running with TensorFlow
Installation
Creating Your First Graph and Running It in a Session
Managing Graphs
Lifecycle of a Node Value
Linear Regression with TensorFlow
Implementing Gradient Descent
Feeding Data to the Training Algorithm
Saving and Restoring Models
Visualizing the Graph and Training Curves Using TensorBoard
Name Scopes
Modularity
Sharing Variables
Exercises
Intro to ANNs
From Biological to Artificia Neurons
Training an MLP with TensorFlow’s High-Level API
Training a DNN Using Plain TensorFlow
Fine-Tuning Neural Network Hyperparameters
Exercises
Training Deep Neural Nets
Vanishing/Exploding Gradients Problems
Reusing Pretrained Layers
Faster Optimizers
Avoiding Overfittin Through Regularization
Practical Guidelines
Exercises
Distributing TensorFlow across Devices & Servers
Multiple Devices on a Single Machine
Multiple Devices Across Multiple Servers
Parallelizing Neural Networks on a TensorFlow Cluster
Exercises
Convolutional Neural Networks
The Architecture of the Visual Cortex
Convolutional Layer
Pooling Layer
CNN Architectures
Exercises
Recurrent Neural Networks
Recurrent Neurons
Basic RNNs in TensorFlow
Training RNNs
Deep RNNs
LSTM Cell
GRU Cell
Natural Language Processing
Exercises
Autoencoders
Efficie Data Representations
Performing PCA with an Undercomplete Linear Autoencoder
Stacked Autoencoders
Unsupervised Pretraining Using Stacked Autoencoders
Denoising Autoencoders
Sparse Autoencoders
Variational Autoencoders
Other Autoencoders
Exercises
Reinforcement Learning
Learning to Optimize Rewards
Policy Search
Introduction to OpenAI Gym
Neural Network Policies
Evaluating Actions: The Credit Assignment Problem
Policy Gradients
Markov Decision Processes
Temporal Differenc Learning and Q-Learning
Learning to Play Ms. Pac-Man Using Deep Q-Learning
Exercises
Thank You!
Solutions
Chapter 1: The Machine Learning Landscape
Chapter 2: End-to-End Machine Learning Project
Chapter 3: Classificatio
Chapter 4: Training Linear Models
Chapter 5: Support Vector Machines
Chapter 6: Decision Trees
Chapter 7: Ensemble Learning and Random Forests
Chapter 8: Dimensionality Reduction
Chapter 9: Up and Running with TensorFlow
Chapter 10: Introduction to Artificia Neural Networks
Chapter 11: Training Deep Neural Nets
Chapter 12: Distributing TensorFlow Across Devices and Servers
Chapter 13: Convolutional Neural Networks
Chapter 14: Recurrent Neural Networks
Chapter 15: Autoencoders
Chapter 16: Reinforcement Learning
ML Project Checklist
Frame the Problem & look at the Big Picture
Get the Data
Explore the Data
Prepare the Data
Short-List Promising Models
Fine-Tune the System
Present Your Solution
Launch!
SVM Dual Problem
Autodif
Manual Differentiatio
Symbolic Differentiatio
Numerical Differentiatio
Forward-Mode Autodif
Reverse-Mode Autodif
Other popular ANN Architectures
Hopfiel Networks
Boltzmann Machines
Restricted Boltzmann Machines
Deep Belief Nets
Self-Organizing Maps
Index