自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

貝葉斯優(yōu)化之美:精妙算法背后的直覺

開發(fā) 前端 算法
有一個函數(shù)f(x),它的計算成本很高,甚至不一定是解析表達式,而且導數(shù)未知。你的任務(wù)是,找出全局最小值。當然,這個任務(wù)挺難的,比機器學習中的其他優(yōu)化問題要難得多。例如,梯度下降可以獲得函數(shù)的導數(shù),并利用數(shù)學捷徑來更快地計算表達式。

[[345174]]

有一個函數(shù)f(x),它的計算成本很高,甚至不一定是解析表達式,而且導數(shù)未知。你的任務(wù)是,找出全局最小值。當然,這個任務(wù)挺難的,比機器學習中的其他優(yōu)化問題要難得多。例如,梯度下降可以獲得函數(shù)的導數(shù),并利用數(shù)學捷徑來更快地計算表達式。

另外,在某些優(yōu)化場景中,函數(shù)的計算成本很低。如果可以在幾秒鐘內(nèi)得到數(shù)百個輸入值x的變量結(jié)果,簡單的網(wǎng)格搜索效果會更好。另外,還可以使用大量非傳統(tǒng)的非梯度優(yōu)化方法,如粒子群算法或模擬退火算法(simulated annealing)。

但是,當前的任務(wù)沒有還沒這么高級。優(yōu)化層面有限,主要包括:

  • 計算成本高。理想情況下,我們能夠?qū)瘮?shù)進行足夠的查詢,從而從本質(zhì)上復制它,但是采用的優(yōu)化方法必須在有限的輸入采樣中才能起作用。
  • 導數(shù)未知。梯度下降及其風格仍然是最流行的深度學習方法,甚至有時在其他機器學習算法中也備受歡迎的原因所在。導數(shù)給了優(yōu)化器方向感,不過我們沒有導數(shù)。
  • 需要找出全局最小值,即使對于梯度下降這樣精細的方法,這也是一項困難的任務(wù)。模型需要某種機制來避免陷入局部最小值。

我們的解決方案是貝葉斯優(yōu)化,它提供了一個簡潔的框架來處理類似于場景描述的問題,以最精簡的步驟數(shù)找到全局最小值。

構(gòu)造一個函數(shù)c(x)的假設(shè)例子,或者給定輸入值x的模型的成本。當然,這個函數(shù)看起來是什么樣子對優(yōu)化器是隱藏的——這就是c(x)的真實形狀,行話中被稱為“目標函數(shù)”。

貝葉斯優(yōu)化通過代理優(yōu)化方法來完成這項任務(wù)。代理函數(shù)(surrogate function)是指目標函數(shù)的近似函數(shù),是基于采樣點形成的。

代理函數(shù)可以幫助確定哪些點是可能的最小值。我們決定從這些有希望的區(qū)域中抽取更多樣本,并相應(yīng)地更新代理函數(shù)。

在每次迭代中繼續(xù)查看當前的代理函數(shù),通過抽樣了解相關(guān)感興趣領(lǐng)域的更多信息并更新函數(shù)。注意,代理函數(shù)的計算成本要低得多。例如,y=x即是近似函數(shù),計算成本更高,即在一定范圍內(nèi)的y=arcsin((1-cos converx)/sin x))。

經(jīng)過一定次數(shù)的迭代,最終一定會得到一個全局最小值,除非函數(shù)的形狀非常奇怪(因為它有大幅度且不穩(wěn)定的波動),這時出現(xiàn)了一個比優(yōu)化更有意義的問題:你的數(shù)據(jù)出了什么問題?

讓我們來欣賞一下貝葉斯優(yōu)化之美。它不做任何關(guān)于函數(shù)的假設(shè)(除了首先假設(shè)它本身是可優(yōu)化的),不需要關(guān)于導數(shù)的信息,并且能夠巧妙地使用一個不斷更新的近似函數(shù)來使用常識推理,對原始目標函數(shù)的高成本評估根本不是問題。這是一種基于替代的優(yōu)化方法。

所以,貝葉斯理論到底是什么呢?貝葉斯統(tǒng)計和建模的本質(zhì)是根據(jù)新信息更新之前的函數(shù)(先驗函數(shù)),產(chǎn)生一個更新后的函數(shù)(后驗函數(shù))。這正是代理優(yōu)化在本例中的作用,可以通過貝葉斯理論、公式和含義來進行最佳表達。

仔細看看代理函數(shù),它通常由高斯過程表示,可以被視為一個骰子,返回適合給定數(shù)據(jù)點(例如sin、log)的函數(shù),而不是數(shù)字1到6。這個過程返回幾個函數(shù),這些函數(shù)都帶有概率。

左:四個數(shù)據(jù)點的幾個高斯過程生成的函數(shù)。右:函數(shù)聚合。| 圖源:Oscar Knagg

使用GP而不是其他曲線擬合方法來建模代理函數(shù),是因為它本質(zhì)上是貝葉斯的。GP是一個概率分布,類似一個事件的最終結(jié)果的分布(例如,1/2的概率拋硬幣),但是覆蓋了所有可能的函數(shù)。

例如,將當前數(shù)據(jù)點集定義為40%可由函數(shù)a(x)表示,10%可由函數(shù)b(x)表示。通過將代理函數(shù)表示為概率分布,可以通過固有的概率貝葉斯過程更新信息。當引入新信息時,可能只有20%的數(shù)據(jù)可用函數(shù)a(x)表示。這些變化是由貝葉斯公式控制的。如果使用多項式回歸來擬合新的數(shù)據(jù)點,難度就加大了,甚至不可能實現(xiàn)。

代理函數(shù)表示為概率分布,先驗函數(shù)被更新為“采集函數(shù)”。該函數(shù)負責權(quán)衡探索和利用問題驅(qū)動新點的命題進行測試:

· “利用函數(shù)”試圖進行取樣以便代理函數(shù)預測最合適的最小值,這是利用已知的可能的點。然而,如果我們已經(jīng)對某一區(qū)域進行了足夠的探索,那么繼續(xù)利用已知的信息將不會有什么收獲。

· “探索函數(shù)”試圖在不確定性高的地方取樣。這就確保了空間中沒有什么主要區(qū)域是未知的——全局最小值可能恰好就在那里。

一個鼓勵多利用和少探索的采集函數(shù)將導致模型只停留在它首先找到的最小值(通常是局部的——“只去有光的地方”)。反之,模型則首先不會停留在局部或全局的最小值上,而是在微妙的平衡中尋求最佳結(jié)果。

用a(x)表示采集函數(shù),必須同時考慮探索和利用。常見的采集函數(shù)包括預期改進和最大改進概率,所有這些函數(shù)都度量了給定的先驗信息(高斯過程)下,特定輸入值在未來獲得成功的概率。

結(jié)合以上所有內(nèi)容,貝葉斯優(yōu)化的原理如下:

  • 初始化一個高斯過程的“代理函數(shù)”先驗分布。
  • 選擇多個數(shù)據(jù)點x,使運行在當前先驗分布上的采集函數(shù)a(x)最大化。
  • 對目標成本函數(shù)c(x)中的數(shù)據(jù)點x進行評估,得到結(jié)果y。
  • 用新的數(shù)據(jù)更新高斯過程的先驗分布,產(chǎn)生后驗(在下一步將成為先驗)。
  • 重復步驟2-5進行多次迭代。
  • 解釋當前的高斯過程分布(成本極低)來找到全局最小值。

貝葉斯優(yōu)化就是把概率的概念建立在代理優(yōu)化的基礎(chǔ)之上。這兩種概念的結(jié)合創(chuàng)造了一個功能強大的系統(tǒng),應(yīng)用范圍廣闊,從制藥產(chǎn)品開發(fā)到自動駕駛汽車都有相關(guān)應(yīng)用。

然而,在機器學習中最常見的是用于超參數(shù)優(yōu)化。例如,如果要訓練一個梯度增強分類器,從學習率到最大深度到最小雜質(zhì)分割值,有幾十個參數(shù)。在本例中,x表示模型的超參數(shù),c(x)表示模型的性能,給定超參數(shù)x。

使用貝葉斯優(yōu)化的主要目的在于應(yīng)對評估輸出非常昂貴的情況。首先,需要用這些參數(shù)建立一個完整的樹集合,其次,它們需要經(jīng)過多次預測,這對于集合而言成本極高。

可以說,神經(jīng)網(wǎng)絡(luò)評估給定參數(shù)集的損失更快:簡單地重復矩陣乘法,這是非??斓?,特別是在專用硬件上。這就是使用梯度下降法的原因之一,它需要反復查詢來了解其發(fā)展方向。

圖源:unsplash

總結(jié)一下,我們的結(jié)論是:

· 代理優(yōu)化使用代理函數(shù)或近似函數(shù)來通過抽樣估計目標函數(shù)。

· 貝葉斯優(yōu)化通過將代理函數(shù)表示為概率分布,將代理優(yōu)化置于概率框架中,并根據(jù)新信息進行更新。

· 采集函數(shù)用于評估探索空間中的某個點將產(chǎn)生“良好”結(jié)果的概率,給定目前從先驗已知的信息,平衡探索和利用的問題。

· 主要在評估目標函數(shù)成本昂貴時使用貝葉斯優(yōu)化,通常用于超參數(shù)調(diào)優(yōu)。有許多像HyperOpt這樣的庫可以實現(xiàn)這個功能。

貝葉斯優(yōu)化之美,你感受到了嗎?

本文轉(zhuǎn)載自微信公眾號「讀芯術(shù)」,作者讀芯術(shù)。轉(zhuǎn)載本文請聯(lián)系讀芯術(shù)公眾號。

 

責任編輯:武曉燕 來源: 讀芯術(shù)
相關(guān)推薦

2023-10-07 00:11:37

希爾排序算法

2016-08-30 00:19:30

2016-08-30 00:14:09

大數(shù)據(jù)貝葉斯

2017-07-24 10:36:37

Python機器學習樸素貝葉斯

2022-09-28 08:00:00

Python機器學習算法

2012-02-14 10:55:24

2012-09-24 10:13:35

貝葉斯

2018-09-13 12:51:58

數(shù)據(jù)挖掘算法樸素貝葉斯

2017-08-07 13:02:32

全棧必備貝葉斯

2023-03-27 08:00:00

機器學習人工智能

2017-08-19 08:36:25

貝葉斯優(yōu)化超參數(shù)函數(shù)

2023-01-31 15:49:51

機器學習函數(shù)評分函數(shù)

2013-05-08 09:05:48

狐貍貝葉斯大數(shù)據(jù)

2017-03-29 14:50:18

2024-10-11 16:53:16

貝葉斯人工智能網(wǎng)絡(luò)

2021-04-18 09:57:45

Java樸素貝葉斯貝葉斯定理

2023-10-18 08:00:00

貝葉斯網(wǎng)絡(luò)Python醫(yī)療保健

2021-08-30 11:53:36

機器學習人工智能計算機

2017-07-12 11:27:05

樸素貝葉斯情感分析Python

2020-05-21 14:50:37

算法深度學習人工智能
點贊
收藏

51CTO技術(shù)棧公眾號