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

如果大家覺得好,求轉載或者留言呀!

大家好,今天進入第五講了,第五講的內容不多,只有一部分:卷積層向池化層的反向傳播。

昨天我們講到了池化層向卷積層進行反向傳播,在傳播完成之後,我們得到了12個8*8的矩陣δδ.接下來,我們要利用這個矩陣向池化層進行反向傳播:

首先,大家想想我們正向傳播的時候,什麼變成了8*8的矩陣呢?如果沒有忘記的話那很好,要是忘記的話,我再提醒一次,我們開始有6個12*12的矩陣,然後通過12個6*5*5的濾波器進行卷積而形成的12個8*8矩陣。現在我們倒過來了,怎麼能把8*8的矩陣給變回12*12呢?

第一步,我們當初是有12個6*5*5的矩陣,也就是說有12個濾波器,每一個濾波器中含有6個5*5的矩陣。我們把這些矩陣抽出來,然後旋轉180度。比如第一個濾波器中的第一個5*5的矩陣是:

 

旋轉之後就變成了:


也就是順時針旋轉了兩次90度,如果大家看不出來,你們就想矩陣的棱角翻滾了兩次。至於爲啥旋轉180度,本人也是一頭霧水,我覺得不旋轉也可以的,但是人家標準程序是旋轉的我們就按照他們的來吧。

第二步,我們把之前我們池化層的128*8矩陣的值看作一個整體,與這個旋轉之後的濾波器做卷積,可是這次做卷積和之前正向傳播的不一樣了,我們需要的是在每一行每一列前面後邊上面下面都填寫上40,這樣8*8的矩陣就變成了一個16*16的矩陣:

 

之後我們做卷積,填寫0的卷積我們叫做全卷積。因爲我們一共有128*8的矩陣,我們看作是一個整體,上面已經提到了,而我們當初的濾波器是12個,每一個裏面都有6個矩陣,首先讓這個整體與12個濾波器中每一個濾波器的第一個矩陣(共十二個,也就是所有濾波器中的第一個矩陣)進行全卷積,然後加和。接着在與每一個濾波器中的第二個矩陣做全卷積,直到每一個濾波器中的6個矩陣都卷積完成。這樣我們就得到了612*12的矩陣,我們叫做F(F1~F6)。如圖所示:

 

 

接着我們要做的是把這6個矩陣F1~F6進行反向傳播,這個是卷積層對池化層的反向傳播,方法與第四講的方法一致,我就不再敘述了。我們進行反向傳播運算可以得到新的6個矩陣FF1~FF6,如圖所示:

 

這樣我們的反向傳播全部都完成了。我們得到的東西有:δ1~δ12、δδ1~δδ12F1~F6FF1~FF6四大矩陣,如這張圖所示:


然而我們從前面講起,我們只求了一張圖片,而一個batchsize的值爲50,我們還有49組數據沒有求呀,怎麼辦,我們把其餘的49組按照我們4~5講中的方法都進行傳播一遍。我們就會得到50組四大矩陣了。這樣反向傳播纔是真正的結束。

爲什麼要進行反向傳播呢,很簡單!因爲我們正向傳播之後,我們發現輸出變量和標籤不一致,而且它們的MSE差的很多很多,我們於是通過反向傳播求得四大矩陣,然後通過它們來把濾波器、BP全連接的權值及其偏置量給調整一下,從而使得結果吻合。那麼我們如何更改呢,我們下回分解好了,今天太累了就寫到這裏了。


下一講,權值更新


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

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

mutianwei521

也可以掃描二維碼哦!

 


發佈了51 篇原創文章 · 獲贊 221 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章