0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文秒懂貝葉斯優(yōu)化/Bayesian Optimization

深度學習自然語言處理 ? 來源:AI部落聯(lián)盟 ? 作者:AI部落聯(lián)盟 ? 2021-04-09 11:26 ? 次閱讀

今天想談的問題是:什么是貝葉斯優(yōu)化/Bayesian Optimization,基本用法是什么?

本文的定位是:幫助未接觸、僅聽說過、初次接觸貝葉斯優(yōu)化的小白們一文看懂什么是貝葉斯優(yōu)化和基本用法,大神/貝葉斯優(yōu)化專家們求輕噴,覺得不錯的記得幫點贊/在看/轉發(fā)幫擴散哦!謝謝。

梳理這個問題有這么兩個原因:

1、在工業(yè)界,最近我看到不少同學在探索并使用貝葉斯優(yōu)化的方法尋找更好的超參,找到performance更好的模型,漲點漲分;

2、家里另一位在學習和研究“Safety”強化學習的時候,發(fā)現(xiàn)一個“牛牛“的代碼是基于貝葉斯優(yōu)化的,為了提高家庭地位不得不看一看啦哈哈哈。

于是之前僅僅只聽說過貝葉斯優(yōu)化的我,趕緊知乎治學,面向Github編程,面向谷歌解決問題,一通搜索學習了解入門之后基本有個框架和概念了,遂記錄在此,望茫?;ヂ?lián)網看到這個文章的小白們也可以快速入門貝葉斯優(yōu)化/Bayesian Optimization!

貝葉斯優(yōu)化應用場景

如果你要 解決的問題/面對的場景,假設輸入為x,輸出為f(x),有如下特點,那不妨試一下貝葉斯優(yōu)化吧。

這個函數(shù)f(x)特點是計算量特別大,每次計算都特別耗時、耗資源;

甚至f(x)可能都沒有解析式表達式。

無法知道函數(shù)f(x)對于x的梯度應該如何計算。

需要找到函數(shù)f(x)在x自變量上的全局最優(yōu)解(最低點對應的取值)

舉例:

我們有一個參數(shù)量巨大的推薦系統(tǒng)模型(或者是某個NLP模型),每次訓練很消耗資源和時間,但我們仍然期待找到更好的模型超參數(shù)讓這個推薦系統(tǒng)的效果更好,而人工參數(shù)搜索太費神、Grid Search太消耗資源和時間,想找一個不那么費神同時資源消耗和時間消耗也比Grid Search稍微小一點的辦法。

這個場景基本滿足以上特點:一是計算量大、二是模型對于超參數(shù)(比如learning rate學習率,batch size)的梯度無從知曉;所以可以考慮用貝葉斯優(yōu)化來尋找最合適的一組超參。對此實際應用感興趣的同學可以進一步閱讀:Facebook efficient-tuning-of-online-systems-using-bayesian-optimization。

但這兒還是要給想用貝葉斯優(yōu)化尋找超參的同學稍微潑以下冷水:由于實際系統(tǒng)的復雜性、計算量超級巨大(或者說資源的限制),可能連貝葉斯優(yōu)化所需要的超參組合都無法滿足,導致最后超參搜索的結果不如一開始拍腦袋(根據(jù)經驗的調參)效果好哦。所以這是一個辦法,但最好不是唯一辦法哦。

一個關于Safe RL的例子:強化學習中的一個環(huán)境里有Agent A(比如一個小學生學如何騎自行車)在學習如何根據(jù)環(huán)境做出action,同時又有一個Agent B在幫助Agent A進行學習(比如有個老師擔心寶貝學生摔倒,要教學生騎車)。Agent B需要從多種策略(每個策略還有一些參數(shù))里找到一個最優(yōu)的策略組合幫助Agent A進行學習(比如學自行車的時候自行車旁邊放個2輪子、帶個頭盔,或者直接用手扶著,或者直接推著推著突然放手)。那么Agent B的如何選擇最優(yōu)輔助策略組合以及對應策略的參數(shù)也可以使用貝葉斯優(yōu)化。感興趣的同學可以閱讀NeurIPS 2020的Spotlight presentation文章:Safe Reinforcement Learning via Curriculum Induction。

15eddb62-98d4-11eb-8b86-12bb97331649.png

圖1 Safe RL中例子

有了使用場景,我們就會問什么是貝葉斯優(yōu)化啦。

什么是貝葉斯優(yōu)化

貝葉斯優(yōu)化定義的一種形象描述。

分享Medium上這個不錯的例子。

比如我們有一個目標函數(shù)c(x),代表輸入為x下的代價為c(x)。優(yōu)化器是無法知道這個c(x)的真實曲線如何的,只能通過部分(有限)的樣本x和對應的c(x)值。假設這個c(x)如圖2所示。

pIYBAGBvy3eAUH4RAADgUmbVEAk173.png

圖2 優(yōu)化函數(shù)舉例

貝葉斯優(yōu)化器為了得到c(x)的全局最優(yōu)解,首先要采樣一些點x來觀察c(x)長什么樣子,這個過程又可以叫surrogate optimization(替代優(yōu)化),由于無法窺見c(x)的全貌,只能通過采樣點來找到一個模擬c(x)的替代曲線,如圖3所示:

o4YBAGBvy5mAQCUjAAFkiifqMVk941.png

圖3 采樣的點與替代的曲線

得到這個模擬的/替代的曲線之后,我們就能找到兩個還算不錯的最小值對應的點了(圖3中標注的是promising minima),于是根據(jù)當前觀察到的這兩個最小點,再采樣更多的點,用更多的點模擬出一個更逼真的c(x)再找最小點的位置,如圖4所示。

pIYBAGBvy7SAXX9LAAF49m85y4k384.png

圖4 繼續(xù)采樣 空心的圈為第2次采樣的點

然后我們重復上面這個過程,每次重復的時候我們干以下幾件事情:先找到可擬合當前點的一個替代函數(shù),然后根據(jù)替代函數(shù)的最小值所在的位置去采樣更多的 ,再更新替代函數(shù),如此往復。

函數(shù)替代的例子: 給定x的取之范圍,那么一個復雜的函數(shù)y = arcsin(( 1- cos(x) * cos(x)) / sinx) 則可以用y=x來替代。

如果我們的c(x)不是特別奇怪的話,一般來說經過幾次迭代之后,我們就能找到c(x)的最優(yōu)解啦。當然如果c(x)特別奇怪,那可能是數(shù)據(jù)的問題而不是。。。c(x)的問題。再回頭來看上面這個過程,貝葉斯優(yōu)化的厲害的地方:a 幾乎沒有對函數(shù)c(x)做任何的假設限定,也不需要知道c(x)的梯度,也不需要知道c(x)到底是個什么解析表達式,就直接得出了c(x)的全局最優(yōu)。

以上例子中有兩個重要的點:

1、用什么函數(shù)作為替代函數(shù)(選擇函數(shù)進行curve-fiting的過程),對應Gaussian Processes;

2、如何根據(jù)當前信息和替代函數(shù)的局部最優(yōu)點繼續(xù)采樣x,對應acquisition function。

為什么可以用Gaussian Processes對曲線進行擬合呢?

176378e4-98d4-11eb-8b86-12bb97331649.png

圖5 總共4個黑色的點,代表4個數(shù)據(jù)點。左邊是Gaussian process產生的多個函數(shù)曲線(紅、藍、黃等曲線);右邊的圖顯示的是左圖的那些函數(shù)都會經過黑點,以及函數(shù)值的波動范圍(灰色部分)。

Gaussian Processes的一個非常大的優(yōu)點:“先驗知識”可以根據(jù)新觀測量更新,而Gaussian Processes又可以根據(jù)這個更新后的“先驗知識”得到新的function的分布,從而更好的擬合數(shù)據(jù)點。也就是:如果我們觀測了3個函數(shù)值,那么有一種高斯分布和這三個觀測的數(shù)據(jù)點對應,而如果我們觀測了4個點,又可以新計算一個對應的高斯分布。

這里我們簡單以圖6為例描述一下:Gaussian Process是如何根據(jù)擬合數(shù)據(jù),然后對新的數(shù)據(jù)做預測?

如圖6所示,假設現(xiàn)已觀測到3個點(左邊黑色的3個圈),假設這計算得到3個函數(shù)值分布是 ,Gaussian Process的理論告訴我們(具體理論先略了)給定一個新的 輸入 (左圖藍色 ),我們可以按照圖6左下角的方式計算出與藍色 對應的 的均值和方差,也就是輸出的范圍。

pIYBAGBvzAmASlz6AAIRHZhuPnM867.png

圖6 更新過程示意圖

acquisition function在決定如何選取新的采樣點是面臨兩個經典問題:exploitation和exploration,我稱之為深度和廣度。以圖5的例子來看,

exploitation意味著盡可能順著當前已知的信息,比如順著黑色點的地方來采樣更多的點,也就是深度。當已知信息利用到一定程度,這種exploitation方向的采樣會很少有信息增益。

exploration顧名思義就是更趨向探索性質,比如順著圖5右邊的灰色區(qū)域較大的地方探索,也就是廣度,探索更多未知的地方。

假設我們把acquisition functin簡寫為aq(x),整個貝葉斯優(yōu)化可以概括為:

基于Gaussian Process,初始化替代函數(shù)的先驗分布;

根據(jù)當前替代函數(shù)的先驗分布和aq(x),采樣若干個數(shù)據(jù)點。

根據(jù)采樣的x得到目標函數(shù)c(x)的新值。

根據(jù)新的數(shù)據(jù),更新替代函數(shù)的先驗分布。

并開始重復迭代2-4步。

迭代之后,根據(jù)當前的Gaussian Process找到全局最優(yōu)解。

也就是說貝葉適優(yōu)化實際上是:由于目標函數(shù)無法/不太好 優(yōu)化,那我們找一個替代函數(shù)來優(yōu)化,為了找到當前目標函數(shù)的合適替代函數(shù),賦予了替代函數(shù)概率分布,然后根據(jù)當前已有的先驗知識,使用acquisition function來評估如何選擇新的采樣點(trade-off between exploration and exploitation),獲得新的采樣點之后更新先驗知識,然后繼續(xù)迭代找到最合適的替代函數(shù),最終求得全局最優(yōu)解。

貝葉斯優(yōu)化偏公式的定義,個人還是更喜歡公式定義的。

Bayesian Optimization(BO)是對black-box函數(shù)全局最優(yōu)求解的一種strategy。具體的 是一個定義在 上L-Lipschitz連續(xù)的函數(shù),我們想要找到 的全局最優(yōu)解:

這里我們假設函數(shù) 是一個black-box,對于這個black-box,我們只能觀測到有噪聲的函數(shù)值: 其中 ,也就是零均值高斯分布。于是整個優(yōu)化目標可以變成:找到一系列的 使得 最?。?/p>

要讓 被快速優(yōu)化到最小,由于 對應了函數(shù) 這個最小點,所以越靠近 開始采樣,那么采樣得到的一系列 越快結束 的優(yōu)化,也就結束了 全局最優(yōu)解的優(yōu)化。

這一序列 具體是如何得到的呢?假設我們在第 次iteration里采樣到了 ,我們將新觀測到的數(shù)據(jù)加入到已有的觀測數(shù)據(jù) 里,然后通過優(yōu)化一個叫actuisition function 的函數(shù)得到下一個時刻要采樣的 ,也就是 。

那么這個 要如何設計呢?歸根結底是如何根據(jù)已有的觀測量選擇 ,于是設計過程中就遇到了經典的exploration和exploitation問題,也就是是繼續(xù)沿著已有的信息深挖,還是擴大信息的覆蓋廣度?

我們已有的觀測量是 ,假設這些觀測量服從高斯分布 ,其中 分別是均值和方差,也對應著exploitation和exploration(方差通常也指不確定性)。那我們就根據(jù)expatiation和exploration來設計 吧,這里只介紹一鐘叫Gaussian Process-Upper Confidence Bound (GP-UCB)的設計:

很容易看出, a 其實就是均值和方差加權和,也就起到了調和exploitation和exploration的作用啦。至于其他幾種acquisition function,Expected Improvement (EI),(Predictive) Entropy Search,Thompson Sampling(TS)等本文就不再一一描述啦。

有了 就能確定新的采樣點了,Gaussian Process也就能跟著更新了,最終替代函數(shù)的擬合也就越來越貼近真實函數(shù)了,最終找到全局最優(yōu)點。

結合上面的形象描述和公式定義描述,總結以下貝葉斯優(yōu)化的兩個重點:

1. 定義一種關于要優(yōu)化的函數(shù)/替代函數(shù)的概率分布,這種分布可以根據(jù)新獲得的數(shù)據(jù)進行不斷更新。我們常用的是Gaussian Process。

2. 定義一種acquisition function。這個函數(shù)幫助我們根據(jù)當前信息決定如何進行新的采樣才能獲得最大的信息增益,并最終找到全局最優(yōu)。

貝葉斯優(yōu)化的應用

紙上得來終覺淺,絕知此事要躬行。

我們就用python來跑幾個例子看看吧。以下例子需要安裝Gpy和GpyOpt這兩個python庫。

假設我們的目標函數(shù)是:

這個函數(shù)定義在[-1,1]之間,通常也叫domain。這個函數(shù)的在定義區(qū)間的最優(yōu)點是:x 。于是代碼為:

import GPyOptdef myf(x): return x ** 2bounds = [{‘name’: ‘var_1’, ‘type’: ‘continuous’, ‘domain’: (-1,1)}]# 變量名字,連續(xù)變量,定義區(qū)間是-1到1max_iter = 15# 最大迭代次數(shù)myProblem = GPyOpt.methods.BayesianOptimization(myf,bounds)#用貝葉適優(yōu)化來求解這個函數(shù),函數(shù)的約束條件是boundsmyProblem.run_optimization(max_iter)#開始求解print(myProblem.x_opt)#打印最優(yōu)解對應的x為-0.00103print(myProblem.fx_opt)#打印最優(yōu)解對應d的函數(shù)值為0.0004

總結

本文主要有以下內容:

寫貝葉適優(yōu)化的出發(fā)點。

貝葉適優(yōu)化的適用場景。

貝葉適優(yōu)化是什么?(包括一個形象和一個公式化的解釋)。

貝葉適優(yōu)化的應用例子。

那么問一問自己,看懂了嗎?

參考文獻:

https://zhuanlan.zhihu.com/p/76269142

https://radiant-brushlands-42789.herokuapp.com/towardsdatascience.com/the-beauty-of-bayesian-optimization-explained-in-simple-terms-81f3ee13b10f

https://www.youtube.com/watch?v=4vGiHC35j9s

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 工業(yè)
    +關注

    關注

    3

    文章

    1743

    瀏覽量

    46255
  • 函數(shù)
    +關注

    關注

    3

    文章

    4260

    瀏覽量

    62232
  • 貝葉斯
    +關注

    關注

    0

    文章

    77

    瀏覽量

    12540

原文標題:【機器學習】一文看懂貝葉斯優(yōu)化/Bayesian Optimization

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    共繪智能礦山新藍圖,啟科技簽約成為首批礦鴻OSV生態(tài)伙伴

    鄂爾多市礦鴻OSV生態(tài)盛會在內蒙古璀璨啟幕,由鄂爾多市數(shù)字投資有限公司領銜,華為技術有限公司鼎力協(xié)辦。大會旨在樹立礦鴻生態(tài)建設新典范,激發(fā)圈內創(chuàng)新潛能。廈門啟科技有限公司(以下簡稱“
    的頭像 發(fā)表于 08-30 12:36 ?212次閱讀
    共繪智能礦山新藍圖,<b class='flag-5'>貝</b>啟科技簽約成為首批礦鴻OSV生態(tài)伙伴

    濾波和卡爾曼濾波的區(qū)別

    濾波和卡爾曼濾波是兩種常用的濾波方法,它們在信號處理、導航、機器人定位等領域有著廣泛的應用。
    的頭像 發(fā)表于 08-01 15:25 ?375次閱讀

    再次問鼎全球首富

    今日,亞馬遜創(chuàng)始人杰夫·再次榮登全球首富寶座,成功超越了法國奢侈品巨頭LVMH老板伯納德·阿爾諾。在全球富豪500強排名中,以驚人的2090億美元凈資產位列榜首。
    的頭像 發(fā)表于 06-12 17:36 ?593次閱讀

    帶你IEEE 754浮點數(shù)

    、簡介1、常見的浮點數(shù)表示方式是IEEE754標準,它規(guī)定了浮點數(shù)的存儲格式和運算規(guī)則,這個標準定義了兩種浮點數(shù)表示:單精度和雙精度。2、任何個浮點數(shù)的二進制數(shù)可以寫為:NUM=(-1)^S*2
    的頭像 發(fā)表于 03-18 08:09 ?7373次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>帶你<b class='flag-5'>秒</b><b class='flag-5'>懂</b>IEEE 754浮點數(shù)

    馬斯克財富降至1890億美元,成全球首富

    近期稍早時間,IT之家揭示全球億萬富豪的“新秩序”:彭博社億萬富翁指數(shù)顯示,3 月 4 日,以 2000 億美元的凈資產重返首位,這是他自 2021 年秋首次奪冠。緊隨其后分別為 LVMH 集團 CEO 貝爾納·阿爾諾(1970 億美元)及馬斯克(約 1890 億美
    的頭像 發(fā)表于 03-10 10:19 ?823次閱讀

    什么是轉換元件和作用?

    轉換元件在各種領域都有著重要的作用,例如在電力系統(tǒng)中,變壓器可以將高壓電能轉換為低壓電能,以供家庭和工業(yè)使用;在熱力系統(tǒng)中,熱交換器可以將熱能從個流體傳遞到另個流體,實現(xiàn)能量的轉換和利用;在機械系統(tǒng)中,發(fā)動機可以將燃料的化學能轉換為機械能,驅動車輛或機器運行。
    的頭像 發(fā)表于 03-05 13:27 ?809次閱讀

    和英偉達投資Figure人形機器人 超大手筆投資

    和英偉達投資Figure人形機器人 就在AI之后,大家還在關注人形機器人,有外媒報道和科技巨頭英偉達將合力投資Figure AI Inc.,F(xiàn)igure AI是
    的頭像 發(fā)表于 02-25 14:37 ?814次閱讀

    本月再次出售亞馬遜股票,套現(xiàn)85億美元?

    美國證交會(SEC)公布的文件顯示,是在上周末開啟了本次股票出售行動,于周二結束。其間,總共出售 23.7 億美元估值的 14006906 股亞馬遜股票。
    的頭像 發(fā)表于 02-21 15:50 ?425次閱讀

    晶振以及晶振電路

    晶振以及晶振電路
    的頭像 發(fā)表于 12-08 18:18 ?1371次閱讀
    <b class='flag-5'>秒</b><b class='flag-5'>懂</b>晶振以及晶振電路

    二極管為什么單向導電?看完!

    二極管為什么單向導電?看完!
    的頭像 發(fā)表于 12-04 15:22 ?916次閱讀
    二極管為什么單向導電?看完<b class='flag-5'>秒</b><b class='flag-5'>懂</b>!

    還沒使用SiC FET?快來看看本文,SiC FET性能和優(yōu)勢!

    還沒使用SiC FET?快來看看本文,SiC FET性能和優(yōu)勢!
    的頭像 發(fā)表于 11-29 16:49 ?618次閱讀
    還沒使用SiC FET?快來看看本文,<b class='flag-5'>秒</b><b class='flag-5'>懂</b>SiC FET性能和優(yōu)勢!

    Coherent Glasgow卓越中心實現(xiàn)飛和皮激光器統(tǒng)運營

    材料、網絡和激光領域的全球創(chuàng)新巨頭Coherent 高意在蘇格蘭格拉哥的超快卓越中心,已統(tǒng)開展公司所有的超快激光器業(yè)務,包括所有皮和飛激光器的制造。
    的頭像 發(fā)表于 11-28 09:12 ?721次閱讀

    優(yōu)化是干什么的(原理解讀)

    由于我們要優(yōu)化的這個函數(shù)計算量太大,個自然的想法就是用個簡單點的模型來近似f(x),這個替代原始函數(shù)的模型也叫做代理模型,
    的頭像 發(fā)表于 11-14 17:34 ?964次閱讀
    <b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b><b class='flag-5'>優(yōu)化</b>是干什么的(原理解讀)

    深度學習介紹

    1 Introduction 基于深度學習的人工智能模型往往精于 “感知” 的任務,然而光有感知是不夠的, “推理” 是更高階人工智能的重要組成部分。比方說醫(yī)生診斷,除了需要通過圖像和音頻等感知病人的癥狀,還應該能夠推斷癥狀與表征的關系,推斷各種病癥的概率,也就是說,需要有“thinking”的這種能力。具體而言就是 識別條件依賴關系、因果推斷、邏輯推理、處理不確定性 等。 概率圖模型(PGM)能夠很好處理概率性推理問題,然而PGM的弊端在于難以
    的頭像 發(fā)表于 11-03 10:51 ?569次閱讀
    <b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>深度學習介紹

    使用Speos optimization優(yōu)化工具快速優(yōu)化設計

    優(yōu)化個有助于找到個光學系統(tǒng)的最佳解決方案的實驗過程,它主要是利用參數(shù)的變化而試圖達到預期的結果。
    的頭像 發(fā)表于 10-31 09:11 ?597次閱讀
    使用Speos <b class='flag-5'>optimization</b><b class='flag-5'>優(yōu)化</b>工具快速<b class='flag-5'>優(yōu)化</b>設計