吳恩達深度學習筆記(50)-超參數訓練的實踐

超參數訓練的實踐:Pandas VS Caviar(Hyperparameters tuning in practice: Pandas vs. Caviar)

到現在為止,你已經聽了許多關於如何搜索最優超參數的內容,在結束我們關於超參數搜索的討論之前,我想最後和你分享一些建議和技巧,關於如何組織你的超參數搜索過程。

吳恩達深度學習筆記(50)-超參數訓練的實踐

如今的深度學習已經應用到許多不同的領域,某個應用領域的超參數設定,有可能通用於另一領域,不同的應用領域出現相互交融。

比如,曾經看到過計算機視覺領域中湧現的巧妙方法,比如說Confonets或ResNets,這我們會在後續課程中講到。它還成功應用於語音識別,我還看到過最初起源於語音識別的想法成功應用於NLP等等。

深度學習領域中,發展很好的一點是,不同應用領域的人們會閱讀越來越多其它研究領域的文章,跨領域去尋找靈感。

就超參數的設定而言,見到過有些直覺想法變得很缺乏新意,所以,即使你只研究一個問題,比如說邏輯學,你也許已經找到一組很好的參數設置,並繼續發展算法,或許在幾個月的過程中,觀察到你的數據會逐漸改變,或也許只是在你的數據中心更新了服務器,正因為有了這些變化,你原來的超參數的設定不再好用,

所以建議,重新測試或評估你的超參數,至少每隔幾個月一次,以確保你對數值依然很滿意。

最後,關於如何搜索超參數的問題,見過大概兩種重要的思想流派或人們通常採用的兩種重要但不同的方式。

1.Babysitting one model

吳恩達深度學習筆記(50)-超參數訓練的實踐

一種是你照看一個模型,通常是有龐大的數據組,但沒有許多計算資源或足夠的CPU和GPU的前提下,基本而言,你只可以一次負擔起試驗一個模型或一小批模型,在這種情況下,即使當它在試驗時,你也可以逐漸改良。

比如,第0天,你將隨機參數初始化,然後開始試驗,然後你逐漸觀察自己的學習曲線,也許是損失函數J,或者數據設置誤差或其它的東西,在第1天內逐漸減少,那這一天末的時候,你可能會說,看,它學習得真不錯。

我試著增加一點學習速率,看看它會怎樣,也許結果證明它做得更好,那是你第二天的表現。兩天後,你會說,它依舊做得不錯,也許我現在可以填充下Momentum或減少變量。

然後進入第三天,每天,你都會觀察它,不斷調整你的參數。也許有一天,你會發現你的學習率太大了,所以你可能又迴歸之前的模型,像這樣,但你可以說是在每天花時間照看此模型,即使是它在許多天或許多星期的試驗過程中。所以這是一個人們照料一個模型的方法,觀察它的表現,耐心地調試學習率,但那通常是因為你沒有足夠的計算能力,不能在同一時間試驗大量模型時才採取的辦法。

2.train many models

吳恩達深度學習筆記(50)-超參數訓練的實踐

另一種方法則是同時試驗多種模型,你設置了一些超參數,儘管讓它自己運行,或者是一天甚至多天,然後你會獲得像類似上面的學習曲線,這可以是損失函數J或實驗誤差或損失或數據誤差的損失,但都是你曲線軌跡的度量。

同時你可以開始一個有著不同超參數設定的不同模型,所以,你的第二個模型會生成一個不同的學習曲線,也許是像這樣的一條(紫色曲線),我會說這條看起來更好些。與此同時,你可以試驗第三種模型,其可能產生一條像這樣的學習曲線(紅色曲線),還有另一條(綠色曲線),也許這條有所偏離,像這樣,等等。或者你可以同時平行試驗許多不同的模型,橙色的線就是不同的模型。用這種方式你可以試驗許多不同的參數設定,然後只是最後快速選擇工作效果最好的那個。在這個例子中,也許這條看起來是最好的(下方綠色曲線)。

吳恩達深度學習筆記(50)-超參數訓練的實踐

打個比方,我把左邊的方法稱為熊貓方式。當熊貓有了孩子,他們的孩子非常少,一次通常只有一個,然後他們花費很多精力撫養熊貓寶寶以確保其能成活,所以,這的確是一種照料,一種模型類似於一隻熊貓寶寶。

對比而言,右邊的方式更像魚類的行為,我稱之為魚子醬方式。在交配季節,有些魚類會產下一億顆卵,但魚類繁殖的方式是,它們會產生很多卵,但不對其中任何一個多加照料,只是希望其中一個,或其中一群,能夠表現出色。

這就是哺乳動物繁衍和魚類,很多爬蟲類動物繁衍的區別。我將稱之為熊貓方式與魚子醬方式,因為這很有趣,更容易記住。

所以這兩種方式的選擇,是由你擁有的計算資源決定的,如果你擁有足夠的計算機去平行試驗許多模型,那絕對採用魚子醬方式,嘗試許多不同的超參數,看效果怎麼樣。

但在一些應用領域,比如在線廣告設置和計算機視覺應用領域,那裡的數據太多了,你需要試驗大量的模型,所以同時試驗大量的模型是很困難的,它的確是依賴於應用的過程。但我看到那些應用熊貓方式多一些的組織,那裡,你會像對嬰兒一樣照看一個模型,調試參數,試著讓它工作運轉。儘管,當然,甚至是在熊貓方式中,試驗一個模型,觀察它工作與否,也許第二或第三個星期後,也許應該建立一個不同的模型(綠色曲線),像熊貓那樣照料它,這樣一生中可以培育幾個孩子,即使它們一次只有一個孩子或孩子的數量很少。

吳恩達深度學習筆記(50)-超參數訓練的實踐

所以希望你能學會如何進行超參數的搜索過程,現在,還有另一種技巧,能使你的神經網絡變得更加堅實,它並不是對所有的神經網絡都適用,但當適用時,它可以使超參數搜索變得容易許多並加速試驗過程,我們在下個筆記中再講解這個技巧。


分享到:


相關文章: