Chrome Pointer

2021年12月13日 星期一

崴少的 YOLOv1 論文閱讀心得 - 探討論文公式

【精讀AI論文】YOLO V1目標檢測,看我就夠了
https://www.bilibili.com/video/BV15w411Z7LG?p=11


3.1 yolo系列理論合集

https://www.bilibili.com/video/BV1yi4y1g7ro?from=search&seid=3143793969451923279

💗------------崴少心得------------💗


上面數來第二個公式是用sum square error(誤差平方和計算WH的定位誤差,

為何要開根號的原因可以看下面的圖~


當bounding box較小的時候, WH也較小  (上面的那一個),

當它的W和正確的Ground truth(標註的真實值) 差距和較大的bounding box一樣時,

並不代表小的bounding box和大的bounding box 的IOU值一樣,

因為你由圖片可以看到大的bounding box其實和Ground truth(標註的真實值) 重複的範圍比較多,


所以若用IOU去看, 

就會發現大的bounding box的IOU值, 會比小的bounding box的IOU大~


這邊崴少就來告訴大家為何要開根號囉~

假設Ground truth(標註的真實值) 的ŵ是 0.4,

大的bounding box 是 0.6,

小的bounding box 是 0.2,


公式 : (√w-√ŵ)^2

💛那麼若沒加根號會長這樣唷~

大的    (0.6-0.4)^2=0.04

小的    (0.2-0.4)^2=0.04


💛加了根號會長這樣~

大的    (√0.6-√0.4)^2=0.02

小的    (√0.2-√0.4)^2=0.034


這時你就會發現小的Loss值比較大,

而大的Loss值比較小,


所以若沒加根號會對大的bounding box比較不公平,

明明IOU比較大, sum square error(誤差平方和) 卻和較小的bounding box一樣,

因此我們必須加上更號,

來讓誤差平方和有差距~


💜重點結論💜

假設用w寬度來看, 

√w是bounding box的預測寬值, √ŵ是Ground truth(標註的真實值)寬值, 

大的bounding box的 (√w-√ŵ)^2 會小於 小的bounding box的(√w-√ŵ)^2


💗------------卷積神經網路探討------------💗




💚Kernel的張數

控制張數主要就是控制學習的參數量,沒有一定幾張就是對的,

常見是163264

如果我們使用16Kernels就能達到很好的效果,

那也就不需要浪費額外的參數去增加學習與計算量。

💚Kernel大小

Kernel大小與其Receptive field有關

Receptive field直觀來說就是Kernel提取資訊的尺度,

要是我們預偵測的主體在整張圖像裡的比例很大,

結果我們都選用很小的Kernel來卷積,那效果可能就不是這麼好,

同理,要是主體很小卻都用很大的Kernel來卷積,想必也不是這麼妥當。


現在普遍流行的方式是選用不同大小的Kernel對圖像做卷積後,

再把輸出的Feature maps合併或平均。

常見的Kernel大小有1*1, 3*3, 5*5, 7*7。然而也有人提出,

兩層3*3Kernel 卷積與一層的5*5Kernel 卷積擁有相近的Receptive field

並且使用較少的參數量,因此大家不妨去嘗試看看不同組合的效果。

小知識:為什麼Kernel大小都是奇數呢?其實偶數也可以,但基數Kernel有幾個先天上的優勢,第一個原因是由於基數的卷積核有中心點,較容易對齊確認位置資訊,再者是因為基數的卷積核能確保Padding的對稱性(下文會詳細說明)


引用自: 

深度學習:CNN原理

https://cinnamonaitaiwan.medium.com/%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-cnn%E5%8E%9F%E7%90%86-keras%E5%AF%A6%E7%8F%BE-432fd9ea4935


( 圖片來源 : 卷積神經網路(Convolutional neural network, CNN): 1×1卷積計算在做什麼 )

當我們卷積層的 Kernel 數量越多,

輸出的圖像就會越厚 ( 專業的講法是這圖像的深度變得更深了 )

相對的參數也會越多。

( 圖片來源 : 卷積神經網路(Convolutional neural network, CNN): 1×1卷積計算在做什麼 )

參考自:

卷積神經網路 (Convolutional Neural , CNN)

https://hackmd.io/@allen108108/rkn-oVGA4

沒有留言:

張貼留言

喜歡我的文章嗎? 喜歡的話可以留言回應我喔! ^^