1

目前我正在試圖拿出一個新的結構爲CLDNN(卷積,LSTM,深層神經網絡)優化的超參數進行深網絡

,就像任何其他的網絡,我有困難的時候,優化超參數。

我想嘗試網格搜索和隨機搜索,以獲得最佳的超參數集,但我不清楚幾件事情。

  1. 如果我用一組臨時超參數運行網絡模擬,我該如何衡量超參數的「好處」?我正在考慮在每次模擬的N個時代後記錄成本和訓練精度。由於每次模擬需要相對較長的時間(對於我的網絡來說,需要大約70秒來訓練一個時期),有沒有更快的方法來檢查超參數的「優」而不需要實際運行完整的訓練?

  2. 是否有超參數優化的一般提示/建議?

回答

1
  1. 所以基本上 - 爲了測量在不同的超參數性能 - 最好的做法是模擬對每個參數設置一個訓練數據訓練的最終分類的過程 - 然後比較不同的結果尊重你想要過度優化的措施。
  2. 如果您改變了訓練過程(例如,通過在hyperoptimization階段設定固定比例的時期,然後在最終訓練中設定不同的時期) - 您不應該期望在多個測試階段獲得的結果可以推廣。在我看來,這可能會損害你的優化過程,特別是一些超參數設置需要更多時間來實際獲得好的結果(例如,當你設置一個非常高的退出率)並且在選擇最佳值時縮短訓練時間可能會使超參數設置在較早的訓練階段更好的結果更有利。
  3. 良好做法?:
    • 選擇random search,不網格搜索。通常你的訓練網絡對某些參數的敏感性較差,因此如果你想嘗試更復雜的方法,你可以嘗試更復雜的方法,例如, bayessian hyperoptimization,
    • 使用交叉驗證或使用給定的超參數設置多次運行您的網絡。這是因爲神經網絡可能對起始權重敏感 - 所以得分數據可能不一定很好,
    • 並行您的訓練過程。嘗試運行訓練過程,例如在不同的機器上,然後簡單地合併結果。
+0

謝謝您的詳細解答!我猜測hyperoptimization沒有捷徑嗎?我可能需要運行整個一週的優化。 –