Truncated SVD for faster dection
Truncated SVD方法最先被提出在《Fast R-CNN》論文中,用于降低全連接層的運算量,提升模型的速度。在卷積神經網絡的分類任務中,FC層的運算速度遠遠大于CONV層,而在Fast R-CNN的目標檢測任務中,大多數的運算時間發生在FC 的運算中,是因為針對每張輸入圖片,只進行一次卷積操作,而要對生成的Region Proposal,大致兩千個,進行全連接操作進行分類與Bounding Box 的回歸,因此若對FC層進行壓縮則可以大幅減少運算時間。
原文:
On the contrary,for detcetion,large and half time spend on FC because of large amount of roi.
使用Truncated SVD的方法可以有效減少FC層的權重數量,從而減少運算時間,SVD是Singular Value Description,奇異值分解。
FC層如下所示,
Y=W×X,對W進行奇異值分解,W近似等于U∑tVTU\sum_tV^TU∑t?VT,
左奇異 U?u×tU-u×tU?u×t
對角矩陣 ∑t?t×t\sum_t-t×t∑t??t×t
右奇異 V?v×tV-v×tV?v×t
將W進行奇異分解后,運算變換為如下所示,
則權重數量由u×vu×vu×v減少為t×(u+v)t×(u+v)t×(u+v),新的權重矩陣為∑VT\sum V^T∑VT和UUU,相當于把一個FC層變為兩個FC層,當ttt遠小于min(u,v)min(u,v)min(u,v)時,能夠降低很大運算量,在mAP下降0.3%的情況下,運算速度能夠提升30%。
總結
以上是生活随笔為你收集整理的Truncated SVD for faster dection的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何查看OpenCV源码
- 下一篇: 怎样修改MFC中应用程序标题的图标?