通俗易懂的卷積神經網絡教程-第七講

大家好,我是小木,今天是卷積神經網絡的最後一節課,我們要講的內容是大大迭代及測試環節。

首先說一個問題,就是爲什麼要旋轉180度,可不可以不旋轉?我的回答是不可以不旋轉,爲什麼吶?這個不是卷積神經網絡模型的問題,是matlab軟件的問題,這個軟件它的卷積函數當中有一條語句是自動把矩陣旋轉180度。也就是說當我們執行卷積命令之後,它就會在執行完畢的過程中旋轉180度。爲了保持一致,我們在反向傳播過程中在給它轉回來。就是這樣。如果大家用的是caffe或者tensorflow什麼的,完全忽視旋轉 180度這個梗就OK,當我們上節講的不存在。

接下來,我要說的問題是大大迭代了,再說大大迭代之前,我們複習一下之前的內容:

我們之前正向傳播到最後,要做的是計算一下MSE,然後再進行反向傳播,之後再進行正向傳播,然後反向傳播,依次進行1200次。但是我們用MSE最小作爲,模型最優有點牽強。爲什麼吶,因爲我們每一次都是用了不同的數據,也就是每次隨機選擇50個。所以計算出來的MSE每次結果可能有點不符合邏輯。那麼我們就用一個加權MSE來解決這個問題。

怎麼用呢?比如我們第一次正反傳播結束,我們記錄一個MSE值爲M1=m1,第二次傳播結束時候我們令第二個MSE值爲M2=0.99*M1+0.01*m2。第三次爲M3=0.99*M2+0.01*m3。以此類推,直到M1200=0.99*M1199+0.01*m1200。這樣我們的傳播就結束了。最終的MSE結果是加權值,也就是M1200

在我們第一次得出加權值後,同理我們把我們最後一次,也就是第1200次反向傳播修訂的權值和偏置量作爲模型的最後的權值、偏置量。接着就是用這組權值、偏置量來進行下一次迭代(注意,這次迭代是第二次1200次的迭代哦!),我們稱這樣的迭代叫做大大迭代。當我們第二次大大迭代結束之後,我們又得到了一個新的MSE加權值。就這樣我們設定一個大大迭代的次數N,然後讓這個正反向1200次傳播,大大迭代N次。

說完了大大迭代,我們還有要了解的就是怎麼進行測試呢?測試很簡單,在我們大大迭代N次之後,我們會得到最終卷積神經網絡的各層權值和偏置量,我們把這個結果記錄下來。

接着我們導入1W28*28的數字圖(注意,這些圖圖和之前訓練的6W張圖圖一定是不一樣的)。然後我們把每一張圖片都導入神經網絡中進行正向傳播計算,最後我們會得到一個輸出變量Y,也就是判斷了這個圖圖上面的數字是幾。我們同理導入1W張,這樣我們就得到了1W個是幾的數字。我們導入的圖圖有一點我們是必須要知道的,就是這張數字上面到底是幾。我們把到底是幾作爲標籤。然後,我們與我們卷積神經網絡正向傳播求出來的數據進行對比,看看一致不一致。如果1W張圖中有9000張輸出變量和標籤一致,那麼模型判斷的準確率爲:9000/10000=0.9=90%。現在訓練這個圖片準確率的權值和偏置量在網上已經有好多了,97%以上的都一堆一堆了,大家不妨百度去搜搜。這樣我們的測試就完成了。

如果測試的結果不是很好,那麼我們就以最後的結果作爲第一次的輸入(這次就不隨機生成了),然後再進行正反向傳播,直到符合我們的要求爲止。

我們的卷積神經網絡模型到這裏就全部都講解完成了,如果大家有疑問,歡迎留言或者私信我。

 

 

最後我來總結一下神經網絡模型的流程,其用一張圖表示爲:

 

展開表示更簡單:

 

 

深度學習的內容今後有時間,我還會爲大家講解一些實例。

————————————————

如果對我的課程感興趣的話,歡迎關注小木希望學園-微信公衆號: 

mutianwei521

也可以掃描二維碼哦!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章