Member-only story
免費閱讀文章:Convolutional Neural network 卷積神經網路(part1)
今日的課程來自於: https://youtu.be/5BJDJd-dzzg (0-33分)
為什麼要使用CNN 於影像處理?
CNN vs DNN
我們當然可以使用一般的neural network 來做影像處理,不一定要用CNN。但是我們會遇到一個問題,每一個就是在處理影像辨別時,使用fully connetcted 的 feedforward network來做圖像處裡時,往往需要太多數據。
舉例來說,一張100*100的彩色圖片,他的辨別率才100*100,將他拉成一個vector,他總共有100*100*3(彩色需要三個value)=三萬維了。如果input 是三萬為,假設hidden layer 有1000個neuron,那僅僅是第一層hidden layer的參數就已經有30000*1000個了,這樣太多了。
所以CNN做得事情其實是,用簡化這個neural network的架構,我們根據自己的知識和對圖像處裡的理解,一開始就把某些實際上用不到的參數給過濾掉,我們一開始就使用較少的參數來處理,所以CNN其實是比一般的DNN還要簡單的
雖然CNN看起來比較複雜,但事實上他的模型比DNN還要簡單,我們就是用prior knowledge,去把原來fully conected 的layer 裡面的一些參數拿掉,就變成CNN
Why can we discard some parameters?
為什麼可以減少一些參數呢? 為什麼可以減少參數還可以做圖像處裡?
下面有三點對影像處裡的觀察:
- Some pattens are much smaller than the whole image
在影像處理中,如果在network的第一層hidden layer裡,那些neuron要做的就是偵測有沒有一種特定的patten出現。所以並不需要看整張image,只需要看這張image 的一小部分,就可以解決這件事情了
舉例來說,假設現在我們有一張鳥的圖片,那第一層的hidden layer的某一個neuron的工作是,偵測有沒有鳥嘴。其實不需要看整張圖片,只需要給neuron看重點就可以了。每一個neuron其實只要連接到一個小塊的區域就好,它不需要連接到整張完整的圖,因此也對應更少的參數
2. The same patterns appear in different regions
同樣的patten,可能會出現在image的不同部位,但是他們有同樣的形狀,因此可以用同樣的neuron,同樣的參數,被同一個detector檢測出來。