最近一直在看cnn,其乙個亮點就是通過感受野和權值共享減少了神經網路需要訓練的引數的個數。
左圖所示:若我們有1000x1000畫素的影象,有1百萬個隱藏層的神經元,如果全連線(即每個隱層神經元都要與影象的每乙個畫素點進行連線),就有1000x1000x1000000=10^12個連線,也就是10^12個權值引數。但是影象的空間聯絡是區域性的,就像人是通過乙個區域性的感受野去感受外界影象一樣,每乙個神經元都不需要對全域性影象做感受,因為每個神經元只感受區域性的影象區域,然後在更高層,將這些感受不同區域性的神經元綜合起來可得到全域性資訊。這樣,我們就可以減少連線的數目,即減少神經網路需要訓練的權值引數的個數了。
如有圖所示:假如區域性感受野是10x10,則隱層每個感受野只需要和這10x10的區域性影象相連線,所以1百萬個隱層神經元就只有一億個連線,即10^8個引數。這樣訓練起來就沒那麼費力了,但還是感覺有點多,有其它方法嗎?
我們知道,隱藏層的每乙個神經元都連線10x10個元素的影象區域,也就是說每乙個神經元存在10x10=100個連線權值引數。如果我們每個神經元這100個引數是相同的呢?也就是說每個神經元用的是同乙個卷積核去卷積影象。這樣我們就只有多少個引數呢??只有100個引數(從10的8次方到10的2次方)天壤之別!!!不管你隱層的神經元個數有多少,兩層間的連線就只有100個引數啊,這就是權值共享啊!即卷積神經網路的亮點之一。
大家都知道,用cnn可以提取特徵。好了,你就會想,這樣提取特徵會不會有點不靠譜?因為每個神經元都用同樣的乙個濾波器,那麼只能提取一種特徵?當需要提取多種特徵是怎麼辦?其實一種濾波器,也就是一種卷積核就是提取出影象的一種特徵,例如某個方向的邊緣。那麼我們需要提取不同的特徵,則可以怎麼辦,加多幾種濾波器不就行了嗎?所以假設我們加到50,每種濾波器的引數不一樣,表示它提出輸入影象的不同特徵,例如不同的邊緣。這樣每種濾波器去卷積影象就得到對影象的不同特徵的放映,我們稱之為feature map。所以50種卷積核就有對應的50個feature map。這50個feature map就組成了一層神經元。我們這一層有多少個引數了?50種卷積核x每種卷積核共享100個引數=50*100,也就是5000個引數,達到了我們想要 的效果,不僅可以提取多方面的特徵而且還可以減少計算。見上圖右:不同的顏色表示不同的濾波器。
2016 3 29 區域性感知,權重共享和池化
卷積神經網路的三個特點,區域性感知,權重共享和池化。區域性感知就是提取區域性特徵在全域性的乙個分布情況,為什麼呢?實際上就是相當於我的一大幅,我想看看各個特徵在這幅圖上面的分布情況,然後看各種特徵的分布情況來決定最終的結果。所以區域性感知是檢視某特徵的空間分布。權重共享,感覺和區域性感知應該是差不多...
如何理解卷積 權值共享 池化
要理解卷積,首先你要理解什麼是全連線和區域性連線,全連線是什麼?舉個例子,100 100大小的影象,假設有100個隱含神經元,那麼就有100 100 100個連線,太可怕,區域性連線是什麼,假設每個隱含神經元只區域性連線10 10,那麼就有10 10 100個連線。那麼什麼是卷積,什麼又是權值共享?...
權值共享(卷積運算對比全連線運算)
如果不進行卷積操作,那麼所有的神經網路層之間將全部使用全連線。圖中的兩級神經元 所以,如果原圖的尺寸是 m n,假設特徵圖的尺寸為 p q 那麼運算的過程中的權重個數是 m n p q,權重的個數就是圖中兩層神經元之間的彩色的線的條數,因為圖中進行的操作是全連線操作。因此,由圖可見,會產生非常大量的...