Python神經網路入門與實戰

Python神經網路入門與實戰

《Python神經網路入門與實戰》是一本2020年出版的圖書,由北京大學出版社出版

基本介紹

  • 中文名:Python神經網路入門與實戰
  • 作者:王凱
  • 出版時間:2020年
  • 出版社:北京大學出版社
  • ISBN:9787301316290
  • 類別:程式設計
  • 開本:16 開
  • 裝幀:平裝-膠訂
內容簡介,圖書目錄,作者簡介,

內容簡介

  本書從神經網路的基礎知識講起,逐步深入到Python進階實戰,通過對各種實用的第三方庫進行詳細講解與實戰運用,讓讀者不但能夠更加深入地了解神經網路,而且能夠簡單高效地搭建自己的神經網路,即使沒有專業背景知識也能輕鬆入鬥神經網路。
  本書分為 11章,涵蓋的主要內容有神經網路概述,神經網路基礎知識,電腦程式的特點,神經網路最佳化算法,搭 建Python環境,Python基礎知識,深度學習框架PyTorch基礎知識,NumPy簡介與使用,OpenCV簡介與使用,OS遍歷資料夾,Python中Matplotlib可視化繪圖,Lenet-5、AlexNet、VGG16網路模型,回歸問題和分類問題,貓狗識別程式開發,驗證碼識別程式開發,過擬合問題與解決方法,梯度消失與爆炸,加速神經網路訓練的方法,人工智慧的未來發展趨勢等。
  本書內容通俗易懂,案例豐富,實用性強,特別適合神經網路的零基礎入門讀者閱讀,也適合 Python 程式設計師、PyTorch愛好者等閱讀。

圖書目錄

第1章 神經網路概述 1
1.1 神經網路簡介 2
1.1.1 神經網路的定義 2
1.1.2 神經網路可解決的問題 3
1.2 神經網路的靈感來源 3
1.2.1 對人類認知過程的傳統認知 3
1.2.2 對人類認知過程的現代認知 4
1.2.3 神經元連線的靈感 4
1.3 為什麼要學習神經網路 4
1.3.1 神經網路的發展 4
1.3.2 學習神經網路有什麼用 5
1.4 怎樣學習神經網路 6
1.4.1 選擇一門程式語言 6
1.4.2 對算法的理解 8
1.4.3 寫部落格 8
1.5 小結 9
第2章 神經網路基礎知識 10
2.1 感知器模型 11
2.1.1 神經元細胞的本質 11
2.1.2 感知器模型的構建 11
2.2 訓練感知器 13
2.2.1 計算誤差 13
2.2.2 誤差反向傳播 13
2.2.3 訓練示例 14
2.3 激活函式 15
2.3.1 激活函式的定義 16
2.3.2 Sigmoid函式 16
2.3.3 Tanh函式 17
2.3.4 ReLU函式 18
2.4 損失函式 20
2.4.1 損失函式的定義及作用 20
2.4.2 絕對值損失函式 20
2.4.3 均方差損失函式 21
2.4.4 交叉熵損失函式 23
2.5 單層神經網路 23
2.5.1 單層神經網路的結構 23
2.5.2 單層神經網路的參數 25
2.5.3 單層神經網路的前向傳播過程 25
2.6 訓練單層神經網路 26
2.6.1 梯度下降算法 26
2.6.2 反向傳播算法 29
2.6.3 理解反向傳播 31
2.7 多層神經網路 32
2.7.1 多層神經網路的結構 33
2.7.2 參數向量化 33
2.8 卷積神經網路 36
2.8.1 卷積神經網路簡介 36
2.8.2 卷積核 37
2.8.3 卷積操作 38
2.8.4 池化操作 41
2.8.5 卷積層 42
2.8.6 池化層 43
2.8.7 全連線層 44
2.9 小結 44
第3章 實戰前的預備知識 46
3.1 電腦程式 47
3.1.1 電腦程式簡介 47
3.1.2 電腦程式的執行過程 48
3.1.3 電腦程式的開發流程 49
3.1.4 電腦程式的特點 50
3.2 加速訓練 51
3.2.1 CPU與GPU 51
3.2.2 歸一化 52
3.2.3 其他學習算法 53
3.2.4 Mini-Batch 54
3.3 構建樣本集 55
3.3.1 Tensor類型 55
3.3.2 訓練集 56
3.3.3 測試集 57
3.3.4 交叉驗證集 58
3.4 小結 59
第4章 Python入門與實戰 60
4.1 Python簡介 61
4.1.1 什麼是Python 61
4.1.2 Python的特點 61
4.1.3 為什麼要用Python搭建神經網路 62
4.2 搭建Python環境 63
4.2.1 安裝Python 3.7(Anaconda) 63
4.2.2 安裝CUDA 10.0 66
4.2.3 安裝PyCharm 68
4.2.4 PyCharm新建項目 70
4.2.5 PyCharm的一些基本設定 71
4.2.6 PyCharm運行程式 73
4.3 Python基礎 74
4.3.1 輸入語句與輸出語句 74
4.3.2 變數的作用與定義 76
4.3.3 變數的命名規則和習慣 78
4.3.4 運算符 79
4.3.5 數據類型 81
4.3.6 if語句 82
4.3.7 循環語句 83
4.3.8 函式 85
4.3.9 類 85
4.3.10 列表和元組 87
4.3.11 引入模組 87
4.3.12 注釋 88
4.4 編寫第一個感知器程式 88
4.4.1 需求分析 88
4.4.2 主程式 89
4.4.3 感知器前向傳播程式 90
4.4.4 誤差計算程式 91
4.4.5 運行結果 91
4.5 小結 92
第5章 深度學習框架PyTorch入門與實戰 93
5.1 PyTorch簡介 94
5.1.1 什麼是PyTorch 94
5.1.2 PyTorch的特點 94
5.1.3 為什麼要選擇PyTorch搭建神經網路 95
5.2 安裝PyTorch框架 95
5.2.1 conda命令 96
5.2.2 選擇PyTorch版本進行安裝 97
5.3 PyTorch基礎 99
5.3.1 構建輸入/輸出 99
5.3.2 構建網路結構 100
5.3.3 定義最佳化器與損失函式 102
5.3.4 保存和載入網路 103
5.4 小實戰:用PyTorch搭建一個神經網路以學習異或運算 104
5.4.1 需求分析 104
5.4.2 訓練程式 105
5.4.3 測試程式 107
5.5 小結 109
第6章 Python搭建神經網路進階 110
6.1 NumPy簡介 111
6.1.1 NumPy的基本功能 111
6.1.2 NumPy的數據類型 111
6.2 NumPy的使用 112
6.2.1 安裝NumPy 112
6.2.2 創建數組 112
6.2.3 存儲和讀取數組 114
6.2.4 索引和切片 115
6.2.5 重塑數組 116
6.2.6 數組的運算 117
6.3 OpenCV簡介 119
6.3.1 OpenCV概述 119
6.3.2 OpenCV的基本功能 120
6.4 OpenCV的使用 120
6.4.1 安裝OpenCV 121
6.4.2 圖像讀取與顯示 121
6.4.3 圖像縮放 122
6.4.4 色彩空間轉換 123
6.4.5 直方圖均衡化 125
6.4.6 圖像保存 126
6.5 資料夾中檔案的遍歷 127
6.5.1 OS模組簡介 128
6.5.2 path模組 128
6.5.3 刪除檔案 129
6.5.4 創建資料夾 129
6.5.5 檔案遍歷 130
6.6 構建和讀取數據集 132
6.6.1 構建數據集 132
6.6.2 讀取數據集 135
6.7 PyTorch中卷積神經網路有關的接口 136
6.7.1 卷積層接口 136
6.7.2 反卷積層接口 137
6.8 小結 137
第7章 實戰1:回歸問題和分類問題 139
7.1 Python中繪圖方法簡介 140
7.1.1 Matplotlib簡介 140
7.1.2 安裝Matplotlib 140
7.1.3 散點圖繪製 141
7.1.4 繪圖顯示的小設定 144
7.1.5 曲線繪製 145
7.1.6 設定坐標軸 146
7.1.7 動態繪圖 148
7.2 回歸問題 149
7.3 用Python搭建一個解決回歸問題的神經網路 151
7.3.1 準備工作 151
7.3.2 構建網路 152
7.3.3 訓練網路 153
7.3.4 完整程式 154
7.4 分類問題 155
7.5 用Python搭建一個解決分類問題的神經網路 156
7.5.1 準備工作 156
7.5.2 構建網路 159
7.5.3 訓練網路 160
7.5.4 可視化 161
7.5.5 完整程式 162
7.6 小結 164
第8章 實戰2:貓狗識別問題 165
8.1 實戰目標 166
8.1.1 目標分析 166
8.1.2 樣本集 167
8.2 實現思路 167
8.2.1 構建樣本集 168
8.2.2 測試樣本集 169
8.2.3 構建網路 170
8.2.4 訓練網路 171
8.2.5 測試網路 172
8.3 完整程式及運行結果 172
8.3.1 構建樣本集程式 172
8.3.2 測試樣本集程式 174
8.3.3 構建網路程式 175
8.3.4 訓練網路程式 177
8.3.5 可視化訓練過程 179
8.3.6 測試網路程式 180
8.3.7 模擬實際運用 181
8.4 對結果的思考 182
8.4.1 訓練集和測試集準確率的對比 182
8.4.2 準確率低的原因 183
8.4.3 訓練過程的啟示 184
8.5 小結 184
第9章 一些經典的網路 185
9.1 LeNet-5網路模型 186
9.1.1 LeNet-5網路簡介 186
9.1.2 LeNet-5網路結構 186
9.1.3 三維卷積 188
9.1.4 多維卷積 190
9.1.5 LeNet-5代碼實現 191
9.2 AlexNet網路模型 192
9.2.1 AlexNet網路簡介 193
9.2.2 AlexNet網路結構 193
9.2.3 Same卷積 194
9.2.4 Softmax分類器 196
9.2.5 AlexNet代碼實現 197
9.3 VGG16網路模型 198
9.3.1 VGG16網路簡介 198
9.3.2 VGG16網路結構 198
9.4 小結 200
第10章 實戰3:驗證碼識別問題 201
10.1 實戰目標 202
10.1.1 目標分析 202
10.1.2 生成樣本集 203
10.2 實現思路 205
10.2.1 構建樣本集 206
10.2.2 構建網路 207
10.2.3 訓練網路 208
10.2.4 測試網路 209
10.3 完整程式及運行結果 209
10.3.1 驗證碼分割程式 209
10.3.2 構建訓練集程式 211
10.3.3 構建網路程式 212
10.3.4 訓練網路程式 213
10.3.5 測試網路程式 215
10.3.6 模擬實際運用 216
10.4 對結果的思考 217
10.4.1 訓練集和測試集準確率的對比 217
10.4.2 識別錯誤的原因 218
10.5 小結 219
第11章 最佳化網路 220
11.1 神經網路現存的幾個問題 221
11.1.1 無法真正模擬人腦 221
11.1.2 大樣本訓練緩慢 222
11.1.3 深度網路訓練困難 222
11.1.4 梯度消失和爆炸 224
11.1.5 白盒問題 225
11.2 過擬合問題 226
11.2.1 什麼是過擬合 226
11.2.2 解決過擬合問題的幾種方法 227
11.2.3 正則化 228
11.3 怎樣選擇每一層的節點數目 230
11.3.1 輸入層和輸出層的節點數目 230
11.3.2 隱含層的節點數目 230
11.4 如何加速訓練 231
11.4.1 採用其他最佳化算法 231
11.4.2 採用GPU訓練 232
11.4.3 設定合適的學習率 232
11.4.4 在合適的時間停止訓練 233
11.5 人工智慧的未來發展趨勢 233
11.5.1 人工智慧的發展現狀 233
11.5.2 人工智慧的發展趨勢 234
11.6 小結 234

作者簡介

  王凱,西安電子科技大學人工智慧學院計算機專業研究生,曾參加過全國大學生驗證碼識別大賽並獲得三等獎,長期從事神經網路的研究,具有豐富的開發實踐經驗。

相關詞條

熱門詞條

聯絡我們