This book covers both classical and modern models in deep learning. The chapters of this book span three categories: The basics of neural networks: Many traditional machine learning models can be understood as special cases of neural networks. An emphasis is placed in the first two chapters on understanding the relationship between traditional machine learning and neural networks. Support vector machines, linear/logistic regression, singular value decomposition, matrix factorization, and recommender systems are shown to be special cases of neural networks. These methods are studied together with recent feature engineering methods like word2vec. Fundamentals of neural networks: A detailed discussion of training and regularization is provided in Chapters 3 and 4. Chapters 5 and 6 present radial-basis function (RBF) networks and restricted Boltzmann machines. Advanced topics in neural networks: Chapters 7 and 8 discuss recurrent neural networks and convolutional neural networks. Several advanced topics like deep reinforcement learning, neural Turing machines, Kohonen self-organizing maps, and generative adversarial networks are introduced in Chapters 9 and 10. The book is written for graduate students, researchers, and practitioners. Numerous exercises are available along with a solution manual to aid in classroom teaching. Where possible, an application-centric view is highlighted in order to provide an understanding of the practical uses of each class of techniques.
Author(s): Charu C. Aggarwal
Publisher: Springer
Year: 2018
Language: English
Pages: 496
Preface
Acknowledgments
Contents
Author Biogra
phy
1 An Introduction to Neural Networks
1.1 Introduction
1.1.1 Humans Versus Computers: Stretching the Limitsof Artificial Intelligence
1.2 The Basic Architecture of Neural Networks
1.2.1 Single Computational Layer: The Perceptron
1.2.1.1 What Objective Function Is the Perceptron Optimizing?
1.2.1.2 Relationship with Support Vector Machines
1.2.1.3 Choice of Activation and Loss Functions
1.2.1.4 Choice and Number of Output Nodes
1.2.1.5 Choice of Loss Function
1.2.1.6 Some Useful Derivatives of Activation Functions
1.2.2 Multilayer Neural Networks
1.2.3 The Multilayer Network as a Computational Graph
1.3 Training a Neural Network with Backpropagation
1.4 Practical Issues in Neural Network Training
1.4.1 The Problem of Overfitting
1.4.1.1 Regularization
1.4.1.2 Neural Architecture and Parameter Sharing
1.4.1.3 Early Stopping
1.4.1.4 Trading Off Breadth for Depth
1.4.1.5 Ensemble Methods
1.4.2 The Vanishing and Exploding Gradient Problems
1.4.3 Difficulties in Convergence
1.4.4 Local and Spurious Optima
1.4.5 Computational Challenges
1.5 The Secrets to the Power of Function Composition
1.5.1 The Importance of Nonlinear Activation
1.5.2 Reducing Parameter Requirements with Depth
1.5.3 Unconventional Neural Architectures
1.5.3.1 Blurring the Distinctions Between Input, Hidden,and Output Layers
1.5.3.2 Unconventional Operations and Sum-Product Networks
1.6 Common Neural Architectures
1.6.1 Simulating Basic Machine Learning with Shallow Models
1.6.2 Radial Basis Function Networks
1.6.3 Restricted Boltzmann Machines
1.6.4 Recurrent Neural Networks
1.6.5 Convolutional Neural Networks
1.6.6 Hierarchical Feature Engineering and Pretrained Models
1.7 Advanced Topics
1.7.1 Reinforcement Learning
1.7.2 Separating Data Storage and Computations
1.7.3 Generative Adversarial Networks
1.8 Two Notable Benchmarks
1.8.1 The MNIST Database of Handwritten Digits
1.8.2 The ImageNet Database
1.9 Summary
1.10 Bibliographic Notes
1.10.1 Video Lectures
1.10.2 Software Resources
1.11 Exercises
2 Machine Learning with Shallow Neural Networks
2.1 Introduction
2.2 Neural Architectures for Binary Classification Models
2.2.1 Revisiting the Perceptron
2.2.2 Least-Squares Regression
2.2.2.1 Widrow-Hoff Learning
2.2.2.2 Closed Form Solutions
2.2.3 Logistic Regression
2.2.3.1 Alternative Choices of Activation and Loss
2.2.4 Support Vector Machines
2.3 Neural Architectures for Multiclass Models
2.3.1 Multiclass Perceptron
2.3.2 Weston-Watkins SVM
2.3.3 Multinomial Logistic Regression (Softmax Classifier)
2.3.4 Hierarchical Softmax for Many Classes
2.4 Backpropagated Saliency for Feature Selection
2.5 Matrix Factorization with Autoencoders
2.5.1 Autoencoder: Basic Principles
2.5.1.1 Autoencoder with a Single Hidden Layer
2.5.1.2 Connections with Singular Value Decomposition
2.5.1.3 Sharing Weights in Encoder and Decoder
2.5.1.4 Other Matrix Factorization Methods
2.5.2 Nonlinear Activations
2.5.3 Deep Autoencoders
2.5.4 Application to Outlier Detection
2.5.5 When the Hidden Layer Is Broader than the Input Layer
2.5.5.1 Sparse Feature Learning
2.5.6 Other Applications
2.5.7 Recommender Systems: Row Index to Row Value Prediction
2.5.8 Discussion
2.6 Word2vec: An Application of Simple Neural Architectures
2.6.1 Neural Embedding with Continuous Bag of Words
2.6.2 Neural Embedding with Skip-Gram Model
2.6.3 Word2vec (SGNS) Is Logistic Matrix Factorization
2.6.4 Vanilla Skip-Gram Is Multinomial Matrix Factorization
2.7 Simple Neural Architectures for Graph Embeddings
2.7.1 Handling Arbitrary Edge Counts
2.7.2 Multinomial Model
2.7.3 Connections with DeepWalk and Node2vec
2.8 Summary
2.9 Bibliographic Notes
2.9.1 Software Resources
2.10 Exercises
3 Training Deep Neural Networks
3.1 Introduction
3.2 Backpropagation: The Gory Details
3.2.1 Backpropagation with the Computational Graph Abstraction
3.2.2 Dynamic Programming to the Rescue
3.2.3 Backpropagation with Post-Activation Variables
3.2.4 Backpropagation with Pre-activation Variables
3.2.5 Examples of Updates for Various Activations
3.2.5.1 The Special Case of Softmax
3.2.6 A Decoupled View of Vector-Centric Backpropagation
3.2.7 Loss Functions on Multiple Output Nodes and Hidden Nodes
3.2.8 Mini-Batch Stochastic Gradient Descent
3.2.9 Backpropagation Tricks for Handling Shared Weights
3.2.10 Checking the Correctness of Gradient Computation
3.3 Setup and Initialization Issues
3.3.1 Tuning Hyperparameters
3.3.2 Feature Preprocessing
3.3.3 Initialization
3.4 The Vanishing and Exploding Gradient Problems
3.4.1 Geometric Understanding of the Effect of Gradient Ratios
3.4.2 A Partial Fix with Activation Function Choice
3.4.3 Dying Neurons and ``Brain Damage''
3.4.3.1 Leaky ReLU
3.4.3.2 Maxout
3.5 Gradient-Descent Strategies
3.5.1 Learning Rate Decay
3.5.2 Momentum-Based Learning
3.5.2.1 Nesterov Momentum
3.5.3 Parameter-Specific Learning Rates
3.5.3.1 AdaGrad
3.5.3.2 RMSProp
3.5.3.3 RMSProp with Nesterov Momentum
3.5.3.4 AdaDelta
3.5.3.5 Adam
3.5.4 Cliffs and Higher-Order Instability
3.5.5 Gradient Clipping
3.5.6 Second-Order Derivatives
3.5.6.1 Conjugate Gradients and Hessian-Free Optimization
3.5.6.2 Quasi-Newton Methods and BFGS
3.5.6.3 Problems with Second-Order Methods: Saddle Points
3.5.7 Polyak Averaging
3.5.8 Local and Spurious Minima
3.6 Batch Normalization
3.7 Practical Tricks for Acceleration and Compression
3.7.1 GPU Acceleration
3.7.2 Parallel and Distributed Implementations
3.7.3 Algorithmic Tricks for Model Compression
3.8 Summary
3.9 Bibliographic Notes
3.9.1 Software Resources
3.10 Exercises
4 Teaching Deep Learners to Generalize
4.1 Introduction
4.2 The Bias-Variance Trade-Off
4.2.1 Formal View
4.3 Generalization Issues in Model Tuning and Evaluation
4.3.1 Evaluating with Hold-Out and Cross-Validation
4.3.2 Issues with Training at Scale
4.3.3 How to Detect Need to Collect More Data
4.4 Penalty-Based Regularization
4.4.1 Connections with Noise Injection
4.4.2 L1-Regularization
4.4.3 L1- or L2-Regularization?
4.4.4 Penalizing Hidden Units: Learning Sparse Representations
4.5 Ensemble Methods
4.5.1 Bagging and Subsampling
4.5.2 Parametric Model Selection and Averaging
4.5.3 Randomized Connection Dropping
4.5.4 Dropout
4.5.5 Data Perturbation Ensembles
4.6 Early Stopping
4.6.1 Understanding Early Stopping from the Variance Perspective
4.7 Unsupervised Pretraining
4.7.1 Variations of Unsupervised Pretraining
4.7.2 What About Supervised Pretraining?
4.8 Continuation and Curriculum Learning
4.8.1 Continuation Learning
4.8.2 Curriculum Learning
4.9 Parameter Sharing
4.10 Regularization in Unsupervised Applications
4.10.1 Value-Based Penalization: Sparse Autoencoders
4.10.2 Noise Injection: De-noising Autoencoders
4.10.3 Gradient-Based Penalization: Contractive Autoencoders
4.10.4 Hidden Probabilistic Structure: Variational Autoencoders
4.10.4.1 Reconstruction and Generative Sampling
4.10.4.2 Conditional Variational Autoencoders
4.10.4.3 Relationship with Generative Adversarial Networks
4.11 Summary
4.12 Bibliographic Notes
4.12.1 Software Resources
4.13 Exercises
5 Radial Basis Function Networks
5.1 Introduction
5.2 Training an RBF Network
5.2.1 Training the Hidden Layer
5.2.2 Training the Output Layer
5.2.2.1 Expression with Pseudo-Inverse
5.2.3 Orthogonal Least-Squares Algorithm
5.2.4 Fully Supervised Learning
5.3 Variations and Special Cases of RBF Networks
5.3.1 Classification with Perceptron Criterion
5.3.2 Classification with Hinge Loss
5.3.3 Example of Linear Separability Promoted by RBF
5.3.4 Application to Interpolation
5.4 Relationship with Kernel Methods
5.4.1 Kernel Regression as a Special Case of RBF Networks
5.4.2 Kernel SVM as a Special Case of RBF Networks
5.4.3 Observations
5.5 Summary
5.6 Bibliographic Notes
5.7 Exercises
6 Restricted Boltzmann Machines
6.1 Introduction
6.1.1 Historical Perspective
6.2 Hopfield Networks
6.2.1 Optimal State Configurations of a Trained Network
6.2.2 Training a Hopfield Network
6.2.3 Building a Toy Recommender and Its Limitations
6.2.4 Increasing the Expressive Power of the Hopfield Network
6.3 The Boltzmann Machine
6.3.1 How a Boltzmann Machine Generates Data
6.3.2 Learning the Weights of a Boltzmann Machine
6.4 Restricted Boltzmann Machines
6.4.1 Training the RBM
6.4.2 Contrastive Divergence Algorithm
6.4.3 Practical Issues and Improvisations
6.5 Applications of Restricted Boltzmann Machines
6.5.1 Dimensionality Reduction and Data Reconstruction
6.5.2 RBMs for Collaborative Filtering
6.5.3 Using RBMs for Classification
6.5.4 Topic Models with RBMs
6.5.5 RBMs for Machine Learning with Multimodal Data
6.6 Using RBMs Beyond Binary Data Types
6.7 Stacking Restricted Boltzmann Machines
6.7.1 Unsupervised Learning
6.7.2 Supervised Learning
6.7.3 Deep Boltzmann Machines and Deep Belief Networks
6.8 Summary
6.9 Bibliographic Notes
6.10 Exercises
7 Recurrent Neural Networks
7.1 Introduction
7.1.1 Expressiveness of Recurrent Networks
7.2 The Architecture of Recurrent Neural Networks
7.2.1 Language Modeling Example of RNN
7.2.1.1 Generating a Language Sample
7.2.2 Backpropagation Through Time
7.2.3 Bidirectional Recurrent Networks
7.2.4 Multilayer Recurrent Networks
7.3 The Challenges of Training Recurrent Networks
7.3.1 Layer Normalization
7.4 Echo-State Networks
7.5 Long Short-Term Memory (LSTM)
7.6 Gated Recurrent Units (GRUs)
7.7 Applications of Recurrent Neural Networks
7.7.1 Application to Automatic Image Captioning
7.7.2 Sequence-to-Sequence Learning and Machine Translation
7.7.2.1 Question-Answering Systems
7.7.3 Application to Sentence-Level Classification
7.7.4 Token-Level Classification with Linguistic Features
7.7.5 Time-Series Forecasting and Prediction
7.7.6 Temporal Recommender Systems
7.7.7 Secondary Protein Structure Prediction
7.7.8 End-to-End Speech Recognition
7.7.9 Handwriting Recognition
7.8 Summary
7.9 Bibliographic Notes
7.9.1 Software Resources
7.10 Exercises
8 Convolutional Neural Networks
8.1 Introduction
8.1.1 Historical Perspective and Biological Inspiration
8.1.2 Broader Observations About Convolutional Neural Networks
8.2 The Basic Structure of a Convolutional Network
8.2.1 Padding
8.2.2 Strides
8.2.3 Typical Settings
8.2.4 The ReLU Layer
8.2.5 Pooling
8.2.6 Fully Connected Layers
8.2.7 The Interleaving Between Layers
8.2.8 Local Response Normalization
8.2.9 Hierarchical Feature Engineering
8.3 Training a Convolutional Network
8.3.1 Backpropagating Through Convolutions
8.3.2 Backpropagation as Convolution with Inverted/Transposed Filter
8.3.3 Convolution/Backpropagation as Matrix Multiplications
8.3.4 Data Augmentation
8.4 Case Studies of Convolutional Architectures
8.4.1 AlexNet
8.4.2 ZFNet
8.4.3 VGG
8.4.4 GoogLeNet
8.4.5 ResNet
8.4.6 The Effects of Depth
8.4.7 Pretrained Models
8.5 Visualization and Unsupervised Learning
8.5.1 Visualizing the Features of a Trained Network
8.5.2 Convolutional Autoencoders
8.6 Applications of Convolutional Networks
8.6.1 Content-Based Image Retrieval
8.6.2 Object Localization
8.6.3 Object Detection
8.6.4 Natural Language and Sequence Learning
8.6.5 Video Classification
8.7 Summary
8.8 Bibliographic Notes
8.8.1 Software Resources and Data Sets
8.9 Exercises
9 Deep Reinforcement Learning
9.1 Introduction
9.2 Stateless Algorithms: Multi-Armed Bandits
9.2.1 Naïve Algorithm
9.2.2 ε-Greedy Algorithm
9.2.3 Upper Bounding Methods
9.3 The Basic Framework of Reinforcement Learning
9.3.1 Challenges of Reinforcement Learning
9.3.2 Simple Reinforcement Learning for Tic-Tac-Toe
9.3.3 Role of Deep Learning and a Straw-Man Algorithm
9.4 Bootstrapping for Value Function Learning
9.4.1 Deep Learning Models as Function Approximators
9.4.2 Example: Neural Network for Atari Setting
9.4.3 On-Policy Versus Off-Policy Methods: SARSA
9.4.4 Modeling States Versus State-Action Pairs
9.5 Policy Gradient Methods
9.5.1 Finite Difference Methods
9.5.2 Likelihood Ratio Methods
9.5.3 Combining Supervised Learning with Policy Gradients
9.5.4 Actor-Critic Methods
9.5.5 Continuous Action Spaces
9.5.6 Advantages and Disadvantages of Policy Gradients
9.6 Monte Carlo Tree Search
9.7 Case Studies
9.7.1 AlphaGo: Championship Level Play at Go
9.7.1.1 Alpha Zero: Enhancements to Zero Human Knowledge
9.7.2 Self-Learning Robots
9.7.2.1 Deep Learning of Locomotion Skills
9.7.2.2 Deep Learning of Visuomotor Skills
9.7.3 Building Conversational Systems: Deep Learning for Chatbots
9.7.4 Self-Driving Cars
9.7.5 Inferring Neural Architectures with Reinforcement Learning
9.8 Practical Challenges Associated with Safety
9.9 Summary
9.10 Bibliographic Notes
9.10.1 Software Resources and Testbeds
9.11 Exercises
10 Advanced Topics in Deep Learning
10.1 Introduction
10.2 Attention Mechanisms
10.2.1 Recurrent Models of Visual Attention
10.2.1.1 Application to Image Captioning
10.2.2 Attention Mechanisms for Machine Translation
10.3 Neural Networks with External Memory
10.3.1 A Fantasy Video Game: Sorting by Example
10.3.1.1 Implementing Swaps with Memory Operations
10.3.2 Neural Turing Machines
10.3.3 Differentiable Neural Computer: A Brief Overview
10.4 Generative Adversarial Networks (GANs)
10.4.1 Training a Generative Adversarial Network
10.4.2 Comparison with Variational Autoencoder
10.4.3 Using GANs for Generating Image Data
10.4.4 Conditional Generative Adversarial Networks
10.5 Competitive Learning
10.5.1 Vector Quantization
10.5.2 Kohonen Self-Organizing Map
10.6 Limitations of Neural Networks
10.6.1 An Aspirational Goal: One-Shot Learning
10.6.2 An Aspirational Goal: Energy-Efficient Learning
10.7 Summary
10.8 Bibliographic Notes
10.8.1 Software Resources
10.9 Exercises
Bibliography
Index