1. 程式人生 > >卷積神經網路的權值引數個數的量化分析

卷積神經網路的權值引數個數的量化分析

考慮 103×103 的輸入影象:

  • 全連線,隱層神經元的數目為 106 時,則每一個輸入畫素與每一個隱層神經元之間都是待學習的引數,
    • 數目為 106×106=1012
  • 卷積,卷積核的大小為 10×10 時,
    • 步長為 10,103×10310×10×(10×10)103×10310×10表示的是輸入影象可劃分的塊數,也即經卷機作用後的輸出影象;
    • 步長為 1,(10310+1)×(10310+1)(10×10)
    • 在不考慮步長的前提下,可近似將待學習的引數的數目視為 (103×103)(10×10)

1. 全連線層對引數個數的顯著提升

現考慮影象輸入層和 500 個隱層神經元的全連線:

  • MNIST:28×28×1×500=392000
  • CIfar:32
    ×32×3×500=1536000

    • 而對於卷積操作而言,如 5×5 深度為 16 的卷積核而言,則需要的計算量為:5×5×3×16+16=1216,極大地降低了引數的規模;

引數增多導致計算速度減慢,且很容易導致過擬合。

2. 卷積的共享引數特性

通過一個某一卷積核(過濾器),將一個 2×2×3 的節點矩陣變化為 1×1×5 的單位節點矩陣,則本次卷積操作,共需要的引數為:

2×2×3×5+565

+5 表示偏值項引數,

對於 cifar-10 資料集,輸入層矩陣的維度是 32×32×3,假設第一層卷積層使用尺寸為 5×5 深度為 16,則此卷基層的引數為:

5×5×3×16
+×16=1216

注意區分卷積層的引數,與當前輸入層與卷積層的連線的個數(也即引數的個數與連線的數目):

比如對於 LeNet-5 網路,32×32 的輸入資料,經過 5×5×1×6 的卷積,得到 28×28×6 的特徵對映:

  • 卷積層的引數:5×5××1×6+6=156
    • 核的長*核的寬*輸入的通道數*輸出的通道數;
  • 卷積層共 28×28×6=4704 個節點,每個節點和 5×5 個當前輸入層節點相連,因此共連線數:4704×(5×5+1)=122304
    • 連線的數目與輸入層的大小無關;

3. 卷積輸出矩陣尺寸的大小

通過使用填充(padding,比如 zero-padding),或者使用過濾器移動的步長來結果輸出矩陣的大小。

下面的公式給出在同時使用全零填充時結果矩陣的大小:

outlength=inlength/stridelengthoutwidth=inlength/stridewidth

如果不使用填充:

outlength=(inlengthfilterlength+1)/stridelengthoutwidth=(inlengthfilterwidth+1)/stridewidth