卷積神經網路學習筆記與心得(5)全連線層

2021-08-15 20:32:20 字數 946 閱讀 7203

經過若干層卷積和池化後,的維度會越來越小,數量會越來越多,最終進入全連線層並分類輸出(傳統的神經網路)。由於全連線層會有大量的連線權值,模型過擬合的可能性會增加。對此,研究者提出過稀疏連線和dropout等方法,降低過擬合的可能性。

dropout是一種簡單且有效的防止過擬合的方法。它用於訓練階段的全連線層:每次訓練時,隨機使全連線層的某些節點不更新,但是將他的權重保留下來。

dropout原理的一種直觀解釋是:由於每次用輸入網路的樣本進行權值更新時,隱含節點都是以一定概率隨機出現,因此不能保證每2個隱含節點在每次遍歷時都同時出現,這樣權值的更新不再依賴於有固定關係隱含節點的共同作用,阻止了某些特徵僅僅在其它特定特徵下才有效果的情況。

關於全連線層,我在做ocr專案時還有這樣一段插曲:專案開始的時候,由於所有大家都沒有深度學習技術的使用經歷,連使用哪種模型都不清楚。當時流行的模型很多,比如lenet5,googlenet v1,resnet50等等。考慮到lenet5可能沒法勝任混合字元識別,我們首先將lenet5排除了(後來我們使用的模型是在lenet5上加了乙個卷積層,乙個池化層,我們稱之為lenet7^_^),而resnet50模型我們的機器跑不動,因此選擇了googlenet v1。googlenet v1的輸出層和一般的卷積神經網路不同,它使用的是全域性平均池化,而不是全連線層。這個概念是2023年一篇名為《network in network》的**中提出的(這篇**很有名)。使用全域性平均池化代替全連線層的目的主要是為了減少引數數量,消除過擬合風險(全域性平局池化層並不需要學習)。

離職後的一天,我突發奇想把lenet7的全連線層換成了全域性平均池化,結果讓我大吃一驚,識別率急劇下降。後來我才意識到,全連線層是個非線性分類器,它在一定程度上保證模型的複雜度,當提取到的特徵向量不互斥時,全連線層就能發揮作用了。而googlenet是乙個22層網路,提取到的特徵足夠抽象,特徵向量幾乎是完全互斥的,這時用全域性平均池化這樣的線性分類器才能夠發揮比較好的作用。詳情可以看這條鏈結中魏秀參的答案:

卷積神經網路學習筆記與心得(3)卷積

數字影象是乙個二維的離散訊號,對數字影象做卷積操作其實就是利用卷積核 卷積模板 在影象上滑動,將影象點上的畫素灰度值與對應的卷積核上的數值相乘,然後將所有相乘後的值相加作為卷積核中間畫素對應的影象上畫素的灰度值。從卷積的效果來看,在二維影象上進行卷積時,卷積核對所在區域上符合某種條件的畫素賦予較多的...

卷積神經網路學習筆記與心得(4)池化

經過卷積 啟用後的結果一般帶有大量原圖資訊。上圖中卷積核提取的是豎直方向上的連續畫素,但是,被增強的畫素只佔了結果的1 3,對於多層網路,其餘重要性較低的資訊也被傳入了下一層網路,造成了不必要的浪費,因此需要用池化對卷基層得到的結果做聚合統計。池化的理論基礎是 影象相鄰位置的畫素是相關的,即使間隔一...

卷積與卷積神經網路

神經網路中的卷積是指用乙個卷積核 也叫濾波器 實質上是乙個矩陣,在影象上掃瞄一遍,得到乙個新的影象。掃瞄的實質,就是矩陣大小的影象畫素值,和卷積核做運算,然後得到新的畫素值,放到新的影象中 運算不是一行乘一列的乘法,而是哈達馬積,即對應位置的元素一一相乘。最後,把哈達馬積得到的矩陣上的每乙個元素求和...