Hyperparameter

粒子群優化相對於貝葉斯優化的超參數調整優勢?

  • February 4, 2016

當代有大量關於貝葉斯優化(1) 用於調整 ML 超參數的研究。這裡的驅動動機是,需要最少數量的數據點來對值得嘗試的點做出明智的選擇(目標函數調用很昂貴,所以越少越好),因為訓練模型是時間密集型的——有些是適度的- 我處理過的大型 SVM 問題可能需要幾分鐘到幾小時才能完成。

另一方面,Optunity是針對相同任務的粒子群實現。我對 PSO 並不是非常熟悉,但從需要大量試驗點以及因此目標函數評估來評估超參數表面的意義上來說,它似乎效率較低。

我是否遺漏了使 PSO 在機器學習環境中優於 BO 的關鍵細節?或者兩者之間的選擇總是與超參數調整任務固有的上下文相關?


(1) Shahriari 等人,“將人帶出循環:貝葉斯優化的回顧”。

作為 Optunity 的首席開發人員,我將加兩分錢。

我們已經完成了廣泛的基準測試,將 Optunity 與最流行的貝葉斯求解器(例如,hyperopt、SMAC、bayesopt)在實際問題上進行了比較,結果表明 PSO 實際上在許多實際情況下的效率並不低。在我們的基準測試中,包括在各種數據集上調整 SVM 分類器,Optunity 實際上比 hyperopt 和 SMAC 更有效,但比 BayesOpt 效率略低。我很想在這里分享結果,但我要等到 Optunity最終在 JMLR 中發布(現在已經審查了一年多,所以不要屏住呼吸……)。

正如您所指出的,提高效率是貝葉斯優化的一個常用賣點,但在實踐中,只有當基礎代理模型的假設成立時,它才成立,這遠非微不足道。在我們的實驗中,Optunity 非常簡單的 PSO 求解器在函數評估數量方面通常與復雜的貝葉斯方法具有競爭力。當提供良好的先驗時,貝葉斯求解器工作得很好,但是在沒有信息量的先驗的情況下,就效率而言,與 PSO 等元啟發式方法相比,幾乎沒有結構優勢。

PSO 的一大賣點是它的並行性令人尷尬。貝葉斯優化通常很難並行化,因為它固有的順序性(hyperopt 的實現是唯一真正的例外)。有了分發機會(這已成為常態),Optunity 迅速在掛鐘時間內率先獲得良好的解決方案。

Optunity 與大多數其他專用超參數優化庫之間的另一個關鍵區別是目標受眾:Optunity 具有最簡單的界面,並且針對非機器學習專家,而大多數其他庫需要對貝葉斯優化有所了解才能有效使用(即,它們是針對專家)。

我們製作這個庫的原因是,儘管存在專用的超參數優化方法,但它們在實踐中缺乏採用。大多數人要么根本不調整,要么手動調整,要么通過網格或隨機搜索等幼稚的方法進行調整。在我們看來,造成這種情況的一個關鍵原因是,在開發 Optunity 之前的現有庫在安裝、文檔、API 方面太難使用,並且通常僅限於單一環境。

引用自:https://stats.stackexchange.com/questions/194056

comments powered by Disqus