Python 深度學習實戰:75個有關神經網絡建模、強化學習與遷移學習的解決方案 (Python Deep Learning Cookbook: Over 75 practical recipes on neural network modeling, reinforcement learning, and transfer learning using Python)
內容描述
本書以自上而下和自下而上的方法來展示針對不同領域實際問題的深度學習解決方案,包括圖像識別、自然語言處理、時間序列預測和機器人操縱等。還討論了採用諸如TensorFlow、PyTorch、Keras和CNTK等流行的深度學習開源框架用於實際問題的解決方案及其優缺點。本書內容包括:用於深度學習的編程環境、GPU計算和雲端解決方案;前饋神經網絡與捲積神經網絡;循環與遞歸神經網絡;強化學習與生成對抗網絡;深度學習用於計算機視覺、自然語言處理、語音識別、視頻分析、時間序列預測、結構化數據分析以及遊戲智能體(Agents)和機器人操控等。後討論了深度學習的超參數選擇和神經網絡的內在結構以及預訓練模型的使用技巧等。
目錄大綱
原書前言
第1章編程環境、GPU計算、雲解決方案和深度學習框架//1
1.1 簡介//1
1.2 搭建一個深度學習環境//2
1.3 在AWS上啟動實例//2
1.4 在GCP上啟動實例//3
1.5 安裝CUDA和cuDNN //4
1.6 安裝Anaconda和庫文件//6
1.7 連接服務器上的Jupyter Notebooks //7
1.8 用TensorFlow構建最先進的即用模型//8
1.9 直觀地用Keras建立網絡//10
1.10 使用PyTorch的RNN動態計算圖//12
1.11 用CNTK實現高性能模型//14
1.12 使用MXNet構建高效的模型//15
1.13 使用簡單、高效的Gluon編碼定義網絡//17
第2章前饋神經網絡//19
2.1 簡介//19
2.2 理解感知器//19
2.3 實現一個單層神經網絡//23
2.4 構建一個多層神經網絡//27
2.5 開始使用激活函數//30
2.6 關於隱層和隱層神經元的實驗//35
2.7 實現一個自動編碼器//38
2.8 調整損失函數//41
2.9 測試不同的優化器//44
2.10 使用正則化技術提高泛化能力//47
2.11 添加Dropout以防止過擬合//51
第3章卷積神經網絡//56
3.1 簡介//56
3.2 開始使用濾波器和參數共享//56
3.3 應用層合併技術//60
3.4 使用批量標準化進行優化//62
3.5 理解填充和步長//66
3.6 試驗不同類型的初始化//72
3.7 實現卷積自動編碼器//76
3.8 將一維CNN應用於文本//79
第4章遞歸神經網絡//81
4.1 簡介//81
4.2 實現一個簡單的RNN //82
4.3 添加LSTM //84
4.4 使用GRU //86
4.5 實現雙向RNN //89
4.6 字符級文本生成//91
第5章強化學習//95
5.1 簡介//95
5.2 實現策略梯度//95
5.3 實現深度Q學習算法//102
第6章生成對抗網絡//109
6.1 簡介//109 6.2 了解GAN //109
6.3 實現DCGAN //112
6.4 使用SRGAN來提高圖像分辨率//117
第7章計算機視覺//125
7.1 簡介//125
7.2 利用計算機視覺技術增廣圖像//125
7.3 圖像中的目標分類//130
7.4 目標在圖像中的本地化//134
7.5 實時檢測框架//139
7.6 用U-net將圖像分類//139
7.7 語義分割與場景理解//143
7.8 尋找人臉面部關鍵點//147
7.9 人臉識別//151
7.10 將樣式轉換為圖像//157
第8章自然語言處理//162
8.1 簡介//162
8.2 情緒分析//162
8.3 句子翻譯//165
8.4 文本摘要//169
第9章語音識別和視頻分析//174
9.1 簡介//174
9.2 從零開始實現語音識別流程//174
9.3 使用語音識別技術辨別講話人//177
9.4 使用深度學習理解視頻//181
第10章時間序列和結構化數據//185
10.1 簡介//185
10.2 使用神經網絡預測股票價格//185
10.3 預測共享單車需求//189
10.4 使用淺層神經網絡進行二元分類//192
第11章遊戲智能體和機器人//194
11.1 簡介//194
11.2 通過端到端學習來駕駛汽車//194
11.3 通過深度強化學習來玩遊戲//199
11.4 用GA優化超參數//205
第12章超參數選擇、調優和神經網絡學習//211
12.1 簡介//211
12.2 用TensorBoard和Keras可視化訓練過程//211
12.3 使用批量和小批量工作//215
12.4 使用網格搜索調整參數//219
12.5 學習率和學習率調度//221
12.6 比較優化器//224
12.7 確定網絡的深度//227
12.8 添加Dropout以防止過擬合//227
12.9 通過數據增廣使模型更加魯棒//232
12.10 利用TTA來提高精度//234
第13章網絡內部構造//235
13.1 簡介//235
13.2 用TensorBoard可視化訓練過程//235
13.3 用TensorBoard可視化網絡結構//239
13.4 分析網絡權重等//239
13.5 凍結層//244
13.6 存儲網絡結構並訓練權重//246
第14章預訓練模型//250
14.1 簡介//250
14.2 使用GoogLeNet/Inception進行大規模視覺識別//250
14.3 用ResNet提取瓶頸特徵//252
14.4 對新類別使用預訓練的VGG模型//253
14.5 用Xception細調//256
作者介紹
Indra den Bakker是一位經驗豐富的深度學習工程師和培訓師。他是23insights平台的創始人,這是NVIDIA所屬孵化項目計劃的一部分,這是一個機器學習構建解決方案的初創型計劃,可以改變世界上重要的行業。在開放課程平台Udacity,他指導了在深度學習和相關領域攻讀微學位(Nanodegree)的學生,他還負責審查學生的實習項目。Indra擁有計算智能背景,並在創建23insights平台之前作為IPG Mediabrands的品牌代理以及Screen6的數據科學家若干年。