模型中到底什麼決定了效果

caoeryingzi發表於2024-09-10

在工作過程中,我們訓練模型時,到底是哪些因素影響最大?模型深度,模型寬度,head個數,head深度,輸入大小,輸出大小等等。

在工業界中,基於深度學習的檢測模型尤其應用廣泛。今年由於內部變動,接觸了各種不同的專案和模型。發現一個規律,模型可以很小,但是資料量很大時,一樣能提高效果。同時輸入尺寸變大時,比做多少模型重構都有用,當然前提是backbone和head類似的前提下。

之前的模型臃腫的很,耗時不說,還佔視訊記憶體,這樣其實batchsize大小也有影響。於是,我把模型的head大刀闊斧砍到很淺的程度,然後把backbone也砍掉了很多。發現耗時減少了很多,loss訓練的時候並沒有變化多大。然後我再部署到硬體時,增加輸入尺寸為之前小尺寸的2倍,同時由於改變了模型的複雜度,資料增加了很多。於是效果比之前很大(比目前這個尺寸大了1.5倍)尺寸的效果還高了5-6個點。

這說明兩個問題:1. 就是我砍了模型的backbone和head,增加了資料,模型的效果依然在提升,比輸入尺寸更大的模型效果還好,那說明模型遠遠沒有達到飽和,也就是說模型相對資料其實還是過於複雜的。2. 就是模型變小了,輸入尺寸變大了,效果比之前小尺寸的模型效果好了太多,這說明相比較模型複雜度,更應該提升模型的輸入尺寸以改善實際效果。

所以在工程上,不要追求什麼模型的複雜度,說把輸入尺寸減小,增加模型複雜度來提升效果。輸入那麼小,到模型輸出時,降維到什麼都沒有了,哪裡來的效果啊,別再做這些很外行的實驗了。一句話,工程上計算量有限時就要儘量增加資料和增加輸入尺寸。科研上嘛,反正也不受計算量限制,輸入都不會很小,多增加資料,用強大模型。

相關文章