日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

微调(Fine-tune)原理

發布時間:2023/12/13 59 生活家
生活随笔 收集整理的這篇文章主要介紹了 微调(Fine-tune)原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  在自己的數據集上訓練一個新的深度學習模型時,一般采取在預訓練好的模型上進行微調的方法。什么是微調?這里已VGG16為例進行講解,下面貼出VGGNet結構示意圖。  

   

  上面圈出來的是VGG16示意圖,也可以用如下兩個圖表示。

   

   

  如上圖所示 ,VGG16的結構為卷積+全連接層。卷積層分為5個部分共13層,即圖中的conv1~conv5。還有3層是全連接層,即圖中的fc6、fc7、fc8。卷積層加上全連接層合起來一共為16層,因此它被稱為VGG16。如果要將VGG16的結構用于一個新的數據集,首先要去掉fc8這一層。原因是fc8層的輸入是fc7的特征,輸出是1000類的概率,這1000類正好對應了ImageNet模型中的1000個類別。在自己的數據中,類別數一般不是1000類,因此fc8層的結構在此時是不適用的,必須將fc8層去掉,重新采用符合數據集類別數的全連接層,作為新的fc8。比如數據集為5類,那么新的fc8的輸出也應當是5類。

  此外,在訓練的時候,網絡的參數的初始值并不是隨機化生成的,而是采用VGG16在ImageNet上已經訓練好的參數作為訓練的初始值。這樣做的原因在于,在ImageNet數據集上訓練過的VGG16中的參數已經包含了大量有用的卷積過濾器,與其從零開始初始化VGG16的所有參數,不如使用已經訓練好的參數當作訓練的起點。這樣做不僅可以節約大量訓練時間,而且有助于分類器性能的提高。

  載入VGG16的參數后,就可以開始訓練了。此時需要指定訓練層數的范圍。一般來說,可以選擇以下幾種范圍進行訓練:

  (1):只訓練fc8。訓練范圍一定要包含fc8這一層。因為fc8的結構被調整過,所有它的參數不能直接從ImageNet預訓練模型中取得。可以只訓練fc8,保持其他層的參數不動。這就相當于將VGG16當作一個“特征提取器”:用fc7層提取的特征做一個Softmax模型分類。這樣做的好處是訓練速度快,但往往性能不會太好。
  (2):訓練所有參數。還可以對網絡中的所有參數進行訓練,這種方法的訓練速度可能比較慢,但是能取得較高的性能,可以充分發揮深度模型的威力。
  (3):訓練部分參數。通常是固定淺層參數不變,訓練深層參數。如固定conv1、conv2部分的參數不訓練,只訓練conv3、conv4、conv5、fc6、fc7、fc8的參數

  微調的原理大致意思就是先看懂網絡的結構圖,然后把網絡的一部分修改成自己需要的模型。這種訓練方法就是所謂的對神經網絡模型做微調。借助微調,可以從預訓練模型出發,將神經網絡應用到自己的數據集上。

總結

以上是生活随笔為你收集整理的微调(Fine-tune)原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。