卷積神經網路是深度學習底下的一個分支,
對於圖像處理有很強大的分析能力。
------------------------------------------------------------------------------------------------------------
一、卷積神經網路介紹
卷積神經網路起源於 D. H. Hubel and T. N. Wiesel 這兩個人,
當初他們研究貓的大腦對外部感知的方法,
而發現局部感知 ( Partial connection ) 對於事物的判斷是很有幫助,
進而提出卷積神經網路。
聽起來很繞口,其實概念很簡單,
卷積神經網路提供了一個幫助人工智慧學習東西的新方法,
這個方法的概念就是,看事情要看重點,要會抓重點學習。
可能有點抽象,讓我舉個例子,
假設我們現在要處理「機器判斷一張圖片是否為男性」的問題。
* 這個人是特斯拉,少了他,現代科技將變得又貴又不科技。
回想我們上一集寫的基本神經網路,機器將會如何判讀?
機器將會經過一層又一層的運算,對每一個 pixel 內的事物,
都給予最佳化的權重,並且做出判斷,但這樣是非常沒有效率而且較容易誤判的。
假如今天是 1024 * 1024 的圖片,輸入就會變成 1000000 這種量級的向量,
那麽在做最佳化的時候,就會需要很強大的運算能力。
再者,我們人類一看到這張圖的時候,會直接把重點放到臉上,
而非像基礎神經網路一樣,一小格一小格看,失去完整訊息。
人類在判斷問題「是否為男性」後,我們會去找到鬍子的特徵,然後判斷他為男性。
( 當然寫得好的演算法,甚至還能藉由顴骨高低、額長寬比或其他特徵判斷。 )
所以,我們希望機器也可以像我們一樣,能一次看到多一點東西,
因此,卷積神經網路就誕生了。
------------------------------------------------------------------------------------------------------------
二、卷積的方法 - filter
那麼要如何讓機器變得有效率又能一次看多一點東西呢?
就一次看大塊一點,不要一個一個 pixel 地看,哈哈哈!
* 為了方便講解,我們假設這張圖是 16 * 11 pixel 的圖片,左下角是座標 ( 0, 0 )。
試想,如果我們只看上圖的座標 (5, 9),應該很難判斷是鬍子吧?
但如果給我看座標 (4, 8)、(5, 8)、(6, 8)、(4, 9)、(5, 9)、(6, 9) 所組成的大方格,
我們就可以很容易判斷,這是個男人的照片了,對嗎?
卷積就是這樣,我們把一個具備長寬高的圖片,
(長與寬分別代表圖片的長與寬,高則代表單一方格的額外特徵,通常是顏色 rgb)
經由一個 filter 也就是貓論文中的 receptive field 轉換成另一張全新的圖片。
大概像下圖一樣,
我們把這個過程解釋一下,
我們用 2*3 size 的 filter,對這張圖片做卷積,每次往 X方向跨一格,
Y方向則是兩格,而得到了一個新圖片。
可以算一下,這個新圖片將是幾乘幾的矩陣呢?
8 * 9 <- 確實是可以減少運算的複雜度
經過多次的矩陣運算 (maxpooling layer or convolutional layer),
我們可以將圖片的特徵抽象化出來,讓機器判斷。
不難想像,當 filter size 不同,或是每一次跨步大小不同,
都可以影響抽取出來的特徵的長相,
所以 filter size 和 每一次跨步大小 都是到時候寫卷積神經網路時,非常重要的參數。
以下這個範例,給大家看看一台車經過卷積後,會被抽象化成什麼樣子。
所以,對人腦來說,讓我以 2*3 的 filter 看到那鬍子那一格,
我就能判斷是男性,
但對於機器來說,他可能經過 3 層不同大小 filter 的卷積層後,
看到鬍子那一格被轉換成 [ 0 0 1 0 0 1 0 1] 這樣一維矩陣後,
而判斷,這是男性。
希望分享到這,大家可以大概感受到什麼是卷積神經網路,
總結一下,卷積神經網路就是藉由 filter 來抽取圖片的特徵,
因為基本的神經網路,只能一次看一個小方格,而對於事件無法有深刻的認識,
但藉由 filter,我們不僅能加快運算速率,也可以更快發現重點,
而這種藉由 filter 轉換的過程,也叫做局部感知 ( Partial connection )。
除了 filter 以外,卷積神經網路也會用 Relu 和 Maxpooling 等方法來增加判別率,
下一章寫數字判讀實作的時候,再一起分享。
------------------------------------------------------------------------------------------------------------
Reference
[1] Practical Machine Learning Problem
[2] 圖解機器學習
[3] Coursera - Machine Leanring
[4] A tour of machine learning algorithms
[5] Deep Learning Book
[6] Threshold Potential
[7] Activation Function
[8] Receptive fields and functional architecture of monkey striate cortex
沒有留言:
張貼留言