建神經網絡模型,哪種優化算法更好?35000次測試告訴你

2021-01-17 TechWeb

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯繫出處。

想要優化自己的神經網絡,卻不知道哪種優化器更適合自己?

又或者,想知道深度學習中梯度下降的算法到底都有哪些?

現在,最全面的優化算法分析來了。

它整理了自1964年以來,幾乎所有的優化方法 (約130種),將它們進行了分類。

此外,它還給出了幾種基準測試方法,並用它分析了1344種可能的配置方案。

在運行了35000次測試後,它給出了非常全面的優化器算法分析介紹,並告訴你如何用這些基準測試,為自己的深度學習模型選擇最好的優化方案。

優化方法具體都有哪幾種?

從下圖這份密密麻麻的圖表來看,迄今為止,提出的優化算法已經有130種左右。

目前他們還看不出來區別,但在測試結果中可以發現,這些優化器明顯能被分成兩類,一種適用於VAE(變分自編碼器),另一種則不適用於VAE。

而從這些優化器中的常用參數來看,α0表示初始學習率,αlo和αup代表上下界,∆t表示切換衰減樣式的周期,k表示衰減因子。

可以看出,這些學習率的參數主要可以被分為常數、梯度下降、平滑下降、周期性、預熱、超收斂等幾種。

那麼,130多種優化器,哪種才是最適用的?而對這些參數進行調整,到底能對優化器起到多大的作用?

用基準測試方法來測測,就知道了。

8種基準測試方法

如下圖,作者提出了8種優化任務,在這些任務上面進行測試,以得到對比結果。

從圖中看來,無論是數據集(MNIST、CIFAR-10等)、模型(VAE、CNN、RNN等),還是任務(分類、NLP等)和標準(損失率、精度)都不一樣。

此外,batchsize也考慮在內(看來實驗機器性能不錯)。製作這些測試的目的在於,多角度考量出這些優化方法的合理性。

測試按照下圖流程走,整體算下來,共有1344種配置,共運行接近35000次。

為了得知哪種優化方法更合適,這樣做也是很拼了。

如何選擇適合自己的優化方法?

那麼,具體如何選擇適合的優化方法呢?

下圖是作者隨機選取的14個優化器。

下圖是這些優化器在上面8種基準測試下的表現結果。

其中,紅色的I表示誤差範圍。可以看出,在一定誤差範圍內,某一類優化方法的性能幾乎非常相似:它們在各種基準測試上的表現都不錯。

為了驗證這些測試方法的穩定性,作者特意對其中一些算法進行了參數調整,下圖是經典算法RMSProp和RMSProp(2)的調優結果。

可見,不同的參數能給優化算法的性能帶來不小的波動變化。

更直接地,如果增加(性能)預算,從下圖可以看出,性能的改進也會有所增加。(圖中橙色為所有灰線的中值)

也就是說,即使優化算法的性能不錯,合理調參仍然不可或缺。

那麼,到底有多少優化器存在「改進參數,竟然能大幅增加優化能力」的問題呢?

還不少。

從下圖來看,綠色表示優化過後,優化算法能更好地運行。

換而言之,只要某種優化算法的結果是一片綠,那麼它原來的默認參數就真的很糟糕……

例如,AMSGrad、Mom、NAG的默認參數都存在很大的改進空間。相比而言,AMSBound由於自適應,默認參數都還非常不錯,不需要再有大改進。

對這些優化器進行評估後,研究者們得出以下幾個結論:

1、優化器的性能,在不同的任務中有很大差異;

2、事實上,大部分優化器的性能驚人地相似,目前尚沒有「最通用」的優化方法;

3、對優化器進行(參數)微調,其實和選擇優化器一樣重要、甚至更重要。

不過,雖然這份表格已經非常詳細,還是有細心的網友發現了盲點:像SWA這樣非常簡單高效的方法,還是在分析時被遺漏了。

當然,就提出的幾種基準測試來說,已經適合用於分析大部分優化器的選擇方案。

目前,作者已經在ArXiv論文頁面,開源了基準測試方法的Code,感興趣的小夥伴可戳論文地址查看~

作者介紹

這幾位作者都來自於德國圖賓根大學。

 

Robin M. Schmidt,計算機專業研究生,主要研究方向是人工智慧,感興趣的方向在深度學習、強化學習及優化上。

Philipp Hennig,機器學習教授,兼任馬普所科學家,曾於海德堡大學和帝國理工學院修讀物理,並在劍橋大學獲得機器學習博士學位。

 

Frank Schneider,機器學習博士生,研究領域是機器學習的優化方法。目前在鑽研深度學習的超參數,使深度神經網絡的訓練自動化。

論文地址:

https://arxiv.org/abs/2007.01547

 

相關焦點

  • 建神經網絡模型,哪種優化算法更好?35000次測試告訴你丨圖賓根大學...
    蕭簫 發自 凹非寺量子位 報導 | 公眾號 QbitAI想要優化自己的神經網絡,卻不知道哪種優化器更適合自己?又或者,想知道深度學習中梯度下降的算法到底都有哪些?現在,最全面的優化算法分析來了。
  • 一文看懂各種神經網絡優化算法:從梯度下降到Adam方法
    原標題:一文看懂各種神經網絡優化算法:從梯度下降到Adam方法 王小新 編譯自 Medium 量子位 出品 | 公眾號 QbitAI 在調整模型更新權重和偏差參數的方式時,你是否考慮過哪種優化算法能使模型產生更好且更快的效果?
  • 訓練神經網絡的五大算法
    訓練神經網絡的五大算法 Alberto Quesada 發表於 2017-11-16 15:30:54   神經網絡模型的每一類學習過程通常被歸納為一種訓練算法。
  • 深度| 清華大學自動化系張長水教授:神經網絡模型的結構優化
    清華大學自動化系張長水教授帶來了題為《神經網絡模型的結構優化》的報告。今天我和大家分享的主題是「神經網絡模型的結構優化」。比如說,深度學習網絡模型計算量特別大、模型特別複雜。模型複雜導致兩個問題,第一是訓練上的困難,第二個是測試上的困難。訓練上的困難在於它需要大量的時間,而且一個深度學習網絡要想在某個問題上達到特別好的實用化性能,需要特別多的數據。而這對於機器計算的要求、對於數據的要求,通常來說不是我們在高校擅長滿足的。因此,工業界就顯得很有優勢,他們有數據、有計算資源。
  • 神經網絡算法原理_神經網絡算法的應用_神經網絡算法實例說明
    神經網絡是一種模擬人腦結構的算法模型。其原理就在於將信息分布式存儲和並行協同處理。雖然每個單元的功能非常簡單,但大量單元構成的網絡系統就能實現非常複雜的數據計算,並且還是一個高度複雜的非線性動力學習系統。   神經網絡的結構更接近於人腦,具有大規模並行、分布式存儲和處理、自組織、自適應和自學能力。
  • 盤點| 機器學習入門算法:從線性模型到神經網絡
    原標題:盤點 | 機器學習入門算法:從線性模型到神經網絡 選自Dataconomy 機器之心編譯 參與:王宇欣、吳攀、蔣思源 機器學習算法經常被用於預測分析。在商業中,預測分析可以用於告訴企業未來最有可能發生什麼。例如,使用預測分析算法,在線 T 恤零售商可以使用當前的數據來預測下個月他們將會售出多少 T 恤。
  • 解讀| 如何用進化方法優化大規模圖像分類神經網絡?
    我們認為,演化一旦開始,其輸出就應當是一個經過完整訓練的模型,不需任何人進行參與。這項研究尤其重要的是結果的可重複性、可變性以及計算要求。解讀不論是在學術研究還是產業應用方面,神經網絡都展現了強大的能力。為了解決不同的實際問題,多種網絡架構可根據特定的任務而建立。然而如今所創建的有效架構均為人工設計的成果,因此本文為解決神經網絡圖像分類方面的架構優化問題提出了新的方法。
  • 【深度】機器學習進化史:從線性模型到神經網絡
    但是當涉及神經網絡,你的計算量將會大大增加,即便你已經學習了相關模型,但仍然要搞明白該模型的輸出。而且,這還不是最大的問題,通常一個支持向量機應對一百萬個參數還遊刃有餘,但是我所見過一個成功的最小神經網絡,涉及的參數就多達600萬個,而且這還是最小的。另一個問題是訓練算法並沒有從最優化理論中獲得太多好處。我們所使用的絕大多數線性模型基本上都有數學理論支持,並且可以確定何時完成訓練。
  • 程式設計師面試常問算法:不用高等數學講明白神經網絡
    生物神經網絡通常神經網絡可以分兩種,一是生物神經網絡,一是人工神經網絡。生物神經網絡:一般指生物的大腦神經元、細胞、觸點等組成的網絡,它產生生物的意識,幫助其進行思考和行動。人工神經網絡:它是一種模仿動物神經網絡行為特徵的算法數學模型。二、算法思維分析這是一道考察神經網絡基本原理的題目,一般來說生物神經網絡和人工神經網絡基本沒關係,但是它有助於理解人工神經網絡。
  • 蒙特卡洛樹搜索在黑盒優化和神經網絡結構搜索中的應用
    現實世界的大多數系統是沒有辦法給出一個確切的函數定義,比如機器學習模型中的調參,大規模數據中心的冷藏策略等問題。這類問題統統被定義為黑盒優化。黑盒優化是在沒辦法求解梯度的情況下,通過觀察輸入和輸出,去猜測優化變量的最優解。在過去的幾十年發展中,遺傳算法和貝葉斯優化一直是黑盒優化最熱門的方法。
  • 百度NLP | 神經網絡模型壓縮技術
    模型越趨複雜,由最初的詞袋模型(BOW)發展至建模短距離依賴關係的卷積神經網絡(CNN),建模長距離依賴關係的循環神經網絡(RNN),以及基於詞與詞之間匹配矩陣神經網絡(MM-DNN)等等。同時,由於語言複雜、表達多樣、應用廣泛,為了更好的解決語言學習的問題,我們將更多的 NLP 特徵引入 DNN 模型,比如基於 t 統計量的二元結構特徵,基於依存分析技術的詞語搭配結構特徵等。
  • 利用遺傳算法優化GANs
    GANs是在訓練階段最需要計算的密集型模型之一,因為它相當於同時訓練兩個神經網絡。對於我的普通電腦來說,把gan訓練到收斂是非常困難的。遺傳算法是根據大自然中生物體進化規律而設計提出的,是根據大自然中生物體進化規律而設計提出的。是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法。
  • 前沿| 利用遺傳算法優化神經網絡:Uber提出深度學習訓練新方式
    許多人認為,SGD 算法有效計算梯度的能力對於這種訓練能力而言至關重要。但是,Uber 近日發布的五篇論文表明,神經進化(neuroevolution)這種利用遺傳算法的神經網絡優化策略,也是訓練深度神經網絡解決強化學習(RL)問題的有效方法。
  • 在AWS上使用GPU實現分布式神經網絡
    然而,正如上面所解釋的,培訓單一實例實際上意味著訓練和測試數個模型,每個對應一個不同的hyperparameters組合。這是第二個層次,過程可以被分配。這個級別是特別有趣的,如果有許多參數優化和一個好的策略優化它們,如貝葉斯優化與高斯過程。運行之間唯一的的通信是hyperparameter設置和測試評價指標。 最後,該算法訓練本身可以是分布式的。
  • AutoML : 更有效地設計神經網絡模型
    在本文中,我們將介紹AutoML的以下內容:關於AutoKeras的一個簡短介紹通過AutoKeras這個神經架構搜索算法,我們可以找到最好的神經網絡架構,比如層中神經元的數量,架構的層數,加入哪些層,層的特定參數,比如Dropout中的濾波器大小或掉落神經元的百分比等等。
  • 前饋神經網絡入門:為什麼它很重要?
    網絡可以包含任意數量的隱藏層和任意數量的隱藏單元。一個單元基本上類似於一個神經元,它從前一層的單元中獲取輸入並計算自己的激活值。現在問題來了,為什麼當我們有線性機器學習模型時,還需要前饋網絡?這是因為線性模型僅限於線性函數,而神經網絡不是。當我們的數據不是線性可分離的線性模型時,面臨著近似的問題,而神經網絡則相當容易。隱藏層用於增加非線性並改變數據的表示,以便更好地泛化函數。
  • 74KB圖片也高清,谷歌用神經網絡打造圖像壓縮新算法
    最新的好消息是,谷歌團隊採用了一種GANs與基於神經網絡的壓縮算法相結合的圖像壓縮方式HiFiC,在碼率高度壓縮的情況下,仍能對圖像高保真還原。GAN(Generative Adversarial Networks,生成式對抗網絡)顧名思義,系統讓兩個神經網絡相互「磨鍊」,一個神經網絡負責生成接近真實的數據,另一個神經網絡負責區分真實數據與生成的數據。
  • 算法之「算法」:所有機器學習算法都可以表示為神經網絡
    支持向量機(SVM)算法試圖通過所謂的「核技巧」將數據投影到一個新的空間,從而優化數據的線性可分性。數據轉換完成後,該算法繪製出沿組界最佳分離數據的超平面。超平面簡單定義為現有維度的線性結合,很像是二維的直線和三維的平面。這樣說來,可以將SVM算法看成是將數據投影到一個新的空間,隨後進行多元回歸。神經網絡的輸出可以通過某種有界輸出函數來實現概率結果。
  • 從零開始:教你如何訓練神經網絡
    Bushaev 作者從神經網絡簡單的數學定義開始,沿著損失函數、激活函數和反向傳播等方法進一步描述基本的優化算法。作者會解釋什麼是損失函數,以及「訓練」神經網絡或者任何其他的機器學習模型到底意味著什麼。作者的解釋並不是一個關於神經網絡全面而深度的介紹,事實上,作者希望我們讀者已經對這些相關的概念早已瞭然於心。如果讀者想更好地理解神經網絡具體是如何運行的,讀者可以閱讀《深度學習》等相關書籍,或參閱文末提供的相關學習資源列表。
  • 神經網絡學習降噪算法解析
    這次研究與以往的降噪學習不同點在於,一般的神經網絡深度學習需要一個目標值,以圖像降噪處理來說,就是需要一個ISO 100時的高信噪比目標值,讓ISO 12800的輸入值通過算法來達到與之近似的水準。但NVIDIA這一套新算法直接以高噪聲輸入為源進行學習,最終得到的結果與傳統方案幾乎一致,而且因為不需要目標值,結構更簡單,所以速度明顯更快。