捲積神經網絡的 Python 實現 卷积神经网络的Python实现

單建華

立即出貨

買這商品的人也買了...

相關主題

商品描述

捲積神經網絡是深度學習重要的模型之一。本書是捲積神經網絡領域的入門讀物,假定讀者不具備任何機器學習知識。書中盡可能少地使用數學知識,從機器學習的概念講起,以捲積神經網絡的zui新發展結束。
本書首先簡單介紹了機器學習的基本概念,詳細講解了線性模型、神經網絡和捲積神經網絡模型,然後介紹了基於梯度下降法的優化方法和梯度反向傳播算法,接著介紹了訓練網絡前的準備工作、神經網絡實戰、捲積神經網絡的應用及其發展。針對每個關鍵知識點,書中給出了基於NumPy 的代碼實現,以及完整的神經網絡和捲積神經網絡代碼實現,方便讀者訓練網絡和查閱代碼。
本書既可以作為捲積神經網絡的教材,也可以供對捲積神經網絡感興趣的工程技術人員和科研人員參考。

作者簡介

單建華
安徽工業大學教授、研究生導師,1998年進入中國科學技術大學就讀,本碩博連讀。博士畢業後從事圖像處理和機器人研究。近幾年研究深度學習,特別是卷積神經網絡及其在汽車主動安全技術方面的應用。

目錄大綱

第一部分模型篇
第1章機器學習簡介2 
1.1引言2 
1.2基本術語3 
1.3重要概念5 
1.4圖像分類12 
1.5 MNIST數據集簡介15 

第2章線性分類器17 
2.1線性模型17 
2.1.1線性分類器18 
2.1.2理解線性分類器19 
2.1.3代碼實現21 
2.2 softmax損失函數22 
2.2.1損失函數的定義23 
2.2.2概率解釋24 
2.2.3代碼實現25 
2.3優化26 
2.4梯度下降法26 
2.4.1梯度的解析意義27 
2.4.2梯度的幾何意義29 
2.4.3梯度的物理意義29 
2.4.4梯度下降法代碼實現29 
2.5牛頓法30 
2.6機器學習模型統一結構31 
2.7正則化33 
2.7.1範數正則化34 
2.7.2提前終止訓練37 
2.7.3概率的進一步解釋38 

第3章神經網絡39 
3.1數學模型39 
3.2激活函數41
3.3代碼實現44 
3.4學習容量和正則化45 
3.5生物神經科學基礎48 

第4章卷積神經網絡的結構50 
4.1概述50 
4.1.1局部連接51 
4.1.2參數共享52 
4.1.3 3D特徵圖52 
4.2卷積層53 
4.2.1卷積運算及代碼實現54 
4.2.2卷積層及代碼初級實現57 
4.2.3卷積層參數總結63 
4.2.4用連接的觀點看卷積層64 
4.2.5使用矩陣乘法實現卷積層運算67 
4.2.6批量數據的捲積層矩陣乘法的代碼實現69 
4.3池化層74 
4.3.1概述74 
4.3.2池化層代碼實現76 
4.4全連接層79 
4.4.1全連接層轉化成捲積層80 
4.4.2全連接層代碼實現82 
4.5卷積網絡的結構83 
4.5.1層的組合模式83 
4.5.2表示學習86 
4.6卷積網絡的神經科學基礎87 

第二部分優化篇
第5章基於梯度下降法的最優化方法90 
5.1隨機梯度下降法SGD 91 
5.2基本動量法93 
5.3 Nesterov動量法95
5.4 AdaGrad 95 
5.5 RMSProp 97 
5.6 Adam 98 
5.7 AmsGrad 99 
5.8學習率退火99 
5.9參數初始化100 
5.10超參數調優101 

第6章梯度反向傳播算法104 
6.1基本函數的梯度104 
6.2鍊式法則105 
6.3深度網絡的誤差反向傳播算法107 
6.4矩陣化109 
6.5 softmax損失函數梯度計算111 
6.6全連接層梯度反向傳播112 
6.7激活層梯度反向傳播113 
6.8卷積層梯度反向傳播115 
6.9最大值池化層梯度反向傳播118 

第三部分實戰篇
第7章訓練前的準備124 
7.1中心化和規範化124 
7.1.1利用線性模型推導中心化125 
7.1.2利用屬性同等重要性推導規範化126 
7.1.3中心化和規範化的幾何意義128 
7.2 PCA和白化128 
7.2.1從去除線性相關性推導PCA 129 
7.2.2 PCA代碼130 
7.2.3 PCA降維131 
7.2.4 PCA的幾何意義133 
7.2.5白化134
7.3卷積網絡在進行圖像分類時如何預處理135 
7.4 BN 136 
7.4.1 BN前向計算136 
7.4.2 BN層的位置137 
7.4.3 BN層的理論解釋138 
7.4.4 BN層在實踐中的注意事項139 
7.4.5 BN層的梯度反向傳播140 
7.4.6 BN層的地位探討141 
7.4.7將BN層應用於卷積網絡141 
7.5數據擴增142 
7.6梯度檢查144 
7.7初始損失值檢查146 
7.8過擬合微小數據子集146 
7.9監測學習過程147 
7.9.1損失值147 
7.9.2訓練集和驗證集的準確率148 
7.9.3參數更新比例149 

第8章神經網絡實例150 
8.1生成數據150 
8.2數據預處理152 
8.3網絡模型153 
8.4梯度檢查156 
8.5參數優化158 
8.6訓練網絡159 
8.7過擬合小數據集162 
8.8超參數隨機搜索162 
8.9評估模型165 
8.10程序組織結構165 
8.11增加BN層167 
8.12程序使用建議171

第9章卷積神經網絡實例172 
9.1程序結構設計173 
9.2激活函數173 
9.3正則化174 
9.4優化方法175 
9.5卷積網絡的基本模塊176 
9.6訓練方法181 
9.7 VGG網絡結構186 
9.8 MNIST數據集197 
9.9梯度檢測199 
9.10 MNIST數據集的訓練結果202 
9.11程序使用建議205 

第10章卷積網絡結構的發展206 
10.1全局平均池化層206 
10.2去掉池化層208 
10.3網絡向更深更寬發展面臨的困難209 
10.4 ResNet向更深發展的代表網絡210 
10.5 GoogLeNet向更寬發展的代表網絡213 
10.6輕量網絡215 
10.6.1 1×1深度維度卷積代碼實現217 
10.6.2 3×3逐特徵圖的捲積代碼實現219 
10.6.3逆殘差模塊的代碼實現222 
10.7注意機製網絡SENet 223