深度學習中的finetuning是什么?如何理解?
微調是指對模型進行更精細的調整,這是深度學習中常見的訓練技巧。微調通常與遷移學習相結合。因為對于普通人來說,我們可以得不到大量的數據,也沒有足夠好的計算資源供我們使用。。所以我們只能在Imagenet這樣的大數據集上使用別人訓練過的模型,然后把它們適配到我們需要的特定領域,比如識別動物,衣服等等。這里,需要移植其他人的方法美國模式變成自己的問題是微調。
它是基于這樣的思想,通過訓練大量的數據,神經網絡可以提取數據的淺層特征,比如圖片的邊緣和紋理。根據神經網絡的分層學習過程,通過前幾層網絡提取這些淺層特征,以便為后面的高級特征提取服務。最后根據任務的需要確定最后幾層的輸出結果。因此,這為模型遷移的微調帶來了契機。我們只需要利用預訓練模型前幾層提取的淺層特征,根據自己任務的要求,適當調整網絡最后幾層的結點。結構,可以得到相對較好的訓練效果。(下圖是任務A的前期訓練遷移到任務B,任務B是微調。)
所以微調的好處是顯而易見的。首先,你不t不需要自己設計模型結構,可以使用預先訓練好的模型,稍作調整。其次,不需要重新訓練模型,這將大大縮短訓練周期,因為在重新訓練模型時,模型的精度往往是從一個很低的值慢慢上升,通過遷移的思想進行微調,只需要較少的訓練迭代,就可以得到較好的結果,從而加快訓練效率。
Finetuning的意思和他的字面意思一樣:微調。深度學習訓練模型一般有兩種。一種是用各種初始化方法初始化網絡參數,然后從零開始訓練,稱為從零開始訓練。一個是在某種對數據集訓練的模型進行初始化,用較小的學習率在自己的數據集上進行訓練,稱為微調。現在,視覺任務一般使用在imagenet或coco上訓練的模型作為預訓練的身體網絡。然后,該模型對自己的數據集進行微調。