為什么可以用CNN代替FC?
- 空間結(jié)構(gòu)信息:CNN通過卷積操作保留了輸入數(shù)據(jù)的空間結(jié)構(gòu)信息,這對于圖像等數(shù)據(jù)非常重要惜犀。而FC則會忽略這種空間結(jié)構(gòu)信息仪搔,將所有輸入展平處理瘾婿。
- 參數(shù)共享:CNN由于其權(quán)值共享的特性,參數(shù)數(shù)量遠(yuǎn)少于FC烤咧。這使得CNN在處理大規(guī)模高維數(shù)據(jù)時(shí)偏陪,如圖像,更具優(yōu)勢煮嫌。
- 平移不變性:CNN具有平移不變性笛谦,即無論目標(biāo)物體在圖像中的位置如何移動,CNN都能有效地識別出來昌阿。而FC則不具備這種性質(zhì)饥脑。
卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)量怎么計(jì)算?
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network懦冰,CNN)的參數(shù)量計(jì)算涉及到卷積層灶轰、池化層和全連接層等不同類型的層。以下是一些常見層的參數(shù)計(jì)算方法:
卷積層(Convolutional Layer): 對于一個(gè)卷積層刷钢,參數(shù)數(shù)量取決于卷積核的大小笋颤、輸入通道數(shù)(輸入特征圖的深度)和輸出通道數(shù)(卷積核的數(shù)量)。 參數(shù)數(shù)量 = 卷積核大心诘亍(WH) * 輸入通道數(shù) * 輸出通道數(shù)*伴澄。
池化層(Pooling Layer): 池化層沒有需要學(xué)習(xí)的參數(shù),因此在計(jì)算網(wǎng)絡(luò)總參數(shù)時(shí)通常不考慮池化層的參數(shù)阱缓。
全連接層(Fully Connected Layer): 對于全連接層非凌,參數(shù)數(shù)量取決于前一層的輸出大小和全連接層的節(jié)點(diǎn)數(shù)。 參數(shù)數(shù)量 = 前一層輸出大小 * 當(dāng)前層節(jié)點(diǎn)數(shù)荆针。
下面是一個(gè)簡單的例子敞嗡,假設(shè)有一個(gè)CNN模型,包含一個(gè)卷積層航背、一個(gè)池化層和一個(gè)全連接層喉悴。
卷積層:卷積核大小為3x3,輸入通道數(shù)為3沃粗,輸出通道數(shù)為64粥惧。
池化層:使用2x2的最大池化。
全連接層:前一層的輸出大小為256最盅,當(dāng)前層節(jié)點(diǎn)數(shù)為128突雪。
計(jì)算方法如下:
- 卷積層參數(shù)數(shù)量:333*64=1728(未使用偏置)
- 池化層沒有參數(shù)
- 全連接層參數(shù)數(shù)量:256*128=32768總參數(shù)數(shù)量:1728+0+32768=34496 (未使用偏置)
總參數(shù)數(shù)量:1728 + 0 + 32768 = 34496
卷積層特征圖尺寸計(jì)算公式
卷積層特征圖尺寸的計(jì)算公式可以通過以下幾個(gè)參數(shù)來確定:
- 輸入尺寸(w):輸入特征圖的寬度或高度
- 卷積核尺寸(K):卷積核的寬度或高度起惕。
- 步幅(s):卷積核在輸入上的滑動步幅,
- 零填充(P):在輸入的周圍添加零值的層數(shù),以控制輸出尺寸咏删。
卷積層特征圖的尺寸可以通過以下的公式計(jì)算:輸出尺寸=|(W-K+2P)/S]+1
這個(gè)公式描述了卷積操作如何影響輸入特征圖的尺寸惹想。簡而言之,卷積操作通過卷積核在輸入上滑動督函,每次滑動的步幅由s法定嘀粱,同時(shí)通過零填充P來控制輸出的尺寸。這有助于確保輸出尺寸適合后續(xù)層的處理辰狡。