卷積神經網路依舊是乙個可導的評分函式,該函式輸入為原始影象畫素,輸出是不同類別的評分。並假設輸入資料是影象,基於該假設,向結構中新增一些特有性質。常規神經網路的輸入是乙個向量,對大尺寸影象效果不好,效率低下,大量引數導致網路過擬合。
神經元的各層三維排列:寬度,高度和深度(深度是指啟用函式資料體的第3個維度,不是整個網路深度,整個網路深度指網路層數)。例如:cifar-10,32x32x3(寬度,高度,深度)。層中神經元只有前一層中的一小塊區域連線,不是全連線。神經元排列形式實質上為資料的結構大小,連線線強度才是權重引數。
卷積神經網路由層組成,每一層有乙個簡單的api:用一些含或者不含引數的可導函式,將輸入的3d資料變換為3d的輸出函式。普通神經網路與卷積神經網路:
用來構建卷積神經網路的各種層:
卷積神經網路中每個層使用乙個可微風函式將啟用資料從乙個層傳遞到另乙個層,主要包含:卷積層(convolution)、匯聚層(pooling)和全連線層(和常規網路相同)。例如對於cifar-10輸入,形式可以為[輸入層-卷積層-relu層-匯聚層-全連線層],32x32x3輸入,卷積層中神經元與輸入層乙個區域性區域相連,每個神經元都計算自己與輸入層相連的小區域與自己權重的內積。卷積層計算所有神經元輸出,若採用12個濾波器(核),輸出為[32x32x12]。
relu層對逐個元素進行啟用函式操作,如max(0,x),該層對資料尺寸沒有改變,還是[32x32x12]。
匯聚層在空間維度(寬和高)上進行降取樣(downsampling),如採用2x2尺寸為[16x16x12]。
卷積層和全連線層(conv/fc)對輸入執行變換時,不僅用到啟用函式,還會用到很多引數(w,b),relu層和匯聚層進行固定不變的函式操作。relu層沒有超引數,其他3層有。
卷積層(核心層):
卷積層的引數是由一些可學習的濾波器集合構成的,每個濾波器在空間上(寬和高)都比較小,深度與輸入資料一致。如卷積神經網路第一層乙個典型的濾波器尺寸可以是5x5x3,在前向傳播時,讓每個濾波器在輸入資料的寬和高上滑動(卷積),計算整個濾波器和輸入資料任一處的內積。生成乙個2維啟用圖(activation map),啟用圖給出了在每個空間位置處濾波器的反應(網路會讓濾波器學習到當它看到某些型別的視覺特性時就啟用,如某些顏色斑點,車輪狀圖案等)。
每個卷積層上,有一整個集合的濾波器(如12個),每個都會生成乙個不同的二維啟用圖,深度方向上層疊起來就生成了輸出資料。3d資料中的每個資料項看成神經元的乙個輸出,且該神經元只觀察輸入資料中的一小部分,和空間上左右兩邊所有神經元共享引數(因為這些數字都是使用同乙個濾波器得到的)。
區域性連線:每個神經元只與輸入資料的乙個區域性區域連線,該連線空間大小叫做神經元的感受野(receptive field),其尺寸為超引數,即濾波器的空間尺寸。在深度方向上的多個神經元,感受野大小相同,但權重不同。單個神經元保持不變,仍是計算權重和輸入內積,然後進行啟用函式(在relu層做啟用),只是被限制在乙個區域性空間。
神經元空間排列:3個超引數:深度(depth),步長(stride),零填充(zero-padding)。
深度:與濾波器數量一致,沿深度方向排列,感受野相同的神經元集合稱為深度列(depth column)。
步長:濾波器每次移動畫素數,會讓輸出資料體在空間上變小。
零填充:用來保持輸入資料體在空間上的尺寸,保證寬高相等。
輸出資料體的空間尺寸為:(w-f+2p)/s+1 其中w為輸入資料體尺寸(假設為正方形),f為神經元感受野尺寸,s為步長,p為零填充。當步長s為1時,零填充的值是p=(f-1)/2,可以保證輸入輸出空間尺寸相同,注意這些空間排列的超引數之間是相互限制的。
引數共享:如果乙個特徵在計算某個空間位置(x,y)的時候有用,那麼它在計算另乙個不同位置(x2,y2)的時候也有用。深度切片共享引數,反向傳播時,需計算每個神經元對它權重的梯度,把同乙個深度切片上所有神經元對權重的梯度累加,得到對共享權重的梯度。權重集合稱為濾波器(filter)或卷積核(kernel)。
當卷積神經網路的輸入影象是一些明確的中心結構時,引數共享假設可能沒有意義。此時期望在的不同位置學習到完全不同的特徵,如人臉,希望不同特徵,如眼睛,頭髮在不同位置被學習。此時可以通過放鬆引數共享限制,將層稱為區域性連線層。
小節 卷積層性質:
輸入資料體尺寸為:w1xh1xd1, 4個超引數:濾波器數量k,濾波器空間尺寸f,步長s,零填充p。
輸出資料體尺寸為:w2xh2xd2,其中w2=(w1-f+2p)/s+1;h2=(h1-f+2p)/s+1(寬度和高度計算方法相同);d2=k。
由於濾波器引數共享,每個濾波器包含f•f•d1個權重,卷積層共有f•f•d1•k個權重和k個偏置。
超引數常見設定f=3,s=1,p=1。
用矩陣乘法實現:卷積運算本質上是在濾波器和輸入的區域性區域間做點積,利用這點,將前向傳播變成乙個巨大的矩陣乘法。
卷積神經網路筆記
一 卷積神經網路基礎 cnn是一種空間上共享引數的神經網路,它通過正向和反向傳播,自己學習識別物體。它可能有幾層網路構成,第一層是抽象層次的最底層,cnn一般把中的較小的部分識別成簡單的形狀,下一層將會上公升到更高的抽象層次,一般會識別更複雜的概念,以此類推,直至識別整個物體。cnn的學習方式 層次...
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...