全書總評
- 書本印刷質量:4星。紙張是米黃色,可以保護眼睛;印刷清楚,文字排版整潔,基本沒有排版過程中引入的錯誤,閱讀不累眼睛。但是可能是Word排版,感覺數學公式的排版不是太好。
- 著作編寫質量:4星。簡單,易懂,入門很好。可能是為了幫助讀者克服對數學的恐懼,所以多用圖來說明。但是,沒有數學的神經網絡本質上還是空中樓閣,過于淡化數學的作用反而使推導部分讀起來費勁。
- 著作翻譯質量:3星。沒有明顯的問題,基本使用的都是業界常用詞匯。其實給3~4星我都在猶豫,因為翻譯本身沒有錯誤,作者也不是靠機翻了事,但是作為一本入門圖書,過于長的句子(英文表述的風格)使人經常會看著看著就從書中“出戲”了,影響思緒的連貫性。
- 代碼質量:4星。代碼問題不大,還可以去GitHub下載。作者的GitHub,熱心讀者的GitHub和CSDN-Blog
- 總結:如果還想進一步了解神經網絡,請移步《神經網絡與機器學習》;如果想進一步了解Python,請穩步Python書籍總結。如果想進入機器學習的行業,還是找機會精讀一遍《高等數學》、《線性代數》和《概率統計》吧,對于后期了解原理絕對是有好處的。
讀書筆記
C01.神經網絡如何工作?
- 計算機能干啥?打游戲、聽音樂、看視頻,還可以圖像識別、知識推理等等。
- 預測機能干啥?不是程序員教的知識,而通過學習得到的知識,用來處理未來的問題
- 分類器能干啥?對數據進行區分,例如:蘋果與香蕉,通過學習,找出它們的特征,從而學會分辨
- 分類器如何訓練(學習)?先學習正確的知識,如果結果不對就調整記憶,最終全部答對正確的知識
- 分類器如何解決更為復雜的問題?多個學習單元一起學習
- 神經元的基本原理:計算機的神經網絡只是生物神經元的仿真,或者叫數學解釋,或者叫計算機模擬。
- 信號在神經網絡中如何流動?
- 怎樣簡化神經網絡的表示:矩陣。
- 使用矩陣乘法來表示三層神經網絡的例子。
- 神經元的權重如何學習?基本原理
- ★反向傳播誤差算法(11~13)
- 多層神經網絡的誤差是如何反向傳播的?
- 誤差如何反向傳播到更多層中?
- 簡單的3層神經網絡:輸入層+隱藏層+輸出層,誤差如何在隱藏層中傳播來修改權重。
- 如何使用矩陣乘法來描述反向傳播誤差?
- 如何更新神經網絡的權重?數學算法(梯度下降)
- 權重更新的具體案例。
- 神經網絡訓練的過程:輸入(準備訓練數據)、權重(隨機初始化)、輸出(誤差函數優化)
C02.使用Python進行DIY
- Python是啥?一種非常利于閱讀的編程語言,適合非計算機專業人員學習和使用
- IPython是啥?交互式Python。
- Python怎么用?就是幫你基本了解Python,方便后面看Python代碼。
- 使用Python制作神經網絡:進入正題了,跟著作者輸入一遍代碼,可以加深理解。
- 數據集MNIST:進入真正的實用項目了。
- 輸入完整的代碼;(有地方看不懂,是因為書中給出的Python說明遠遠不夠,但是別在意這些不懂,繼續前進,先明白神經網絡可以干啥)
- 用小的數據集訓練和測試神經網絡,會發現對于復雜一點的樣本就無法正常識別了;
- 使用完整的數據集訓練和測試神經網絡,這次耗時有點長,但是準確率會大大提升,看樣子多花點時間學習是值得的;
- 一點改進:調整學習率,會發現效果不一樣了,為什么呢?具體原理可以參考《神經網絡與機器學習》
- 一點改進:多次運行,同樣的訓練數據再學習一次還能夠提高識別率,但是如果次數過多會出現過擬合,參考《神經網絡與機器學習》;
- 一點改變:調整隱藏層的節點數目,可能會影響識別率(P146,圖),參考《神經網絡與機器學習》;
C03.開拓思維
- 自己創造數據:用畫圖軟件創造一個圖片用于識別,圖片大小必須是(28*28)像素格式的;
- 神經網絡的秘密:
- 神秘的黑盒子:像人一樣有冗余能力,少量的損失只會影響精度,不會完全失去能力;
- 逆向查詢:把輸出變輸入,輸入變輸出,可以發現神經網絡到底從數據中學到了什么;
- 創建新的訓練數據:真實情況下數字可能是扭曲的、旋轉的、不規范的,創造這樣的數據試試網絡的識別率,想想識別不出的原因?
附錄A。微積分簡介
如果你對大學數學心存恐懼,那么試著讀讀這本書中的微積分介紹,可能會幫助你理解極限和求導,甚至還有高階的鏈式法則,至少讓你心里覺得原來高等數學沒有想像中的那么難。
當然,學習數學依然還是考驗毅力的一項活動,一本數學書看個一年都是常事,數學專業的同學常說“實變函數學十遍,泛函分析膽泛寒”。
附錄B。樹莓派
這個對于中國同學似乎用處不大,中國人民突然變得錢多多起來,電腦已經是上大學的標配了。當然如果有時間,試著玩玩還是很有趣的,而且樹莓派的應用范圍非常廣泛,學了不吃虧。