因為我們用一般的NN來做影像辨識時,使用太多的參數。
假設input的圖片是100 X 100那輸入的參數總共是3 X 100 X 100,太多參數了,那我們的想法是可不可以用一個方法,把一些不會用到的參數是先剔除掉
為甚麼我們可以把一些參數拿掉?以下列出三種特性:
1.有些特徵只占整張圖的一小部分,不需要輸入整張圖->參數減少
2.有些相同的特徵出現在不同地方,不需要多個detecter去偵測->參數共享,參數減少
3.影像縮小對人來說不影響對影像的理解->參數減少
以下是整個CNN的架構
1跟2特性由Convolution處理,3特性由Max Pooling處理
在這裡我們會準備好幾個filter來做convolution,每個filter都是要偵測一種特徵(1特性)
作法:把filter從image的左上到右下,這裡設位移量(stride)為1,每個做內積,在這裡是1x(-1)+1x(-1)+11=-1
做convolution時有多個filter,多個filter所做出來的image稱作為feature map
若是彩色的image要怎麼做呢?filter就不是一個matrix,是一個高度為3的立方體
convolution 可以視為fully connected的變形
這張說明了每個neuron都在偵測一個圖案
那如果我們看到output呢,如果input是手寫辨識1到9,我們會預想output是很像1-9,但實際上不是。可以看這個youtube來了解為甚麼會這樣:
https://www.youtube.com/watch?v=M2IebCN9Ht4
那為甚麼可以辨識出手寫辨識呢,以下加一些contraint,可以看出結果很像我們所看到的手寫辨識
沒有留言:
張貼留言