Computer Vision


Edge Detection Example


More Edge Detection

  • 這個 example 是水平的 filter

  • sobel: 中間的權重更多,可以更 robust

Padding

  • 沒有 padding 的壞處:
    • 每經過一層,output 的圖片就越來越小,有時不希望這樣,例如想做非常深的 network
    • 角落的 pixel 只會計算到一次 convolution;而圖片中間的 pixel 可以被計算到很多次,導致丟棄許多邊緣的影像資訊

Valid Convolution: 不做 padding

  • 原 output size: n-f+1 * n-f+1

Same Convolution: padding 使得 output 和 input size相同

  • padding 之後的 output size: n+2p-f+1 * n+2p-f+1
    • 解 n+2p-f+1 = n, 得 p = (f-1)/2

filter size 通常是奇數,ex: 3x3、5x5、7x7、1x1

  • 這樣 same convolution 的 padding 就可以直接對稱
  • 維度是奇數的 filter 會有一個中心點,可以記為它的位置,較恰當

Strided Convolutions

stride = 2 時,不論行 or 列 都跳 2 步

  • 圖片大小:
  • filter 大小:
  • padding:
  • stride:

輸出大小:

如果不是整數則無條件捨去,也就是 filter 超出圖片就不計算 conv 輸出大小:

Convolutions Over Volume

  • input:
  • filter:
    • ex: 的 filter 就有 27 個參數 (後面會提到其實還要加 bias,也就是其實有 個參數。有幾個 filter 就有幾個 bias)
  • output: ,只有 2 個維度
    • 然而 filter 會有很多個,因此實際 output size 是

input 和 filter 的 應該要一樣 (也有人稱 depth,但較容易 confusing) output 的 channel 數就是這層 filter 的個數

One Layer of a Convolutional Network


  • 這樣做有個好處:不論 input 的圖片有多大,參數量都是固定的

Simple Convolutional Network Example

Pooling Layers

Hyperparamters

  • filter size
  • stride

常見的 pooling layer 設定

  • filter size = 2,stride = 2
    • 使得 output 長寬都縮為一半
  • 很少做 padding

Output Size

  • Convolutional Layer 的 output size 公式同樣適用於 pooling layer
    • 其中一邊的 output:
  • pooling 會在不同 channel 各自獨立計算,即 output 的 channel 數會等於上一層 output 的 channel 數

Max Pooling Intuition

直觀而言,若在圖片的任何地方偵測到該 feature,就在該區域保持最大值

Average Pooling

很少人使用

例外情況:NN 非常 deep 的時候,會使用 Average Pooling 來壓縮,例如將 7x7x1000 的 feature map 壓縮成 1x1x1000

另外補充:

  • Global Average Pooling 是把整個 feature map 做平均,得到一個值,有幾個 feature map 就 output 幾個值
    • 本質上跟一般的 pooling 一樣,只是 filter size 變成整個 feature map 的 size

Pooling layers have NO parameters to learn

CNN Example

非常類似 LeNet-5 的 example

  • 計算 layer 數時,有的文獻將 conv+pooling 視為同一層,有的視為兩層。通常以需要訓練的 (有權重的) 才算一層較為恰當,因此本影片將 conv+pooling 視為同一層。

  • 方塊是指該層的 output size

  • 架構較深時,activation size (output size) 下降太快的話沒什麼幫助

Why Convolutions?

  • 參數共享
  • 稀疏連接

(Optional) Yann LeCun interview

results matching ""

    No results matching ""