CNN

圖像處理常見問題

Fully Connected

Convolutional Layer

名詞介紹

  • filter - 捲積核
    • n * n捲基層 (filter) 又可以稱為 n * n 感受(視)野(receptive field),代表 filter 一次看到的範圍是多少

  • padding - 填充

  • stride - 步伐,即為一次移動多少個 pixel

小技巧

盡量讓捲積核可以完全在圖片範圍內
不然可能會有不對稱輸出

用 zero padding 填到我們要的大小
也有其他填充方式,例如擴充 or 複製
最主要的目的是使輸出不要過快縮小
因為會損失訊息,只能用很少的訊息表示原始圖像

可以用長寬不同的捲基層(但很少人用)

參數設定

捲積核大小

  • 3 * 3
  • 5 * 5
  • 7 * 7

捲積核數量
二的倍數

  • 32
  • 64
  • 128
  • 512

stride 步伐長度

  • 1
  • 2

padding 數量

  • 0
  • 1
  • 2
  • 只要能 fit 都可

範例網站

https://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html

Pooling

Max Polling

目的

  • pooling layer 讓輸出更小,容易控制
  • 做 downsample (降採樣)

小技巧

  • 通常在深度方向不做池化處理
  • 池化層通常不做 zero padding
  • 也可以只有 Convolutional Layer, 也不少見
  • 常用 size:
    • 2 * 2
    • 3 * 3
  • 常用 stride:
    • 2
    • 3

目前 小尺寸捲積 + 更深的網路是趨勢