Preface |
Acknowledgments |
About this book |
About the author |
About the cover |
Fundamentals of deep learning / Part 1: |
What is deep learning? / 1: |
Artificial intelligence, machine learning, and deep learning / 1.1: |
Artificial intelligence |
Machine learning |
Learning representations from data |
The "deep" in deep learning |
Understanding how deep learning works, in three figures |
What deep learning has achieved so far |
Don't believe the short-term hype |
The promise of AI |
Before deep learning: a brief history of machine learning / 1.2: |
Probabilistic modeling |
Early neural networks |
Kernel methods |
Decision trees, random forests, and gradient boosting machines |
Back to neural networks |
What makes deep learning different |
The modern machine-learning landscape |
Why deep learning? Why now? / 1.3: |
Hardware |
Data |
Algorithms |
A new wave of investment |
The democratization of deep learning |
Will it last? |
Before we begin: the mathematical building blocks of neural networks / 2: |
A first look at a neural network / 2.1: |
Data representations for neural networks / 2.2: |
Scalars (0D tensors) |
Vectors (1D tensors) |
Matrices (2D tensors) |
3D tensors and higher-dimensional tensors |
Key attributes |
Manipulating tensors in Numpy |
The notion of data batches |
Real-world examples of data tensors |
Vector data |
Timeseries data or sequence data |
Image data |
Video data |
The gears of neural networks: tensor operations / 2.3: |
Element-wise operations |
Broadcasting |
Tensor dot |
Tensor reshaping |
Geometric interpretation of tensor operations |
A geometric interpretation of deep learning |
The engine of neural networks: gradient-based optimization / 2.4: |
What's a derivative? |
Derivative of a tensor operation: the gradient |
Stochastic gradient descent |
Chaining derivatives: the Backpropagation algorithm |
Looking back at our first example / 2.5: |
Chapter summary / 2.6: |
Getting started with neural networks / 3: |
Anatomy of a neural network / 3.1: |
Layers: the building blocks of deep learning |
Models: networks of layers |
Loss functions and optimizers: keys to configuring the learning process |
Introduction to Keras / 3.2: |
Keras, TensorFlow, Theano, and CNTK |
Developing with Keras: a quick overview |
Setting up a deep-learning workstation / 3.3: |
Jupyter notebooks: the preferred way to run deep-learning experiments |
Getting Keras running: two options |
Running deep-learning jobs in the cloud: pros and cons |
What is the best GPU for deep learning? |
Classifying movie reviews: a binary classification example / 3.4: |
The IMDB dataset |
Preparing the data |
Building your network |
Validating your approach |
Using a trained network to generate predictions on new data |
Further experiments |
Wrapping up |
Classifying newswires: a multiclass classification example / 3.5: |
The Reuters dataset |
Generating predictions on new data |
A different way to handle the labels and the loss |
The importance of having sufficiently large intermediate layers |
Predicting house prices: a regression example / 3.6: |
The Boston Housing Price dataset |
Validating your approach using K-fold validation |
Fundamentals of machine learning / 3.7: |
Four branches of machine learning / 4.1: |
Supervised learning |
Unsupervised learning |
Self-supervised learning |
Reinforcement learning |
Evaluating machine-learning models / 4.2: |
Training validation, and test sets |
Things to keep in mind |
Data preprocessing, feature engineering, and feature learning / 4.3: |
Data preprocessing for neural networks |
Feature engineering |
Overfitting and underfitting / 4.4: |
Reducing the network's size |
Adding weight regularization |
Adding dropout |
The universal workflow of machine learning / 4.5: |
Defining the problem and assembling a dataset |
Choosing a measure of success |
Deciding on an evaluation protocol |
Preparing your data |
Developing a model that does better than a baseline |
Scaling up: developing a model that overfits |
Regularizing your model and luning your hyperparameters |
Deep Learning in Practice / 4.6: |
Deep learning for computer vision / 5: |
Introduction to convnets / 5.1: |
The convolution operation |
The max-pooling operation |
Training a convnet from scratch on a small dataset / 5.2: |
The relevance of deep learning for small-data problems |
Downloading the data |
Data preprocessing |
Using data augmentation |
Using a pretrained convnet / 5.3: |
Feature extraction |
Fine-luning |
Visualizing what convnets learn / 5.4: |
Visualizing intermediate activations |
Visualizing convnet filters |
Visualizing heatmaps of class activation |
Deep learning for text and sequences / 5.5: |
Working with text data / 6.1: |
One-hot encoding of words and characters |
Using word embeddings |
Putting it all together: from raw text to word embeddings |
Understanding recurrent neural networks / 6.2: |
A recurrent layer in Keras |
Understanding the LSTM and GRU layers |
A concrete LSTM example in Keras |
Advanced use of recurrent neural networks / 6.3: |
A temperature-forecasting problem |
A common-sense, non-machine-learning baseline |
A basic machine-learning approach |
A first recurrent baseline |
Using recurrent dropout to fight overfitting |
Stacking recurrent layers |
Using bidirectional RNNs |
Going even further |
Sequence processing with convnets / 6.4: |
Understanding 1D convolution for sequence data |
1D pooling for sequence data |
Implementing a 1D convnet |
Combining CNNs and RNNs to process long sequences |
Advanced deep-learning best practices / 6.5: |
Going beyond the Sequential model: the Keras functional API / 7.1: |
Introduction to the functional API |
Multi-input models |
Multi-output models |
Directed acyclic graphs of layers |
Layer weight sharing |
Models as layers |
Inspecting and monitoring deep-learning models using Keras callbacks and TensorBoard / 7.2: |
Using callbacks to act on a model during training |
Introduction to TensorBoard: the TensorFlow visualization framework |
Getting the most out of your models / 7.3: |
Advanced architecture patterns |
Hyperparameter optimization |
Model ensembling |
Generative deep learning / 7.4: |
Text generation with LSTM / 8.1: |
A brief history of generative recurrent networks |
How do you generate sequence data? |
The importance of the sampling strategy |
Implementing character-level LSTM text generation |
DeepDream / 8.2: |
Implementing DeepDream in Keras |
Neural style transfer / 8.3: |
The content loss |
The style loss |
Neural style transfer in Keras |
Generating images with variational autoencoders / 8.4: |
Sampling from latent spaces of images |
Concept vectors for image editing |
Variational autoencoders |
Introduction to generative adversarial networks / 8.5: |
A schematic GAN implementation |
A bag of tricks |
The generator |
The discriminator |
The adversarial network |
How to train your DCGAN |
Conclusions / 8.6: |
Key concepts in review / 9.1: |
Various approaches to AI |
What makes deep learning special within the field of machine learning |
How to think about deep learning |
Key enabling technologies |
The universal machine-learning workflow |
Key network architectures |
The space of possibilities |
The limitations of deep learning / 9.2: |
The risk of anthropomorphizing machine-learning models |
Local generalization vs. extreme generalization |
The future of deep learning / 9.3: |
Models as programs |
Beyond backpropagation and differentiable layers |
Automated machine learning |
Lifelong learning and modular subroutine reuse |
The long-term vision |
Staying up to date in a fast-moving field / 9.4: |
Practice on real-world problems using Kaggle |
Read about the latest developments on arXiv |
Explore the Kerns ecosystem |
Final words / 9.5: |
Installing Keras and its dependencies on Ubuntu / Appendix A: |
Running Jupyter notebooks on an EC2 GPU instance / Appendix B: |
Index |
Preface |
Acknowledgments |
About this book |
About the author |
About the cover |
Fundamentals of deep learning / Part 1: |