1 回答

TA貢獻1780條經驗 獲得超1個贊
所有機器學習開發者都會遇到同樣一個問題:你有一些想要使用的機器學習算法,但其中填滿了超參數——這些數字包括權重衰減率、高斯核函數寬度等等。算法本身并不會設置它們,你必須自己決定它們的數值。如果你調的參數不夠好,那么算法是不會工作的。那么該如何是好?
在調參時,絕大多數人只會憑經驗進行猜測。這不是個好現象,我們需要更合理的方法。所有人都希望一些黑箱優化策略如貝葉斯優化變得實用化,但在我看來,如果你不把貝葉斯優化的超參數調對,它就無法展現專家級的調參能力。事實上,我認識的每個使用貝葉斯優化的人都有著相同的經驗。最終,如果我認為手調參數更加方便,我就會轉回到傳統方法上去,這也是所有使用類似工具的人都會遇到的事。所以結果就是我們一般不會使用自動超參數選擇工具——令人沮喪的結論。我們都希望出現一個無參數的全局優化器,其中的超參數選擇是我們可以信任的。
我們不需要想象上界是如何幫助我們評估最優點的。例如,如果你選擇最大上界作為下一次迭代,你就已經非常接近全局極大值了。論文作者隨后繼續證明了這種方法的一些不錯的屬性。值得一提的是,他們是用數學方法證明的,同時也實踐展示了這種方法在很多非常規情形下要比隨機搜索要好——考慮到隨機超參數搜索(Random Search for Hyper-Parameter Optimization,James Bergstra & Yoshua Bengio)的效果非常強大,這是一個強有力的聲明。在論文中,研究人員也對貝葉斯優化等算法進行了比較,并展示了 LIPO 的競爭力。
此時此刻你或許會說:「等一下,我們并不知道 Lipschitz 常數 k 的值!」這不是一個大問題,因為它非常容易估計,例如,可以將 k 設置為每次迭代前觀察到的 f(x) 的最大斜率。這相當于解決如下問題:
Malherbe 等人測試了這種估算 k 的方法,并展示了它的優秀性能。
- 1 回答
- 0 關注
- 719 瀏覽
添加回答
舉報