來源:Coggle數據科學
神經網絡模型使用隨機梯度下降進行訓練,模型權重使用反向傳播算法進行更新。通過訓練神經網絡模型解決的優化問題非常具有挑戰性,盡管這些算法在實踐中表現出色,但不能保證它們會及時收斂到一個良好的模型。
- 訓練神經網絡的挑戰在訓練數據集的新示例之間取得平衡。
- 七個具體的技巧,可幫助您更快地訓練出更好的神經網絡模型。
學習和泛化
使用反向傳播設計和訓練網絡需要做出許多看似任意的選擇,例如節點的數量和類型、層的數量、學習率、訓練和測試集等。這些選擇可能至關重要,但卻沒有百分之百可靠的決策法則,因為它們在很大程度上取決于問題和數據。訓練神經網絡模型的目標最具挑戰性,因為它要解決兩個難題:
- 學習訓練數據集以最小化損失。
- 泛化模型性能以便在未見過的示例上進行預測。
在這些問題之間存在權衡,因為學得太好的模型泛化能力可能較差,而泛化良好的模型可能欠擬合。訓練神經網絡的目標是在這兩方面找到一個良好的平衡。在擬合神經網絡模型時,這些術語可以定義為:
- 偏差:衡量網絡輸出在所有數據集上的平均差異與期望函數的差異。
方差:衡量網絡輸出在數據集之間變化的程度。
這種表述將模型的容量定義為偏差的選擇,控制可以學習的函數范圍。它將方差視為訓練過程的函數,并在過擬合訓練數據集和泛化誤差之間取得平衡。
- 在訓練初期,偏差較大,因為網絡輸出與期望函數相差很遠。方差非常小,因為數據尚未產生太大的影響。在訓練后期,偏差較小,因為網絡已經學到了基本函數。
然而,如果訓練時間太長,網絡還將學到特定數據集的噪聲,這稱為過度訓練。在這種情況下,方差將很大,因為噪聲在數據集之間變化。
技巧1:隨機梯度下降與批量學習
隨機梯度下降,也稱為在線梯度下降,是指從訓練數據集中隨機選擇一個示例,估算誤差梯度,然后更新模型參數(權重)的算法版本。它的效果是快速訓練模型,盡管可能會導致模型權重的大幅、嘈雜的更新。
通常情況下,基本反向傳播首選隨機學習,原因有三:
- 隨機學習通常比批量學習快得多。
- 隨機學習通常會導致更好的解決方案。
- 隨機學習可用于跟蹤變化。
批量梯度下降涉及使用訓練數據集中所有示例的平均值來估算誤差梯度。它執行更快,從理論上更容易理解,但導致學習速度較慢。
盡管隨機學習具有諸多優勢,仍有理由考慮使用批量學習:
- 收斂條件是眾所周知的。
- 許多加速技術(例如共軛梯度)僅在批量學習中操作。
對權重動態和收斂速率的理論分析更簡單。
盡管批量更新具有優勢,但在處理非常大的數據集時,隨機學習仍然通常是首選方法,因為它更簡單更快。
技巧2:打亂樣本順序
神經網絡從最意外的樣本中學得最快。因此,建議在每次迭代中選擇對系統最不熟悉的樣本。實現這個技巧的一個簡單方法是確保用于更新模型參數的連續示例來自不同的類別。
這個技巧也可以通過向模型展示并重新展示它在進行預測時犯的最多錯誤或產生最多錯誤的示例來實現。這種方法可能是有效的,但如果在訓練期間過度表示的示例是離群值,它也可能導致災難。
選擇信息內容最大的示例:
- 打亂訓練集,使連續的訓練示例永遠(很少)不屬于同一類別。
更頻繁地呈現產生大誤差的輸入示例,而不是產生小誤差的示例。
技巧3:標準化輸入
當訓練數據集中的示例總和為零時,神經網絡通常學得更快。這可以通過從每個輸入變量中減去平均值(稱為居中)來實現。通常,如果訓練集上每個輸入變量的平均值接近零,收斂速度會更快。
此外將輸入居中也會提高模型對來自先前層的輸入到隱藏層的收斂性。這是令人著迷的,因為它為后來近15年發展并廣泛流行的批量歸一化技術奠定了基礎。
因此,最好將輸入移動,以使訓練集的平均值接近零。這個啟發式方法應該應用于所有層,這意味著我們希望節點的輸出的平均值接近零,因為這些輸出是下一層的輸入。
轉換輸入
- 訓練集上每個輸入變量的平均值應接近零。
- 縮放輸入變量,使它們的協方差大致相同。
如果可能的話,輸入變量應該無關聯。
技巧4:Sigmoid 激活函數
非線性激活函數賦予神經網絡非線性能力。其中一種最常見的激活函數形式是 Sigmoid。
在隱藏層使用 logistic 和 tanh 激活函數不再是一個合理的默認選擇,因為使用 ReLU 的性能模型收斂速度更快。
技巧5:選擇目標值
在二元分類問題的情況下,目標變量可能是 logistic 激活函數的漸近值集合 {0, 1},或者是雙曲正切函數的漸近值集合 {-1, 1},分別對應使用交叉熵或鉸鏈損失函數,即使在現代神經網絡中也是如此。在激活函數的飽和點(邊緣)取得值可能需要更大的權重,這可能使模型變得不穩定。
技巧6:初始化權重
權重的初始值對訓練過程有很大影響。權重應該隨機選擇,但以 sigmoid 函數的線性區域為主要激活區域。這個建議也適用于 ReLU 的權重激活,其中函數的線性部分是正的。
初始權重對模型學習有重要影響,其中大權重使激活函數飽和,導致不穩定的學習,而小權重導致梯度非常小,進而學習緩慢。理想情況下,我們尋求模型權重位于激活函數的線性(非曲線)部分之上。
技巧7:選擇學習率
學習率是模型權重在算法的每次迭代中更新的量。較小的學習率可能導致收斂較慢,但可能得到更好的結果,而較大的學習率可能導致更快的收斂,但可能得到不太理想的結果。
建議當權重值開始來回變化,例如振蕩時,減小學習率。
- 大多數方案在權重向量“振蕩”時減小學習率,并在權重向量遵循相對穩定方向時增加學習率。
顯然,為網絡中的每個權重選擇不同的學習率(eta)可以提高收斂性。[…] 主要思想是確保網絡中的所有權重大致以相同的速度收斂。
-
神經網絡
+關注
關注
42文章
4771瀏覽量
100772 -
函數
+關注
關注
3文章
4331瀏覽量
62622 -
模型
+關注
關注
1文章
3244瀏覽量
48842
發布評論請先 登錄
相關推薦
評論