Python 深度學習
內容描述
本書是使用Python 進行深度學習實踐的一本初學指南。本書並未羅列大量的公式,而是通過一些實用的實際案例,以簡單直白的方式介紹深度神經網絡的兩項任務——分類和回歸,解析深度學習模型中的一些核心問題,以期讓讀者對深度學習的全貌有一個清晰的認識。
本書共9 章,分別介紹了深度學習基礎理論、神經網絡基礎知識、構建定製化深度預測模型、性能提升技術、二元分類的神經網絡應用等內容,並借助Python 語言對基本算法和實現模型進行了探索。
本書適合期望用較短時間在深度神經網絡領域初試牛刀的讀者,也適合深度學習的初學者以及業內人士參考。
目錄大綱
第1章如何閱讀本書……………………………………………………………………… 1
1.1獲取Python ……………………………… ……………………………………… 2
1.1.1學習Python …………………………………………………………… 3
1.1.2軟件包…………………………………………………………………… 3
1.2不需要等待………………………………………………… …………………… 3
1.3小結……………………………………………………………………………… 4
附註………………… …………………………………………………………………… 5
第2章深度學習入門…………………………………………… ………………………… 6
2.1為什麼要學習深度學習………………………………………………………… 7
2.1.1最後一子………… ……………………………………… …………… 8
2.1.2一件怪事………………………………………………………………… 8
2.1.3兩類人……………… …………………………………………………… 9
2.2什麼是深度學習……………………………………………………………… …10
2.2.1成功的藍圖………………………………………………………………10
2.2.2有監督學習和無監督學習………………… …………………………… 11
2.2.3深度學習的流程………………………………………………………… 11
2.3深度學習能解決什麼問題………………………………… …………………… 12
2.4哪些領域使用深度學習…………………………………………………………14
2.4.1深度學習能揭開永葆青春的秘密嗎…………………………………… 15
2.4.2衰老的挑戰……………………………………………………………… 15
2.4. 3眾多的理論……………………………………………………………… 16
2.4.4數據科學家的答案…………………………………… ………………… 16
2.5想使用深度學習——卻不知如何開始………………………………………… 17
2.6小結……………………………… ………………………………………………18
附註……………………………………………………………………………… …… …18
第3章神經網絡基礎………………………………………………………………………27
3.1歷史備忘錄…………………………… …………………………………………28
3.2神經網絡的拓撲結構……………………………………………………………29
3.3神經元的作用……………………………………………………………………30
人工神經元……………………………………………… ………………………31
3.4理解激活函數……………………………………………………………………31
3.4.1數學計算…………………………………………………………………32
3.4.2 sigmoid函數…………………………………… ………………………34
3.4.3運算成本…………………………………………………………………34
3.5神經網絡如何進行學習……… …………………………………………………35
基本算法………………………………………………………………………… 36
3.6解釋梯度下降算法………………………………………………………………37
3.6.1誤差曲面…………………………………… ……………………………38
3.6.2隨機梯度下降………………………………………………………… 39
3.7小結………………… ………………………………………………………… 39
附註…………………………………………………………………… ……………… 40
第4章深度神 經網絡簡介…………………………………………………………………42
4.1深度神經網絡簡析……………………………………… ………………………43
4.2怎樣在一分鐘內解釋深度神經網絡………………………………………… 44
4.2.1如何看待DNN ………………… …………………………………… 44
4.2.2統計學家的視角…………………………………………………………45
4.2.3一個關鍵的觀點…………………………………………………………45
4.3深度神經網絡的3種使用方式…………………………………………………45
4.3.1增強霧天的可視性…………………………… …………………………46
4.3.2打擊黑客犯罪……………………………………………………………50
4.3.3不可思議的縮略圖…… ………………………………………………… 51
4.4如何快速地近似任何函數………………………………………………………54
4.4 .1一個用Python構建深度神經網絡的極簡方法………………………55
4.4.2生成示例………………………………………………………… ………56
4.4.3檢查樣本…………………………………………………………………57
4.4.4格式化數據……………………… ………………………………………58
4.4.5擬合模型…………………………………………………………………60
4.4. 6性能表現評估…… …………………………………………………… 61
4.5有監督學習概述……………………………………………………………… …62
4.5.1有監督學習的目標………………………………………………………63
4.5.2無監督學習……………………………… ………………………………63
4.5.3半監督學習………………………………………………………………64
4.6小結………… ……………………………………………………………………65
附註………………………………………………………………………………………65
第5章如何構建可定制的深度預測模型………… ………………………………………70
5.1一個深度神經網絡預測的實際應用…………………………………………… 71
5.1.1樣本數據和神經網絡…………………………………………………… 71
5.1.2可靠的性能表現……………………………………………………… …72
5.2明確預測目標……………………………………………………………………72
5.3獲取數據的拷貝……………………………… …………………………………74
5.4標準化的重要性…………………………………………………………………75
5.5使用訓練樣本和測試樣本………………………………………………………76
5.6創建深度神經網絡回歸模型的極簡方式……………… ……………………78
5.7學習速率詳解……………………………………………………………………79
5.7.1選擇最佳值……… …………………………………………………… 80
5.7.2如果將模型擬合到數據………………………………………………… 81
5.8評估模型在訓練集性能表現的幾種方式………………………………………81
5.8.1均方差………………………………………… …………………………82
5.8.2獲取預測和度量性能……………………………………………………83
5.9小結………………………………………………………………………………83
附註………………………………………… ………………………………………… 84
第6章提高性能的一些技巧………………………………………… 85
6.1 sigmoid激活函數的局限…… …………………………………………………86
6.2選擇最佳層數的原則………………………………………………………… 89
6.3如何快速改進模型………………………………………………………………92
6.4避免過度擬合…………………………………… …………………………… 93
6.5應該包含多少個神經元…………………………………………………………95
6.6評估測試數據集上的性能………………………………………………………96
6.7凍結網絡權重……………………………………………………………… …97
6.8保存網絡以供將來使用……………………………………………………… 98
6.9小結…………………………………………… ……………………………… 99
附註…………………………………………………………………………………… 99
第7章二元分類神經網絡的奧秘……………………………………101
7.1感人至深——創造奇蹟…………………………………………………… … 102
7.1.1一項二元分類任務…………………………………………………… 103
7.1.2有用的結果…………………………………………………………… 103
7.2了解分類目標………………………………………… ……………………… 104
7.3使用Python從網絡下載數據……………………………………………… 105
7.4處理缺失的觀測值…………………… ……………………………………… 107
7.5保存數據……………………………………………………………………… 111
7.6衝量簡單入門………………………………………………………………… 112
7.7留出法的秘密…………………………………………… …………………… 113
7.8如何用Python快速構建一個深度神經網絡二元分類器………………… 115
7.8.1生成訓練集和測試集………………………… ……………………… 117
7.8.2指定模型……………………………………………………………… 117
7.8.3擬 模型……………………………………………………………… 118
7.8.4混淆矩陣………………………………………………… …………… 119
7.9小結…………………………………………………………………………… 120
附註…………………………… ……………………………………………………… 120
第8章構建優秀模型之道……………………………………………123
8.1嘗試最簡單的想法提高成功率……………………………………………… 124
8.2輟學的威力…………………………………………………………………… 124
8.3相似性………………………………………… ……………………………… 126
8.4共適應………………………………………………………………………… 126
8.5一個教訓…… ………………………………………………………………… 127
8.6雙曲正切激活函數的威力以及如何有效地使用…………………………… 127
8.7如何從小批量方法中獲益…………………………………………………… 128
8.8重建模型…………………………………………… ………………………… 129
8.9關於不平衡樣本你應該知道的事…………………………………………… 131
8.9.1核心問題……………… ……………………………………………… 131
8.9.2查看測試集上的表現……………………………………………… 133
8.10小結…………………………………………………………………………… 134
附註………………………………………… ………………………………………… 134
第9章深度神經網絡在多元分類問題的簡單應用…………………136
9.1分類問題描述…………………… …………………………………………… 138
9.1.1查看樣本……………………………………………………………… 139
9.1. 2檢查目標對象………………………………………………………… 140
9.2關於softmax激活函數的說明……………………………………………… 140
9.3使用rmsprop算法構建多項式模型……………………………………… 141
9.3 .1關於rmsprop算法的說明………………………………………… 143
9.3.2模型性能表現…………………………………………………… …… 144
9.4 Adagrad學習算法概述……………………………………………………… 144
9.5如何嘗試其他學習算法…………………………………… ………………… 146
9.5.1 Nesterov的加速梯度下降算法…………………………………… 146
9.5.2嘗試衝量法……………………………… …………………………… 147
9.5.3常規隨機梯度下降法………………………………………………… 148
9.5.4在模型中使用Adadelta算法… …………………………………… 149
9.5.5測試集性能表現……………………… …………………………… 150
9.6小結…………………………………………………………………………… 152
9.7結束語………… ……………………………………………………………… 152
附註……………………………………………………………… …………………… 152
作者介紹
作者:[英]尼格爾·劉易斯(ND Lewis)
譯者:顓青山
尼格爾·劉易斯(ND Lewis)是一位數據科學和預測領域的講師、作者和研究者。他在華爾街和倫敦從事投資管理工作多年,編著了統計、數據科學和量化模型方面的數本圖書,並且在大學裡開設深度學習、機器學習和數據分析應用等方面的課程。