本書首先從簡單的思路著手,詳細介紹了理解神經網絡如何工作所必須的基礎知識。*部分介紹基本的思路,包括神經網絡底層的數學知識,第2部分是實踐,介紹了學習Python編程的流行和輕松的方法,從而逐漸使用該語言構建神經網絡,以能夠識別人類手寫的字母,特別是讓其像專家所開發的網絡那樣地工作。第3部分是擴展,介紹如何將神經網絡的性能提升到工業應用的層級,甚至讓其在Raspberry Pi上工作。
當前,深度學習和人工智能的發展和應用給人們留下了深刻的印象。神經網絡是深度學習和人工智能的關鍵元素,然而,真正了解神經網絡工作機制的人少之又少。本書用輕松的筆觸,一步一步揭示了神經網絡的數學思想,并介紹如何使用Python編程語言開發神經網絡。
本書將帶領您進行一場妙趣橫生卻又有條不紊的旅行——從一個非常簡單的想法開始,逐步理解神經網絡的工作機制。您無需任何超出中學范圍的數學知識,并且本書還給出易于理解的微積分簡介。本書的目標是讓盡可能多的普通讀者理解神經網絡。讀者將學習使用Python開發自己的神經網絡,訓練它識別手寫數字,甚至可以與專業的神經網絡相媲美。
本書適合想要了解深度學習、人工智能和神經網絡的讀者閱讀,尤其適合想要通過Python編程進行神經網絡開發的讀者參考。
這是一本精心編寫、給完全初學者的圖書。它帶領讀者構建一個真正、有效的神經網絡,而不需要讀者具備任何復雜的數學知識和深度學習的理論。
——M Ludvig
強烈推薦本書。這本書使得人工神經網絡的概念非常清晰而容易理解。讀者應該嘗試重復本書中給出的示例,以便讓本書發揮大的作用。我就是這么做的,效果不錯!
——亞馬遜美國的一位讀者
如果你對人工智能或神經網絡感興趣的話,這應該是你的一本入門書。本書對主題的介紹非常清晰,幾乎涉及理解神經網絡所需的所有知識,包括微積分、統計、矩陣、編程等等。
——Niyazi Kemer
這是一本優 秀的入門圖書,它有幾個顯著特點。它細致而透徹地介紹了神經網絡。它用非常精簡、實用的方式介紹了數學知識,特別是矩陣乘法和一些簡單的微積分,使得讀者能夠很容易接受一次數學訓練。它使用IPython作為計算平臺,引導讀者使用Python編寫神經網絡。
——Daniel Oderbolz
作者簡介
塔里克·拉希德 擁有物理學學士學位、機器學習和數據挖掘碩士學位。他常年活躍于倫敦的技術領域,領導并組織倫敦Python聚會小組(近3000名成員)。
譯者簡介
林賜 軟件設計師、網絡工程師,畢業于渥太華大學系統科學碩士專業,已翻譯出版多本技術圖書。
第 1 章 神經網絡如何工作001
1.1 尺有所短,寸有所長 001
1.2 一臺簡單的預測機 003
1.3 分類器與預測器并無太大差別008
1.4 訓練簡單的分類器 011
1.5 有時候一個分類器不足以求解問題 020
1.6 神經元——大自然的計算機器 024
1.7 在神經網絡中追蹤信號 033
1.8 憑心而論,矩陣乘法大有用途 037
1.9 使用矩陣乘法的三層神經網絡示例 043
1.10 學習來自多個節點的權重 051
1.11 多個輸出節點反向傳播誤差053
1.12 反向傳播誤差到更多層中 054
1.13 使用矩陣乘法進行反向傳播誤差 058
1.14 我們實際上如何更新權重 061
1.15 權重更新成功范例 077
1.16 準備數據 078
第 2 章 使用Python進行DIY 083
2.1 Python 083
2.2 交互式Python = IPython 084
2.3 優雅地開始使用Python 085
2.4 使用Python制作神經網絡 105
2.5 手寫數字的數據集MNIST 121
第 3 章 趣味盎然 153
3.1 自己的手寫數字 153
3.2 神經網絡大腦內部 156
3.3 創建新的訓練數據:旋轉圖像 160
3.4 結語 164
附錄A 微積分簡介 165
A.1 一條平直的線 166
A.2 一條斜線 168
A.3 一條曲線 170
A.4 手繪微積分 172
A.5 非手繪微積分 174
A.6 無需繪制圖表的微積分 177
A.7 模式 180
A.8 函數的函數 182
附錄B 使用樹莓派來工作 186
B.1 安裝IPython 187
B.2 確保各項工作正常進行 193
B.3 訓練和測試神經網絡 194
B.4 樹莓派成功了 195