iT邦幫忙

2021 iThome 鐵人賽

DAY 27
1
Software Development

從林到有_Image processing系列 第 27

[D27] 物件偵測(8)

接下來詳細一點的說明 YOLOv4 的內部架構!
目標檢測通常由以下幾個部分組成:

  • Input: 指圖片的輸入
  • Backbone: 在 ImageNet 預訓練的骨架
  • Neck: 通常用來提取不同層級的特徵圖
  • Head:預測對象類別及 bndBox 的檢測器,通常分兩類 Dense Prediction (one stage)和 Sparse Prediction (two stage)

YOLOv4 模型的架構是由這三部分組成的:

  • BackBone: CSPDarknet53
  • Neck: SPP+PAN
  • HEAD:YOLO HEAD

Dropout

Dropout 是一個有效降低 Overfitting 的方法,與權重衰減的精神相似,皆是在訓練模型時使用的正則化方法,在訓練時每一次的迭代(epoch)皆以一定的機率丟棄隱藏層神經元,而被丟棄的神經元不會傳遞訊息。

在反向傳播時,被丟棄的神經元其梯度是 0,所以在訓練時不會過度依賴某一些神經元,藉此達到對抗 Overfitting 的效果。

要特別注意的是,因為 dropout 只能在訓練時使用,所以會造成測試時向前傳播的訊息大於訓練時向前傳播的訊息,通常會在測試時乘以 1/p 改善這個問題。(這個方式叫 inverted dropout)

為了避免結果大於訓練的情況,需要測試的時候將輸出結果乘以 1/p 使下一層的輸入規模保持不變!
而利用inverted dropout,可以在訓練的時候直接將dropout後留下的權重擴大 1/p 倍,這樣就可以使結果的scale保持不變,而在預測的時候也不用做額外的操作了,更方便一些~

Overfitting:Overfitting 顧名思義就是機器過於糾結誤差值,過度學習訓練資料,變得無法順利去預測或分辨不是在訓練資料內的其他資料。

Weight decay

權重衰減的主要目的是「抑制更新參數的幅度」,在訓練模型時預測的結果會通過 loss 函數評估結果與真實值的差距,再藉由梯度下降更新參數,而權重衰減的方法是在 loss 函數加上一個懲罰項

用線性回歸中的例子來看:損失函數為 loss(w, b),我們在這個損失函數後加上一個帶有 L2 范數的懲罰項,其中 λ 是懲罰項的倍率,當 λ=0 時,則權重衰減不會發生;當 λ 越大時,懲罰的比率較高,權重衰減的程度也就跟著變大。

weight decay 也是一種對抗模型 overfitting 的正則化方法。
也了解到透過修改懲罰項的係數 λ,改變權重衰減的倍率對於訓練模型會有不一樣的效果。

圖片來源1
圖片來源2
圖片來源3


上一篇
[D26] 物件偵測(7)
下一篇
[D28] 資料增強
系列文
從林到有_Image processing30

尚未有邦友留言

立即登入留言