iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 19
1

Convolution layer

這邊我們回到我們的 convolution layer,如果把以上的一維向量拓展到二維的矩陣資料會長什麼樣子呢?

我們先來看二維的 cross-correlation 長什麼樣子。

然後是反序的 convolution。

這樣有沒有搞懂一點 convolution 的運算了呢?

接著,想像在右手邊比較小的方框就是你的 filter (或是 kernel),然後他會沿著兩個軸去移動,去掃描看看有沒有跟 filter 的 pattern 很像的,當他偵測到很像的 pattern 的時候,輸出的 feature map 的值就會很高,所以這樣就可以做到上面講的第二點,也就是位移的不變性。不過說起來也不是真的有什麼位移不變性啦!他只是沿著軸去做掃描可以減少訓練的參數,這樣 filter 還是有在位移阿!只是對於要偵測的 pattern 看起來好像有"位移不變性"一樣。到這邊我們第一點跟第二點都解決了,剩下第三點。

Subsampling

跟第三點相關的就是 subsampling,也就是如果讓圖片變小,不只可以降低要辨識的區塊大小,還可以降低需要訓練的參數量。那要怎麼讓圖片變小?

Maxpooling 是目前主流的方法,也就是在一個 window 的範圍內去找最大值,只保留最大值。還有一種是 meanpooling,顧名思義,他取整個 window 的平均值作為保留值。

所以 subsampling 在一些應用場景是需要的,有些是不需要的,像是有些 pattern 的辨識是不能去除細節的,一旦去除細節就會造成辨識困難,那就代表他沒有辦法用 subsampling。有時候照片縮小到一定程度人類也會無法辨識當中的圖像是什麼,所以也不要用過頭。

Feature extractor-classifier 架構

經過以上介紹後,我們可以把 convolution layer 跟 subsampling 結合起來,成為所謂的 feature extractor。

經由以上三點特性,這些 layer 的巧妙運用可以是非常棒的 feature extractor。不同種的資料特性需要不同設計的 feature extractor,接下來就是 classifier 上場了。

典型的 classifier 可以是 SVM,或是要用比較潮的 deep learning 也可以,最單純的就是前一篇提到的 MLP 了。

這樣前後組合好就是個 CNN 的雛型了!

MLP 做不好的事情

前一篇我們有提到 MLP 因為會從整體特徵去做內積,所以整體的模式會優先被考慮,如果有區域性的特徵並不一定會被凸顯出來。在 MLP 相對上會比較注重整體性而不是區域性,所以使用 MLP 在影像處理上就比 CNN 不是那麼有利。

關鍵在哪裡?

我個人認為關鍵在資料的 區域性,也就是你想做的事情其實是跟資料的區域性有關係,或是你的資料是週期性資料(週期性出現的模式也可以視為是一種區域性模式重複出現),這樣你就可以用 convolution layer!(注意!不是 CNN!)

像是音樂當中有週期性的模式就可以用,在生物領域,蛋白質會去辨認 DNA 序列,有被辨認到的部份就會有蛋白質黏附上去,生物學家會想知道到底哪些地方有蛋白質黏附,黏附的序列是區域性的,所以也有應用 CNN 技術在這方面上。

最重要的還是去了解你的資料的特性,然後了解模型當中各元件的性質跟數學特性,這樣才能正確地使用這些技術解決問題,走到這邊需要同時是領域知識的專家,也同時是 DL 的專家才行阿!


上一篇
19 Convolution 運算
下一篇
21 Activation functions and ReLU
系列文
機器學習模型圖書館:從傳統模型到深度學習31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言