前言
寫在最前, 我把代碼和整理的檔案放在github上了
https://github.com/Leezhen2014/python_deep_learning
最近由于疫情被困在家,于是準備每天看點專業知識,準備寫成博客,不定期發布,
博客大概會寫5~7篇,主要是“解剖”一些深度學習的底層技術,關于深度學習,計算機專業的人多少都會了解,知道Conv\Pool的程序,也看過論文,做過實驗或是解決方案,在寫的各種卷積網路 時候,有沒有問問自己:這些網路到底是怎么“運作”起來的?如果自己要實作一個具備基本功能的神經網路應該怎么去實作?
知道事物的表面現象,不知事物的本質及其產生的原因是一件很可悲的事情,正如魯迅所說:What I cannot create, I do not understand. 只有親自實踐去創造一個東西,才算真正弄懂一個問題,
本著“知其然,知其所以然”的目的,會盡可能的用Python庫和基本的數學知識,創建經典的深度學習網路,
每篇的計劃如下:
第一篇介紹numpy庫和matplotlib庫、讀寫二進制的方法、pkl等,這些知識會在后面用到,在本篇的最后會以mnist資料集為例,創建處理手寫體圖片的函式,供后使用,
第二篇介紹感知機,用感知機實作邏輯門、用多層感知機實作復雜邏輯門,
第三篇神經網路的設計與實作,分為上下兩部分:
3.1篇增加神經網路的forward,實作激活函式、全連接層的計算、輸出層,最后用mnist資料集測驗forwarld是否正確;
3.2篇增加神經網路的backward,實作損失函式、梯度、學習演算法,最后用mnist資料集測驗神經網路的訓練,
第四篇引入計算圖的思想,用計算圖的方式實作乘法層、加法層和激活層,最后用mnist資料集測驗這些簡單層,
第四篇添加optimization模塊,設計實作SGD,momentum,學習率的衰減,adam, 最后用mnist資料集作對比,
第五篇增加一些處理過擬合的方法,實作droupout,權值衰減,,用mnist資料集測驗效果
第六篇增加batch-normalization功能,用mnist資料集做測驗效果;
第七篇增加conv和pool功能,實作一個lenet-5
前面七篇的代碼和博客已經寫完了,經過整理以后會陸續發布,就這樣吧,加油!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/194760.html
標籤:Python
