Python 深度學習與項目實戰
內容描述
本書基於Python以及兩個深度學習框架Keras與TensorFlow,講述深度學習在實際項目中的應用。
本書共10章,首先介紹線性回歸模型、邏輯回歸模型、Softmax多分類器,然後講述全連接神經網絡、神經網絡模型的優化、捲積神經網絡、循環神經網絡,最後討論自編碼模型、對抗生成網絡、深度強化學習。
本書結合電腦視覺、自然語言處理、金融領域等方面的項目,系統講述深度學習技術,可操作性強。
目錄大綱
目錄
第一部分 基礎知識
第1章 線性回歸模型 3
1.1 線性回歸詳解 3
1.1.1 數據集的構建 3
1.1.2 線性回歸模型的構建 4
1.1.3 損失函數詳解 4
1.2 梯度下降算法 5
1.3 求損失函數的最小值 8
1.4 線性回歸代碼實戰 9
1.4.1 線性回歸模型的構建與訓練 9
1.4.2 復雜線性回歸模型的構建 14
1.4.3 使用正則項防止過擬合 16
1.5 線性回歸項目實戰 18
1.5.1 波士頓房價數據集簡介 18
1.5.2 數據集特徵值的標準化 18
1.5.3 線性回歸模型的構建與訓練 20
1.6 本章小結 21
第2章 邏輯回歸模型 22
2.1 邏輯回歸詳解 22
2.1.1 Sigmoid函數 22
2.1.2 邏輯回歸模型的工作原理 24
2.1.3 損失函數的構建 25
2.1.4 二元交叉熵函數的代碼實戰 27
2.1.5 求模型的最優參數 27
2.2 邏輯回歸項目實戰 29
2.2.1 泰坦尼克數據集簡介 29
2.2.2 數據集的加載 30
2.2.3 模型的構建與訓練 30
2.2.4 模型的評估 32
2.2.5 使用矩陣的方式加速模型的訓練 33
2.3 邏輯回歸模型與神經網絡的聯系 35
2.4 本章小結 36
第3章 Softmax多分類器 37
3.1 Softmax函數詳解 37
3.2 Softmax多分類器詳解 39
3.2.1 獨熱編碼詳解 39
3.2.2 Softmax多分類器工作原理 40
3.2.3 多元交叉熵函數詳解 41
3.2.4 多元交叉熵函數的代碼實戰 42
3.3 數據集的預處理 43
3.3.1 MNIST數據集詳解 43
3.3.2 數據集特徵值的歸一化 44
3.3.3 圖片的扁平化 45
3.3.4 標簽值的獨熱編碼處理 46
3.4 Softmax多分類器實戰 47
3.4.1 MNIST數據集的加載與預處理 47
3.4.2 Softmax多分類器模型的構建 48
3.4.3 Softmax多分類器模型的訓練 49
3.5 本章小結 50
第二部分 進階技術
第4章 全連接神經網絡 53
4.1 深度學習與神經網絡簡介 53
4.2 全連接神經網絡 54
4.3 激活函數 56
4.3.1 Sigmoid函數 56
4.3.2 tanh函數 56
4.3.3 ReLU函數 57
4.3.4 Softmax函數 58
4.4 模型參數的初始化 58
4.4.1 初始化為常數 58
4.4.2 隨機初始化模型參數 58
4.4.3 模型參數初始化實戰 59
4.5 模型的訓練與損失函數 60
4.5.1 模型的訓練過程 60
4.5.2 損失函數的定義 61
4.6 梯度下降算法 63
4.6.1 反向傳播算法 64
4.6.2 3種梯度下降算法的計算方式 65
4.6.3 梯度下降優化算法 66
4.7 MNIST手寫數字識別實戰——分類項目 67
4.7.1 深度學習項目中數據集的劃分 67
4.7.2 MNIST手寫數字識別項目 68
4.8 房價數據回歸分析——回歸分析項目 70
4.9 本章小結 73
第5章 神經網絡模型的優化 74
5.1 防止過擬合的方法 74
5.1.1 L1/L2正則化 74
5.1.2 增加訓練集樣本個數 78
5.1.3 Dropout的應用 80
5.1.4 早停法 82
5.2 批量標準化 85
5.3 CIFAR-10數據集分類項目實戰 87
5.3.1 CIFAR-10數據集簡介 87
5.3.2 模型的構建與訓練 87
5.4 模型的使用、保存與加載 90
5.4.1 使用模型進行預測 90
5.4.2 保存訓練好的模型 91
5.4.3 加載模型 91
5.5 Keras 中的函數式API 92
5.6 本章小結 93
第6章 捲積神經網絡 94
6.1 捲積神經網絡結構 95
6.2 應用CNN模型對MNIST數據集分類 95
6.2.1 圖片的表示形式 95
6.2.2 MNIST數據集的分類 96
6.3 捲積層 99
6.3.1 捲積層的工作原理 99
6.3.2 實現捲積層的代碼 102
6.3.3 補零 105
6.4 池化層 107
6.4.1 池化層的工作原理 108
6.4.2 池化層對圖片的作用 109
6.5 應用CNN模型對CIFAR-10數據集圖片分類 112
6.6 貓與狗數據集分類項目實戰 114
6.6.1 貓與狗數據集簡介 114
6.6.2 數據集的預處理 115
6.6.3 模型的構建與訓練 116
6.7 經典的CNN模型 119
6.7.1 VGG網絡模型 119
6.7.2 ResNet模型 120
6.7.3 Inception網絡模型 122
6.8 遷移學習 125
6.8.1 遷移學習的原理 125
6.8.2 遷移學習項目實戰 126
6.9 本章小結 129
第7章 循環神經網絡 130
7.1 時間序列數據詳解 131
7.2 自然語言數據的處理 131
7.2.1 詞的向量化表示 131
7.2.2 詞匯標記化 133
7.2.3 序列填充 135
7.2.4 嵌入層的原理與應用 136
7.3 情感分析項目 139
7.3.1 情感分析項目簡介 139
7.3.2 數據集的處理 139
7.4 簡單RNN 141
7.4.1 簡單RNN的原理 141
7.4.2 簡單RNN的應用 143
7.4.3 簡單RNN項目實戰 145
7.5 長短期記憶神經網絡 147
7.5.1 長短期記憶神經網絡的原理 147
7.5.2 長短期記憶神經網絡的應用 148
7.6 門控循環神經網絡 150
7.6.1 門控循環神經網絡的原理 150
7.6.2 門控循環神經網絡的應用 151
7.7 RNN進階 152
7.7.1 RNN中防止過擬合的方式 152
7.7.2 疊加長短期記憶神經網絡 152
7.7.3 雙向長短期記憶神經網絡 154
7.7.4 註意力模型 156
7.8 文本生成項目 159
7.9 某公司股票價格預測項目 162
7.9.1 數據集的預處理 163
7.9.2 模型的構建與訓練 164
7.9.3 可視化預測的股票開盤價格與實際的股票開盤價格 165
7.10 自然語言處理技術新進展 166
7.10.1 遷移學習在自然語言處理中的應用 167
7.10.2 ELMo模型介紹與實戰應用 167
7.10.3 BERT模型介紹與實戰應用 171
7.10.4 GPT-2模型介紹 174
7.11 本章小結 175
第三部分 高級技術
第8章 自編碼模型 179
8.1 自編碼模型的原理詳解 179
8.2 應用自編碼模型對數據降維 180
8.3 應用自編碼模型進行異常檢測 183
8.3.1 異常檢測的原理 183
8.3.2 檢測信用卡異常交易 184
8.4 應用自編碼模型對圖片去噪 188
8.4.1 項目介紹 188
8.4.2 反捲積的原理與應用 188
8.4.3 上採樣的原理與應用 190
8.4.4 實現圖片去噪項目 191
8.5 本章小結 194
第9章 生成對抗網絡 195
9.1 生成對抗網絡的原理 195
9.1.1 生成對抗網絡的工作原理簡介 195
9.1.2 生成器與判別器的工作原理 197
9.1.3 生成對抗網絡模型的訓練 197
9.2 生成對抗網絡模型的訓練技巧 198
9.2.1 梯度值剪裁 199
9.2.2 批量標準化中的動量 199
9.3 項目實戰 200
9.3.1 數據集介紹與加載 200
9.3.2 判別器模型的構建 201
9.3.3 生成器模型的構建 203
9.3.4 生成對抗網絡模型的構建 206
9.3.5 生成對抗網絡模型的訓練 206
9.4 本章小結 209
第10章 深度強化學習 211
10.1 深度強化學習簡介 212
10.2 深度強化學習詳解 213
10.3 Deep Q-Learning算法 215
10.3.1 Q-Learning算法詳解 215
10.3.2 Deep Q-Learning算法詳解 217
10.3.3 Deep Q-Learning算法的應用 219
10.4 策略梯度算法 224
10.4.1 策略梯度算法原理詳解 225
10.4.2 策略梯度算法項目實戰 227
10.5 演員-評判家算法 231
10.5.1 演員-評判家算法原理詳解 231
10.5.2 演員-評判家項目實戰 232
10.6 本章小結 235
作者介紹
周北,重慶韜翔網絡科技有限公司總裁,悉尼大學研究生,人工智能領域資深技術專家,自2018年被任命為韜翔科技董事長以來,主要負責公司亞太地區與歐洲事業群的管理,曾任職於悉尼大學並擔任計算機科學學院科研助理的工作。
他具有信息技術和信息技術管理專業的雙學位,是上海企覺有限公司首席技術顧問,擅長機器學習、深度學習、Python、Java等技術。