Neural-Networks

什麼是預訓練神經網絡?

  • January 29, 2016

好吧,這個問題說明了一切。

“預訓練神經網絡”是什麼意思?有人可以用純簡單的英語解釋嗎?

我似乎找不到任何與之相關的資源。如果有人能指點我,那就太好了。

訓練網絡的常用方法:

您想訓練神經網絡在數據集(例如一組圖像)上執行任務(例如分類)。您通過隨機初始化權重開始訓練。一旦你開始訓練,權重就會改變,以便以更少的錯誤執行任務(即優化)。一旦您對訓練結果感到滿意,您就可以將網絡的權重保存在某處。

您現在有興趣訓練網絡以在不同的數據集(例如圖像但與您之前使用的不同)上執行新任務(例如對象檢測)。您可以使用從前一個網絡保存的權重作為新實驗的初始權重值,而不是重複您對第一個網絡所做的操作並從隨機初始化的權重開始訓練。以這種方式初始化權重稱為使用預訓練網絡。第一個網絡是您的預訓練網絡。第二個是您正在微調的網絡。

預訓練背後的想法是隨機初始化是……嗯……隨機的,權重的值與您嘗試解決的任務無關。為什麼一組值應該比另一組更好?但是你會如何初始化權重呢?如果您知道如何為任務正確初始化它們,那麼您不妨將它們設置為最佳值(有點誇張)。不需要訓練任何東西。你有你的問題的最佳解決方案。預訓練為網絡提供了一個良好的開端。好像它以前見過​​數據一樣。

預訓練時要注意什麼:

用於預訓練網絡的第一個任務可以與微調階段相同。用於預訓練和微調的數據集也可以相同,但也可以不同。看到不同任務和不同數據集的預訓練如何仍然可以轉移略有不同的新數據集和新任務,這真的很有趣。如果兩個任務或兩個數據集有共同點,則使用預訓練網絡通常是有意義的。差距越大,預訓練的效果就越差。通過首先對金融數據進行訓練來對圖像分類網絡進行預訓練是沒有意義的。在這種情況下,預訓練和微調階段之間存在太多脫節。

引用自:https://stats.stackexchange.com/questions/193082

comments powered by Disqus

相關問答