回覆列表
  • 1 # 機器之心Pro

    建議以預訓練模型為核心進行最佳化。像卷積神經網路(CNN)這樣的深度學習模型具有大量的引數;實際上,我們可以呼叫這些超引數,因為它們原本在模型中並沒有被最佳化。你可以網格搜尋這些超引數的最優值,但需要大量硬體計算和時間。

    改進模型的最佳方法之一是基於在你的領域進行過深入研究的專家的設計和體系結構,他們通常擁有強大的硬體可供使用。而且,他們經常慷慨地開源建模架構和原理。

    以下是一些透過預訓練模型來改善擬合時間和準確性的方法:

    研究理想的預訓練體系架構:瞭解遷移學習的好處,或瞭解一些功能強大的 CNN 體系架構。考慮那些看起來不太適合但具有潛在共享特性的領域。

    使用較小的學習率:由於預訓練的權重通常優於隨機初始化的權重,因此修改要更為精細!你在此處的選擇取決於學習環境和預訓練的表現,但請檢查各個時期的誤差,以瞭解距離收斂還要多久。

    使用 dropout:與迴歸模型的 Ridge 和 LASSO 正則化一樣,沒有適用於所有模型的最佳化 alpha 或 dropout。這是一個超引數,取決於具體問題,必須進行測試。從更大的變化開始——用更大的網格搜尋跨越幾個數量級,如 np.logspace() 所能提供的那樣——然後像上面的學習率一樣下降。

    限制權重大小:可以限制某些層的權重的最大範數(絕對值),以泛化我們的模型。

    不要動前幾層:神經網路的前幾個隱藏層通常用於捕獲通用和可解釋的特徵,如形狀、曲線或跨域的相互作用。我們應該經常把這些放在一邊,把重點放在進一步最佳化元潛在級別的特徵上。這可能意味著新增隱藏層,這樣我們就不需要匆忙處理了!

    修改輸出層:使用適合你的領域的新啟用函式和輸出大小替換模型預設值。不過,不要把自己侷限於最明顯的解決方案。儘管 MNIST 看起來似乎需要 10 個輸出類,但有些數字有共同的變數,允許 12-16 個類可能會更好地解決這些變數,並提高模型效能!與上面提到的提示一樣,深度學習模型應該隨著我們接近輸出而不斷修改和定製。

  • 中秋節和大豐收的關聯?
  • 有哪些值得推薦給父母的易用科技產品?