回覆列表
  • 1 # 北航秦曾昌

    這其實是對神經網路本質上理解不夠深刻的錯誤想法,神經網路的訓練過程是有隨機過程的參與,但不是無頭蒼蠅亂飛完全靠運氣的事情。有訓練過神經網路模型的同學,可能感覺到網路中涉及的一些超引數是一個非常玄乎的東西,比如學習率,batch size的大小等,這類引數的設定沒有統一的標準,大多數情況下是真對某一個具體的實際問題透過大量的實驗對比之後選擇最優結果。但是超引數的設定往往又特別重要,以學習率來舉例,如果設定的太大,很有可能網路無法收斂,如果設定的太小,訓練的過程有十分地漫長。下圖就很好的反映了這個問題。

    到底有沒有一個方法,能幫助我們選擇一個合適的學習率呢。今天就介紹一個尋找相對較優的學習率的方法。

    學習率的公式:

    目前廣泛應用的調整方法是在初始訓練階段,因為網路引數比較隨機,所以選擇相對較大的學習率,使得loss下降更快;當訓練一段時間之後,網路逐漸趨於穩定的時候,引數的更新幅度就要小心謹慎,此時學習率一般會做衰減,衰減的方式也非常多,比如到一定的步數將學習率乘上0.1,也有指數衰減等。

    其中,比較重要的就是初始學習率如何設定,傳統的方法是從一個較小的值比如0.0001開始嘗試,然後用0.001,每個量級的學習率都去跑一下網路,然後觀察一下loss的情況,選擇一個相對合理的學習率,但是這種方法耗費時間和精力,這裡我們介紹一個更加簡單的方法。

    首先網路訓練開始之初設定一個比較小的學習率,比如1e-5,然後在每個batch之後都更新網路,同時增加學習率,統計每個batch計算出的loss。最後對比學習率的變化曲線和loss的變化曲線,從中就能夠發現相對較優的學習率。

    下面就是隨著迭代次數的增加,學習率不斷增加的曲線,以及不同的學習率對應的loss的曲線。

    從圖可知,隨著學習率的逐漸增大,loss經歷了一個降低又上升的過程,這也就對應於我們前文提到的學習率太小,loss下降太慢,學習率太大,loss有可能反而增大的實際情況。從上面的圖中我們就能夠找到一個相對合理的初始學習率區間0.1~0.3。

    參考文獻:https://arxiv.org/abs/1506.01186

  • 2 # 聲時刻

    不對,是這樣的,你要理解隨機是什麼意思。隨機數其實是白噪音,白噪音相當於包涵所有頻譜的濾波器。卷積初設是白噪音的話,相當於所有種類的濾波器疊加在一起。隨著訓練有些濾波器被加強了,有些被減弱了。加強的是對識別貢獻最大的。

    所以初設最好是白噪音。除非你知道哪個濾波器引數對你特定的資料集有效。

  • 3 # 晴月浩新雪

    訓練前可以用隨機方式初始化模型引數。但一個正常的訓練過程會使其逐漸向某個最優解(有可能只是區域性最優解)收斂。收斂到接近最優解時(不考慮過擬合),模型的效果就會比較好。所以這種說法不太準確。

  • 中秋節和大豐收的關聯?
  • 陽臺陽光充足,種哪種較大株的植物好?