傳統(tǒng)機器學習 (ML) 模型和 AI 技術(shù)通常存在一個嚴重缺陷:它們?nèi)狈Σ淮_定性量化。這些模型通常提供點估計,而不考慮其預(yù)測的不確定性。這種限制削弱了評估模型輸出可靠性的能力。此外,傳統(tǒng) ML 模型需要大量數(shù)據(jù),通常需要正確標記的數(shù)據(jù),因此,在數(shù)據(jù)有限的問題上往往會遇到困難。此外,這些模型缺乏將專家領(lǐng)域知識或先驗信念納入模型的系統(tǒng)框架。如果無法利用特定領(lǐng)域的見解,模型可能會忽略數(shù)據(jù)中的關(guān)鍵細微差別,并且往往無法發(fā)揮其潛力。ML 模型正變得越來越復(fù)雜和不透明,人們越來越需要數(shù)據(jù)和人工智能做出的決策具有更高的透明度和可問責性。
概率編程:解決這些挑戰(zhàn)的解決方案
概率編程提供了一個解決這些挑戰(zhàn)的建模框架。其核心是貝葉斯統(tǒng)計,與頻率派的統(tǒng)計學解釋不同。
貝葉斯統(tǒng)計
在頻率統(tǒng)計學中,概率被解釋為事件的長期相對頻率。數(shù)據(jù)被認為是隨機的,是從固定定義的分布中抽樣的結(jié)果。因此,測量中的噪聲與抽樣變化有關(guān)。頻率論者認為概率是存在的,并且是固定的,無限的實驗都會收斂到這個固定值。頻率論方法不為參數(shù)分配概率分布,他們對不確定性的解釋植根于估計量的長期頻率特性,而不是關(guān)于參數(shù)值的明確概率陳述。
在貝葉斯統(tǒng)計中,概率被解釋為對特定信念的不確定性的度量。數(shù)據(jù)被視為固定的,而系統(tǒng)的未知參數(shù)被視為隨機變量,并使用概率分布進行建模。貝葉斯方法可以捕獲參數(shù)本身的不確定性,因此提供了一種更直觀、更靈活的不確定性量化方法。
頻率統(tǒng)計與貝葉斯統(tǒng)計[1]
概率機器學習
在頻率論 ML 中,模型參數(shù)被視為固定的,并通過最大似然估計 (MLE) 進行估計,其中似然函數(shù)量化了給定統(tǒng)計模型觀察數(shù)據(jù)的概率。MLE 尋求最大化此概率的參數(shù)點估計。要實現(xiàn) MLE:
· 假設(shè)一個模型和底層模型參數(shù)。
· 根據(jù)假設(shè)模型推導似然函數(shù)。
· 優(yōu)化似然函數(shù)以獲得參數(shù)的點估計。
因此,包括深度學習在內(nèi)的頻率學派模型依賴優(yōu)化(通?;谔荻?作為其基本工具。
相反,貝葉斯方法對未知參數(shù)及其與概率分布的關(guān)系進行建模,并在我們獲得新數(shù)據(jù)時使用貝葉斯定理來計算和更新這些概率。
貝葉斯定理: “貝葉斯規(guī)則告訴我們?nèi)绾螐年P(guān)節(jié)點導出條件概率,條件告訴我們?nèi)绾卫硇缘馗挛覀兊男拍?,而更新信念正是學習和推理的全部內(nèi)容”[2]。
這是一個簡單但有力的等式。
· 先驗表示對未知參數(shù)的初始信念
· 似然表示基于假設(shè)模型的數(shù)據(jù)的概率
· 邊際似然是模型證據(jù),是一個標準化系數(shù)。
· 后驗分布代表我們對參數(shù)的更新信念,結(jié)合了先驗知識和觀察到的證據(jù)。
在貝葉斯機器學習中,推理是基本工具。利用后驗分布表示的參數(shù)分布進行推理,可以更全面地理解不確定性。
貝葉斯更新的實際應(yīng)用: 下圖展示了一個簡單的拋硬幣實驗,在不同樣本量和兩個不同的先驗分布下,其后驗分布。此可視化提供了不同樣本量和先驗信念的組合如何影響最終的后驗分布的見解。
樣本大小和先驗對后驗分布的影響
如何建立后驗分布模型
在大多數(shù)情況下,看似簡單的后驗分布很難計算。特別是,分母,即邊際似然積分往往是可交互的,尤其是在處理更高維度的參數(shù)空間時。而且在大多數(shù)情況下,沒有閉式解,數(shù)值積分方法也是計算密集型的。為了應(yīng)對這一挑戰(zhàn),我們依靠一類稱為馬爾可夫鏈蒙特卡羅模擬的特殊算法來建模后驗分布。這里的想法是從后驗分布中抽樣,而不是明確地對其進行建模并使用這些樣本來表示模型參數(shù)的分布
馬爾可夫鏈蒙特卡洛(MCMC)
“ MCMC 方法包括一類從概率分布中抽樣的算法。通過構(gòu)建以期望分布作為其平衡分布的馬爾可夫鏈,可以通過記錄鏈中的狀態(tài)來獲得期望分布的樣本” [3]。一些常用的 MCMC 采樣器包括:
· 大都會-黑斯廷斯
· 吉布斯取樣器
· 哈密頓蒙特卡羅 (HMC)
· 無掉頭采樣器 (NUTS)
· 序貫蒙特卡洛 (SMC)
概率規(guī)劃
概率編程是貝葉斯統(tǒng)計的編程框架,即它涉及表示條件推理問題的語言的語法和語義的開發(fā),以及為這些推理問題開發(fā)“求解器”。本質(zhì)上,概率編程之于貝葉斯建模就像自動微分工具之于經(jīng)典機器學習和深度學習模型一樣[2]。
概率編程語言生態(tài)系統(tǒng)多種多樣,每種語言都有自己的語法、語義和功能。一些最流行的語言包括:
· BUGS(使用吉布斯抽樣的貝葉斯推理)[4]: BUGS 是最早的概率編程語言之一,以其用戶友好的界面和對各種概率模型的支持而聞名。它實現(xiàn)了吉布斯抽樣和其他馬爾可夫鏈蒙特卡羅 (MCMC) 方法進行推理。
· JAGS(Just Another Gibbs Sampler)[5]: JAGS 是一種用于貝葉斯分層建模的專用語言,特別適合具有嵌套結(jié)構(gòu)的復(fù)雜模型。它利用 Gibbs 采樣算法進行后驗推理。
· STAN:一種概率編程語言,以其富有表現(xiàn)力的建模語法和高效的采樣算法而聞名。STAN 在學術(shù)界和工業(yè)界廣泛用于各種貝葉斯建模任務(wù)。“Stan 與 BUGS 和 JAGS 的主要區(qū)別在于兩個方面。首先,Stan 基于一種新的命令式概率編程語言,這種語言比 BUGS 或 JAGS 所基于的聲明式圖形建模語言更靈活、更具表現(xiàn)力,例如聲明具有類型的變量以及支持局部變量和條件語句。其次,Stan 的馬爾可夫鏈蒙特卡羅 (MCMC) 技術(shù)基于漢密爾頓蒙特卡羅 (HMC),對于具有復(fù)雜后驗的模型,這是一種比吉布斯采樣或 Metropolis-Hastings 更高效、更強大的采樣器” [6]。
· BayesDB: BayesDB 是一個概率編程平臺,專為大規(guī)模數(shù)據(jù)分析和概率數(shù)據(jù)庫查詢而設(shè)計。它使用戶能夠使用類似 SQL 的查詢對關(guān)系數(shù)據(jù)庫執(zhí)行概率推理 [7]
· PyMC3: PyMC3 是一個用于概率編程的 Python 庫,它提供了一個直觀而靈活的界面來構(gòu)建和分析概率模型。它利用先進的采樣算法(如漢密爾頓蒙特卡羅 (HMC) 和自動微分變分推理 (ADVI))進行推理 [8]。
· TensorFlow Probability: “ TensorFlow Probability (TFP) 是一個基于 TensorFlow 構(gòu)建的 Python 庫,它可以輕松地在現(xiàn)代硬件(TPU、GPU)上結(jié)合概率模型與深度學習” [9] 。
· Pyro: “Pyro 是一種用 Python 編寫的通用概率編程語言 (PPL),后端由 PyTorch 支持。Pyro 支持靈活且富有表現(xiàn)力的深度概率建模,將現(xiàn)代深度學習和貝葉斯建模的優(yōu)點統(tǒng)一起來” [10]。
這些語言共享一個通用的工作流程,概述如下:
1. 模型定義:模型定義控制數(shù)據(jù)生成、潛在參數(shù)及其相互關(guān)系的過程。此步驟需要仔細考慮底層系統(tǒng)及其行為的假設(shè)。
2. 先驗分布規(guī)范:定義模型中未知參數(shù)的先驗分布。這些先驗編碼了從業(yè)者在觀察任何數(shù)據(jù)之前對參數(shù)的信念、領(lǐng)域或先驗知識。
3. 似然函數(shù): 描述似然函數(shù),表示在未知參數(shù)條件下觀測數(shù)據(jù)的概率分布。似然函數(shù)量化了模型預(yù)測與觀測數(shù)據(jù)之間的一致性。
4. 后驗分布推斷:使用采樣算法根據(jù)觀測數(shù)據(jù)近似模型參數(shù)的后驗分布。這通常涉及運行馬爾可夫鏈蒙特卡羅 (MCMC) 或變分推斷 (VI) 算法以從后驗分布中生成樣本。
案例研究:預(yù)測股票指數(shù)波動率
在本案例研究中,我們將采用貝葉斯建模技術(shù)來預(yù)測股票指數(shù)的波動性。這里的波動性衡量股票價格隨時間的變化程度,是評估特定股票相關(guān)風險的關(guān)鍵指標。
數(shù)據(jù):為了進行此分析,我們將利用標準普爾 500 股票指數(shù)的歷史數(shù)據(jù)。標準普爾 500 指數(shù)是一種廣泛使用的基準指數(shù),用于追蹤美國 500 只大盤股的表現(xiàn)。通過檢查該指數(shù)價格隨時間變化的百分比,我們可以深入了解其波動性。
標準普爾 500 指數(shù) — 股價和百分比變化
從上圖中我們可以看到時間序列——連續(xù)幾天之間的價格變化:
· 恒定均值
· 方差隨時間變化,即時間序列表現(xiàn)出異方差
異方差建模: “在統(tǒng)計學中,如果一系列隨機變量都具有相同的有限方差,則該序列是同方差的;這也稱為方差齊性?;パa的概念稱為異方差,也稱為方差異質(zhì)性”[11]。 自回歸條件異方差(ARCH) 模型專門用于解決時間序列數(shù)據(jù)中的異方差問題。
ARCH 模型的貝葉斯實現(xiàn)與頻率派實現(xiàn)
貝葉斯建模的主要優(yōu)勢包括能夠整合先驗信息并量化模型參數(shù)和預(yù)測中的不確定性。這在數(shù)據(jù)有限且有先驗知識的情況下尤其有用。
總之,貝葉斯建模和概率編程提供了強大的工具來解決傳統(tǒng)機器學習方法的局限性。通過采用不確定性量化、結(jié)合先驗知識并提供透明的推理機制,這些技術(shù)使數(shù)據(jù)科學家能夠在復(fù)雜的現(xiàn)實場景中做出更明智的決策。