機(jī)器學(xué)習(xí)開發(fā)者需要了解的 12 種概率分布,這些你都了解嗎?
機(jī)器學(xué)習(xí)有其獨(dú)特的數(shù)學(xué)基礎(chǔ),我們用微積分來處理變化無限小的函數(shù),并計(jì)算它們的變化;我們使用線性代數(shù)來處理計(jì)算過程;我們還用概率論與統(tǒng)計(jì)學(xué)建模不確定性。在這其中,概率論有其獨(dú)特的地位,模型的預(yù)測結(jié)果、學(xué)習(xí)過程、學(xué)習(xí)目標(biāo)都可以通過概率的角度來理解。與此同時,從更細(xì)的角度來說,隨機(jī)變量的概率分布也是我們必須理解的內(nèi)容。在這篇文章中,項(xiàng)目作者介紹了所有你需要了解的統(tǒng)計(jì)分布,他還提供了每一種分布的實(shí)現(xiàn)代碼。項(xiàng)目地址:https://github.com/graykode/distribution-is-all-you-need非常有意思的是,上圖每一種分布都是有聯(lián)系的。比如說伯努利分布,它重復(fù)幾次就是二項(xiàng)分布,如果再擴(kuò)展到多類別,就成為了多項(xiàng)式分布。注意,其中共軛(conjugate)表示的是互為共軛的概率分布;Multi-Class 表示隨機(jī)變量多于 2 個;N Times 表示我們還會考慮先驗(yàn)分布 P(X)。在貝葉斯概念理論中,如果后驗(yàn)分布 p(θ | x) 與先驗(yàn)分布 p(θ) 是相同的概率分布族,那么后驗(yàn)分布可以稱為共軛分布,先驗(yàn)分布可以稱為似然函數(shù)的共軛先驗(yàn)。為了學(xué)習(xí)概率分布,項(xiàng)目作者建議我們查看 Bishop 的模式識別與機(jī)器學(xué)習(xí)。當(dāng)然,你要是準(zhǔn)備再過一遍《概率論與數(shù)理統(tǒng)計(jì)》,那也是極好的。均勻分布是指閉區(qū)間 [a, b] 內(nèi)的隨機(jī)變量,且每一個變量出現(xiàn)的概率是相同的。伯努利分布并不考慮先驗(yàn)概率 P(X),它是單個二值隨機(jī)變量的分布。它由單個參數(shù)φ∈ [0, 1] 控制,φ 給出了隨機(jī)變量等于 1 的概率。我們使用二元交叉熵函數(shù)實(shí)現(xiàn)二元分類,它的形式與對伯努利分布取負(fù)對數(shù)是一致的。二項(xiàng)分布是由伯努利提出的概念,指的是重復(fù) n 次獨(dú)立的伯努利試驗(yàn)。在每次試驗(yàn)中只有兩種可能的結(jié)果,而且兩種結(jié)果發(fā)生與否互相對立。4.Multi-Bernoulli 分布(離散型)Multi-Bernoulli 分布又稱為范疇分布(Categorical distribution),它的類別超過 2,交叉熵的形式與該分布的負(fù)對數(shù)形式是一致的。范疇分布是多項(xiàng)式分布(Multinomial distribution)的一個特例,它與范疇分布的關(guān)系就像伯努利分布與二項(xiàng)分布之間的關(guān)系。貝塔分布(Beta Distribution) 是一個作為伯努利分布和二項(xiàng)式分布的共軛先驗(yàn)分布的密度函數(shù),它指一組定義在 (0,1) 區(qū)間的連續(xù)概率分布。均勻分布是 Beta 分布的一個特例,即在 alpha=1、 beta=1 的分布。狄利克雷分布(Dirichlet distribution)是一類在實(shí)數(shù)域以正單純形(standard simplex)為支撐集(support)的高維連續(xù)概率分布,是 Beta 分布在高維情形的推廣。在貝葉斯推斷中,狄利克雷分布作為多項(xiàng)式分布的共軛先驗(yàn)得到應(yīng)用,在機(jī)器學(xué)習(xí)中被用于構(gòu)建狄利克雷混合模型。Gamma 分布是統(tǒng)計(jì)學(xué)中的常見連續(xù)型分布,指數(shù)分布、卡方分布和 Erlang 分布都是它的特例。如果 Gamma(a,1) / Gamma(a,1) + Gamma(b,1),那么 Gamma 分布就等價于 Beta(a, b) 分布。指數(shù)分布可以用來表示獨(dú)立隨機(jī)事件發(fā)生的時間間隔,比如旅客進(jìn)入機(jī)場的時間間隔、打進(jìn)客服中心電話的時間間隔等等。當(dāng) alpha 等于 1 時,指數(shù)分布就是 Gamma 分布的特例。高斯分布或正態(tài)分布是最為重要的分布之一,它廣泛應(yīng)用于整個機(jī)器學(xué)習(xí)的模型中。例如,我們的權(quán)重用高斯分布初始化、我們的隱藏向量用高斯分布進(jìn)行歸一化等等。當(dāng)正態(tài)分布的均值為 0、方差為 1 的時候,它就是標(biāo)準(zhǔn)正態(tài)分布,這也是我們最常用的分布。簡單而言,卡方分布(Chi-squared)可以理解為,k 個獨(dú)立的標(biāo)準(zhǔn)正態(tài)分布變量的平方和服從自由度為 k 的卡方分布??ǚ椒植际且环N特殊的伽瑪分布,是統(tǒng)計(jì)推斷中應(yīng)用最為廣泛的概率分布之一,例如假設(shè)檢驗(yàn)和置信區(qū)間的計(jì)算。學(xué)生 t-分布(Student t-distribution)用于根據(jù)小樣本來估計(jì)呈正態(tài)分布且變異數(shù)未知的總體,其平均值是多少。t 分布也是對稱的倒鐘型分布,就如同正態(tài)分布一樣,但它的長尾占比更多,這意味著 t 分布更容易產(chǎn)生遠(yuǎn)離均值的樣本。上面多種分布的 NumPy 構(gòu)建方式以及制圖方式都提供了對應(yīng)的代碼,讀者可在原項(xiàng)目中查閱。如下所示展示了指數(shù)分布的構(gòu)建的制圖方式,我們可以直接定義概率密度函數(shù),再打印出來就好了。import numpy as np
from matplotlib import pyplot as plt
def exponential(x, lamb):
y = lamb * np.exp(-lamb * x)
return x, y, np.mean(y), np.std(y)
for lamb in [0.5, 1, 1.5]:
x = np.arange(0, 20, 0.01, dtype=np.float)
x, y, u, s = exponential(x, lamb=lamb)
plt.plot(x, y, label=r'$mu=%.2f, sigma=%.2f,'
r' lambda=%d$' % (u, s, lamb))
plt.legend()
plt.savefig('graph/exponential.png')
plt.show()