iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
AI & Data

Machine Learning與軟工是否搞錯了什麼?系列 第 17

Day 17 CapsNet-好用的膠囊在CNN

  • 分享至 

  • xImage
  •  

CapsNet-好用的膠囊在CNN

今天我們要介紹一個很強的技術,CapsNet。

為什麼需要CapsNet?

在傳統的CNN中,在許多種情況已經能得到很好的辨識率,例如辨識一群生物裡面哪個是一隻狗,但這需要大量的資料做訓練,且太過擁擠的圖片辨識率也可能會較差。另外CNN會採用池化層來降低維度,但這在某些需要細節來辨識的情況下是個問題,當我們輸入產生一點點的變化時,因為池化層會丟失些許特徵,因此輸出可能會保持不變。而膠囊網路(Capsule Network)只需要少量資料做訓練,並能夠保留細部的特徵,且能分辨物件的相對位置,達到較高的辨識率。

CapsNet與CNN差別

CapsNet具有以下特點

  • 訓練資料較少 vs 訓練資料較多
  • Vector in Vector out vs Scalar in Scalar out
  • 具有動態路由 vs 無

CapsNet架構


擷取自Dynamic Routing Between Capsules

可以看到再輸入後面,有一個Convolutional layer,接著就進入PrimaryCaps層。
再來透過動態路由與PrimaryCaps的傳播後轉換成DigitCaps層,接著就是輸出。

feature map

  • (input size-kernel size+ 1) / Stride ,並取上高斯。

PrimaryCaps層

輸出為$6×6×8×32$

可以想像成一個$20×20×256$在stride為2做一般的卷積,並做了8次不同權重的卷積。

ps (20-9+1)/2=6

結論

透過CapsNet可以知道元素的位置與意義,就不會出現嘴巴在眼睛的位置,機器還會把它當成人了XD

參考資料

Dynamic Routing Between Capsules
先讀懂CapsNet架構然後用TensorFlow實現:全面解析Hinton提出的Capsule


上一篇
Day 16 Activation function之群雄亂舞
下一篇
Day 18 CapsNet如何實現
系列文
Machine Learning與軟工是否搞錯了什麼?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言