-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Butcher Yang edited this page Dec 30, 2017
·
2 revisions
Welcome v
- Who Is This Book For? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
- About Your Outcomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
- How to Read This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
- About the Book Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
- About Lessons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
- About LSTM Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
- About Prediction Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
- About Python Code Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
- About Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
- About Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
- Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
- 1 What are LSTMs 2
- 1.1 Sequence Prediction Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 1.2 Limitations of Multilayer Perceptrons . . . . . . . . . . . . . . . . . . . . . . . . 7
- 1.3 Promise of Recurrent Neural Networks . . . . . . . . . . . . . . . . . . . . . . . 9
- 1.4 The Long Short-Term Memory Network . . . . . . . . . . . . . . . . . . . . . . 10
- 1.5 Applications of LSTMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
- 1.6 Limitations of LSTMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
- 1.7 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
- 1.8 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
- 1.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
- 2 How to Train LSTMs 18
- 2.1 Backpropagation Training Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 19
- 2.2 Unrolling Recurrent Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . 19
- 2.3 Backpropagation Through Time . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
- 2.4 Truncated Backpropagation Through Time . . . . . . . . . . . . . . . . . . . . . 23
- 2.5 Con- gurations for Truncated BPTT . . . . . . . . . . . . . . . . . . . . . . . . . 23
- 2.6 Keras Implementation of TBPTT . . . . . . . . . . . . . . . . . . . . . . . . . . 24
- 2.7 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
- 2.8 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
- 2.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
- 3 How to Prepare Data for LSTMs 27
- 3.1 Prepare Numeric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
- 3.2 Prepare Categorical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
- 3.3 Prepare Sequences with Varied Lengths . . . . . . . . . . . . . . . . . . . . . . . 34
- 3.4 Sequence Prediction as Supervised Learning . . . . . . . . . . . . . . . . . . . . 36
- 3.5 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
- 3.6 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
- 3.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
- 4 How to Develop LSTMs in Keras 42
- 4.1 De- ne the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
- 4.2 Compile the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
- 4.3 Fit the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
- 4.4 Evaluate the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
- 4.5 Make Predictions on the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
- 4.6 LSTM State Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
- 4.7 Examples of Preparing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
- 4.8 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
- 4.9 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
- 4.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
- 5 Models for Sequence Prediction 54
- 5.1 Sequence Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
- 5.2 Models for Sequence Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
- 5.3 Mapping Applications to Models . . . . . . . . . . . . . . . . . . . . . . . . . . 60
- 5.4 Cardinality from Time Steps (not Features!) . . . . . . . . . . . . . . . . . . . . 61
- 5.5 Two Common Misunderstandings . . . . . . . . . . . . . . . . . . . . . . . . . . 62
- 5.6 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
- 5.7 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
- 5.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
- 6 How to Develop Vanilla LSTMs 65
- 6.1 The Vanilla LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
- CONTENTS iv
- 6.2 Echo Sequence Prediction Problem . . . . . . . . . . . . . . . . . . . . . . . . . 67
- 6.3 De- ne and Compile the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
- 6.4 Fit the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
- 6.5 Evaluate the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
- 6.6 Make Predictions With the Model . . . . . . . . . . . . . . . . . . . . . . . . . . 74
- 6.7 Complete Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
- 6.8 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
- 6.9 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
- 6.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
- 7 How to Develop Stacked LSTMs 77
- 7.1 The Stacked LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
- 7.2 Damped Sine Wave Prediction Problem . . . . . . . . . . . . . . . . . . . . . . . 81
- 7.3 De- ne and Compile the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
- 7.4 Fit the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
- 7.5 Evaluate the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
- 7.6 Make Predictions with the Model . . . . . . . . . . . . . . . . . . . . . . . . . . 88
- 7.7 Complete Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
- 7.8 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
- 7.9 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
- 7.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
- 8 How to Develop CNN LSTMs 92
- 8.1 The CNN LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
- 8.2 Moving Square Video Prediction Problem . . . . . . . . . . . . . . . . . . . . . 96
- 8.3 De- ne and Compile the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
- 8.4 Fit the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
- 8.5 Evaluate the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
- 8.6 Make Predictions With the Model . . . . . . . . . . . . . . . . . . . . . . . . . . 102
- 8.7 Complete Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
- 8.8 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
- 8.9 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
- 8.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
- 9 How to Develop Encoder-Decoder LSTMs 107
- 9.1 Lesson Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
- 9.2 The Encoder-Decoder LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
- 9.3 Addition Prediction Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
- 9.4 De- ne and Compile the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
- 9.5 Fit the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
- 9.6 Evaluate the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
- 9.7 Make Predictions with the Model . . . . . . . . . . . . . . . . . . . . . . . . . . 122
- 9.8 Complete Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
- 9.9 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
- 9.10 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
- 9.11 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
- 10 How to Develop Bidirectional LSTMs 128
- 10.1 The Bidirectional LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
- 10.2 Cumulative Sum Prediction Problem . . . . . . . . . . . . . . . . . . . . . . . . 131
- 10.3 De- ne and Compile the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
- 10.4 Fit the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
- 10.5 Evaluate the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
- 10.6 Make Predictions with the Model . . . . . . . . . . . . . . . . . . . . . . . . . . 136
- 10.7 Complete Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
- 10.8 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
- 10.9 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
- 10.10Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
- 11 How to Develop Generative LSTMs 140
- 11.1 The Generative LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
- 11.2 Shape Generation Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
- 11.3 De- ne and Compile the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
- 11.4 Fit the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
- 11.5 Make Predictions with the Model . . . . . . . . . . . . . . . . . . . . . . . . . . 150
- 11.6 Evaluate the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
- 11.7 Complete Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
- 11.8 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
- 11.9 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
- 11.10Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
- IV Advanced 161
- 12 How to Diagnose and Tune LSTMs 162
- 12.1 Evaluating LSTM Models Robustly . . . . . . . . . . . . . . . . . . . . . . . . . 162
- 12.2 Diagnosing Under- tting and Over- tting . . . . . . . . . . . . . . . . . . . . . . 164
- 12.3 Tune Problem Framing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
- 12.4 Tune Model Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
- 12.5 Tune Learning Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
- 12.6 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
- 12.7 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
- 12.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
- 13 How to Make Predictions with LSTMs 188
- 13.1 Finalize a LSTM Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
- 13.2 Save LSTM Models to File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
- 13.3 Make Predictions on New Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
- 13.4 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
- 13.5 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
- 13.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
- 14 How to Update LSTM Models 197
- 14.1 What About New Data? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
- 14.2 What Is LSTM Model Updating? . . . . . . . . . . . . . . . . . . . . . . . . . . 198
- 14.3 5-Step Process to Update LSTM Models . . . . . . . . . . . . . . . . . . . . . . 198
- 14.4 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
- 14.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202