Preface
A Brief History of Deep Learning
Why Now?
What Do You Need to Know?
How This Book Is Structured
Conventions Used in This Book
Accompanying Code
O’Reilly Safari
How to Contact Us
Acknowledgments
Tools and Techniques
1.1. Types of Neural Networks
1.2. Acquiring Data
1.3. Preprocessing Data
Getting Unstuck
2.1. Determining That You Are Stuck
2.2. Solving Runtime Errors
2.3. Checking Intermediate Results
2.4. Picking the Right Activation Function (for Your Final Layer)
2.5. Regularization and Dropout
2.6. Network Structure, Batch Size, and Learning Rate
Calculating Text Similarity Using Word Embeddings
3.1. Using Pretrained Word Embeddings to Find Word Similarity
3.2. Word2vec Math
3.3. Visualizing Word Embeddings
3.4. Finding Entity Classes in Embeddings
3.5. Calculating Semantic Distances Inside a Class
3.6. Visualizing Country Data on a Map
Building a Recommender System Based on Outgoing Wikipedia Links
4.1. Collecting the Data
4.2. Training Movie Embeddings
4.3. Building a Movie Recommender
4.4. Predicting Simple Movie Properties
Generating Text in the Style of an Example Text
5.1. Acquiring the Text of Public Domain Books
5.2. Generating Shakespeare-Like Texts
5.3. Writing Code Using RNNs
5.4. Controlling the Temperature of the Output
5.5. Visualizing Recurrent Network Activations
Question Matching
6.1. Acquiring Data from Stack Exchange
6.2. Exploring Data Using Pandas
6.3. Using Keras to Featurize Text
6.4. Building a Question/Answer Model
6.5. Training a Model with Pandas
6.6. Checking Similarities
Suggesting Emojis
7.1. Building a Simple Sentiment Classifier
7.2. Inspecting a Simple Classifier
7.3. Using a Convolutional Network for Sentiment Analysis
7.4. Collecting Twitter Data
7.5. A Simple Emoji Predictor
7.6. Dropout and Multiple Windows
7.7. Building a Word-Level Model
7.8. Constructing Your Own Embeddings
7.9. Using a Recurrent Neural Network for Classification
7.10. Visualizing (Dis)Agreement
7.11. Combining Models
Sequence-to-Sequence Mapping
8.1. Training a Simple Sequence-to-Sequence Model
8.2. Extracting Dialogue from Texts
8.3. Handling an Open Vocabulary
8.4. Training a seq2seq Chatbot
Reusing a Pretrained Image Recognition Network
9.1. Loading a Pretrained Network
9.2. Preprocessing Images
9.3. Running Inference on Images
9.4. Using the Flickr API to Collect a Set of Labeled Images
9.5. Building a Classifier That Can Tell Cats from Dogs
9.6. Improving Search Results
9.7. Retraining Image Recognition Networks
Building an Inverse Image Search Service
10.1. Acquiring Images from Wikipedia
10.2. Projecting Images into an N-Dimensional Space
10.3. Finding Nearest Neighbors in High-Dimensional Spaces
10.4. Exploring Local Neighborhoods in Embeddings
Detecting Multiple Images
11.1. Detecting Multiple Images Using a Pretrained Classifier
11.2. Using Faster RCNN for Object Detection
11.3. Running Faster RCNN over Our Own Images
Image Style
12.1. Visualizing CNN Activations
12.2. Octaves and Scaling
12.3. Visualizing What a Neural Network Almost Sees
12.4. Capturing the Style of an Image
12.5. Improving the Loss Function to Increase Image Coherence
12.6. Transferring the Style to a Different Image
12.7. Style Interpolation
Generating Images with Autoencoders
13.1. Importing Drawings from Google Quick Draw
13.2. Creating an Autoencoder for Images
13.3. Visualizing Autoencoder Results
13.4. Sampling Images from a Correct Distribution
13.5. Visualizing a Variational Autoencoder Space
13.6. Conditional Variational Autoencoders
Generating Icons Using Deep Nets
14.1. Acquiring Icons for Training
14.2. Converting the Icons to a Tensor Representation
14.3. Using a Variational Autoencoder to Generate Icons
14.4. Using Data Augmentation to Improve the Autoencoder’s Performance
14.5. Building a Generative Adversarial Network
14.6. Training Generative Adversarial Networks
14.7. Showing the Icons the GAN Produces
14.8. Encoding Icons as Drawing Instructions
14.9. Training an RNN to Draw Icons
14.10. Generating Icons Using an RNN
Music and Deep Learning
15.1. Creating a Training Set for Music Classification
15.2. Training a Music Genre Detector
15.3. Visualizing Confusion
15.4. Indexing Existing Music
15.5. Setting Up Spotify API Access
15.6. Collecting Playlists and Songs from Spotify
15.7. Training a Music Recommender
15.8. Recommending Songs Using a Word2vec Model
Productionizing Machine Learning Systems
16.1. Using Scikit-Learn’s Nearest Neighbors for Embeddings
16.2. Use Postgres to Store Embeddings
16.3. Populating and Querying Embeddings Stored in Postgres
16.4. Storing High-Dimensional Models in Postgres
16.5. Writing Microservices in Python
16.6. Deploying a Keras Model Using a Microservice
16.7. Calling a Microservice from a Web Framework
16.8. TensorFlow seq2seq models
16.9. Running Deep Learning Models in the Browser
16.10. Running a Keras Model Using TensorFlow Serving
16.11. Using a Keras Model from iOS
Index