YOLO,是一種one-hot的目標檢測技術。由Joseph Redmon和Ali Farhadi在2016年引入,目前已經存在4個版本了。YOLOv4使用了兩個bags的優化函數:在訓練期間使用的“Bag of Freebies(BoF)”和在推理期間使用的“Bag of Special(BoS)”。
Bag of Special包含了用於YOLOv4架構的主干和檢測器的低計算成本模塊。
-
Mish激活函數
Mish激活函數是光滑的非單調激活函數,被定義為:
\begin{align}
f(x)=x\cdot tanh(\zeta (x))
\end{align}
其中, $ \zeta (x)=ln(1+e^{x}) $ ,是一個softmax激活函數和。
這與另一個被稱為Swish函數的激活函數類似,定義為:
\begin{align}
f(x)=x\cdot sigmoid(x)
\end{align}
在YOLOv4中使用Mish函數的原因是它的低成本和它的平滑、非單調、上無界、有下界等特點,與其它常用函數如ReLU、Swish相比,提高了它的性能。
Mish的性能如下:
- 無上界,有下界:無上界是任何激活函數都需要的特性,因為它避免了導致訓練速度急劇下降的梯度飽和。因此,加快訓練過程。無下界屬性屬性有助於實現強正則化效果(適當的擬合模型)。(Mish的這個性質類似於ReLU和Swish的性質,其范圍是 $ [\approx 0.31,\infty ) $ )。
- 非單調函數:這種性質有助於保持小的負值,從而穩定網絡梯度流。大多數常用的激活函數,如ReLU,Leaky ReLU,由於其差分為0,不能保持負值,因此大多數神經元沒有得到更新。
- 無窮連續性和光滑性:Mish是光滑函數,具有較好的泛化能力和結果的有效優化能力,可以提高結果的質量。
- 計算量較大,但是效果好:與ReLU相比,它的計算量比較大,但在深度神經網絡中顯示了比ReLU更好的結果。
- 自門控:此屬性受到Swish函數的啟發,其中標量輸入被共給gate。它優於像ReLU這樣的點式激活函數,后者只接受單個標量輸入,而不需要更改網絡參數。