1. 程式人生 > >設定超引數的啟發式想法

設定超引數的啟發式想法

寬的策略:

    通過簡化網路來加速實驗進行更有意義的學習。

        例如,MNIST分類問題。可以丟開訓練和驗證集合中除了0和1的那些影象,然後試著訓練一個網路來區別0和1。

             不僅僅問題比1-個分類的情況簡化了,同樣也會減少80&的訓練資料,這樣就給出了5倍的加速。

學習速率:

    (代價函式震盪的原因:如果eta太大的話,步長也會變大可能會使得演算法在接近最小值時又越過了谷底。)

    首先,我們選擇在訓練資料上的代價立即開始下降而非震盪或者增加時作為eta的閾值的估計。比如eta=0.01

開始。如果代價在訓練的前面若干回合開始下降,你就看他逐步地嘗試eta=0.1,1.0,...直到找到一個eta的值

使得在開始若干回合代價就開始震盪或者增加。相反,如果代價在eat=0.01時就開始震盪或者增加,那就嘗試

eta=0.001,0.0001,...直到你找到大家在開始回合就下降的設定。按照這樣的方法,就可以掌握eta的閾值的

量級的估計。

學習速率的調整:

    通常採用可變的學習速率更加有效。在學習的前期,權重可能非常糟糕。所以最好是使用一個較大的學習速率

讓權重變化的更快。越往後,我們可以降低學習速率,這樣可以做出更加精良的調整。

使用Early stopping來確定訓練的迭代器數量:

    Early stopping表示在每回合的最後,我們都要計算驗證集上的分類準確率。當準確率不再提升,就終止它。

這讓選擇回合數變得很簡單。特別地,也意味著我們不再需要擔心顯式地掌握迭代數和其他超引數的關聯。

    分類準確率不再提升(分類準確率在整體趨勢下降的時候仍舊會抖動或者震盪。如果我們在準確度剛開始下降

的時候就停止,那麼肯定會錯過更好的選擇。)

小批量資料大小:

    minibatch大小的選擇是相對獨立的一個超引數。(嘗試)