iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
2
AI & Data

從零開始或許曾經想過但想想還是算了的深度雜技系列 第 9

[DAY 09] CNN的前行之末 : Fully Connected Layer & Loss function

前言


CNN 的前行計算之路即將來到終點,即將完成整個前行計算(Forward),有了 Convolution 計算、Pooling 以及 Activation 計算之後,我們只要在補完 Fully Connected Layer 以及 Loss Function就可以完成基礎的 CNN classification 應用了~~~

考完試還是要記得對答案呀!雖然你考30分你隔壁那個說沒看的98==
----阿峻20190925

CNN 結構

我們再次參考上一章的圖
https://ithelp.ithome.com.tw/upload/images/20190922/20120549wtiqSF2a2E.png
從這張圖我們可以看到在做完 Convolution layer,並用 Activation 以及 Pooling Function對結果的 Feature 進行運算後,最後我們需要把 Feature map (Feature vector) 餵進 Fully Connected Layer 做 Classification 以及計算 Loss,那麼這兩個要怎麼計算呢?就讓我們來看看吧~

Fully Connected Layer

在整個 CNN model 中,如果說前面的 Convolution layer 是為了把 Feature 從Input Image中取出來,那麼通俗來說,Fully connected layer就是為了把萃取來的Feature 對映(Mapping) 到樣本Label的空間(Space)中做Classification,其本質上來說就是一個矩陣向量乘積:
https://chart.googleapis.com/chart?cht=tx&chl=Y%20%3D%20Wx
那行是大概如下:
https://ithelp.ithome.com.tw/upload/images/20190925/20120549IXrUJjgcpN.png
OK,我們知道了 Fully Connected 是一個轉換矩陣去試著 Mapping feature Map 到 Label space,但這是可能會有個問題QQ那麼就是經過 Convolution 計算之後不是一個Feature map 長得是矩陣那種方形的嗎?怎麼就變成一條長的可以跟 Fully Connected做全連接了?????
這邊要介紹一個工具叫做 Flatten:

Flatten

https://ithelp.ithome.com.tw/upload/images/20190925/201205493NHzjqpj2X.png
假設我們有5個3 * 3的Feature map,然後我們需要用讓他變成4096維然後跟Fully Connected layer 做連結,那麼其實Flatten此時就是 3x3x5x4096 的 convolution layer 去跟 feature map 做 convolution計算得出來,太繞口了嗎?那麼只需要記做下面這張圖就好:
https://ithelp.ithome.com.tw/upload/images/20190925/20120549NAl0xLVxi1.png

Loss Function

我們的 Model 總算測出來一個甚麼鬼了XD逾時我們可以去找別人開始吹我們的 Model有多猛,但我們需要一個量化的值去說明我們的 Model 有多好,或者換句話說,我們預測出來的值能跟 Ground Truth 有多像。所以這邊我們知道了第一個 Loss Fuction的重點也是最重要的一個重點 :
Loss Fuction 必須要能夠足夠有效地說明你的 Prediction 跟 Ground Truth有多像
所以其實 Loss Function 某種程度上也代表了我們希望我們的 Model 的 Goal,或者說我們想要縮小的、最小化的目標函式是甚麼(Objective Function)
那麼常見的用來做Classification的 Loss function就是交叉熵(cross-entropy)
https://ithelp.ithome.com.tw/upload/images/20190925/20120549VcnrvL8eMO.png

結語

我們總算讓Data完整的經過 CNN model並也得出了如何估量我們跟 Groung Truth 有多像,那麼下一步便是使用每次 Training 得到的誤差反饋給我們的 Model知道要往哪裡進步!!

參考資料

  1. https://medium.com/jameslearningnote/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%AC%AC5-1%E8%AC%9B-%E5%8D%B7%E7%A9%8D%E7%A5%9E%E7%B6%93%E7%B6%B2%E7%B5%A1%E4%BB%8B%E7%B4%B9-convolutional-neural-network-4f8249d65d4f
  2. https://blog.csdn.net/qq_39521554/article/details/81385159
  3. https://zhuanlan.zhihu.com/p/33841176
  4. https://ithelp.ithome.com.tw/articles/10187521
  5. https://towardsdatascience.com/convolutional-neural-network-17fb77e76c05
  6. https://medium.com/@chih.sheng.huang821/%E6%A9%9F%E5%99%A8-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-%E5%9F%BA%E7%A4%8E%E4%BB%8B%E7%B4%B9-%E6%90%8D%E5%A4%B1%E5%87%BD%E6%95%B8-loss-function-2dcac5ebb6cb

上一篇
[DAY 08] CNN的前行之路 : Convolution、Pooling 、Activation計算簡介 Part.2
下一篇
[DAY 10] CNN的反向傳播 : Backpropagation
系列文
從零開始或許曾經想過但想想還是算了的深度雜技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言