天天看點

機器學習基礎(二)——機率論與數理統計

轉載僅供個人回顧高數及數理統計知識。

原文出處:https://blog.csdn.net/zuoyonggang123/article/details/79110916

1 基本概念

機率論在機器學習中扮演着一個核心角色,因為機器學習算法的設計通常依賴于對資料的機率假設。

1.1 機率空間

說到機率,通常是指一個具有不确定性的

event

發生的可能性。例如,下周二下雨的機率。是以,為了正式地讨論機率論,我們首先要明确什麼是可能事件。 

正規說來,一個

probability space

是由三元組(Ω,F,P)定義: 

- Ω為樣本空間 

- F⊆2Ω(Ω的幂集)為(可度量的)事件空間 

- P為将事件E∈F映射到0~1真值區間的機率度量(機率分布),可以将P看作機率函數 

注: Ω的幂集2Ω——是Ω的所有子集的集合,符号:P(Ω):={U|U⊆Ω},|Ω|=n個元素,|P(Ω)|=2n個元素。

假設給定樣本空間Ω,則對于事件空間F來說: 

- F包含Ω本身和∅ 

- F對于并集閉合,例如:如果α,β∈F,則α∪β∈F 

- F對于補集閉合,例如:如果α∈F,則(Ω∖α)∈F

Example1: 假如我們投擲一個(6面)骰子,那麼可能的樣本空間Ω={1,2,3,4,5,6}。我們可能感興趣的事件是骰子點數是奇數還是偶數,那麼這種情況下事件空間就是F={∅,{1,3,5},{2,4,6}}.

可以看到樣本空間Ω為有限集時,就像上一個例子,我們通常令事件空間F為2Ω。這種政策并不完全通用,但是在實際使用中通常是有效的。然而,當樣本空間為無限集時,我們需要仔細定義事件空間。 

給定一個事件空間F,機率函數P需要滿足幾個公理: 

- (非負)對于所有α∈F,P(α)≥0 

- P(F)=1,事件空間的機率值為1 

- (互斥事件的加法法則)對于所有α,β∈F和α∩β=∅,P(α∪β)=P(α)+P(β)

Example2: 回到擲骰子的例子,假設事件空間F為2Ω ,進一步地,定義F上的機率函數P為: 

P({1})=P({2})=…=P({6})=16 

那麼這種機率分布P可以完整定義任意給出事件的發生機率(通過可加性公理)。例如,投擲點數為偶數的機率為: 

P({2,4,6})=P({2})+P({4})+P({6})=16+16+16=12 

因為任意事件(此處指樣本空間内的投擲出各點數)之間都沒有交集

1.2 随機變量

随機變量在機率論中扮演着一個重要角色。最重要的一個事實是,随機變量并不是變量,它們實際上是将(樣本空間中的)結果映射到真值的函數。我們通常用一個大寫字母來表示随機變量。 

Example3: 還是以擲骰子為例。 另X為取決于投擲結果的随機變量。X的一個自然選擇是将i映射到值i,例如,将事件“投擲1點”映射到值1。我們也可以選擇一些特别的映射,例如,我們有一個随機變量Y——将所有的結果映射到0,這就是一個很無聊的函數。或者随機變量Z——當i為奇數時,将結果i映射到2i;當i為偶數時,将結果i映射到i。

從某種意義上說,随機變量讓我們可以将事件空間的形式概念抽象出來,通過定義随機變量來采集相關事件。舉個例子,考慮Example1中投擲點數為奇/偶的事件空間。我們其實可以定義一個随機變量,當結果i為奇數時取值為1,否則随機變量取值為0。這種二進制算計變量在實際中非常常見,通常以訓示變量為人所知,它是因用于訓示某一特定事件是否發生而得名。是以為什麼我們要引進事件空間?就是因為當一個人在學習機率論(更嚴格來說)通過計量理論來學習時,樣本空間和事件空間的差別非常重要。這個話題對于這個簡短的複習來說太前沿了,是以不會涉及。不管怎樣,最好記住事件空間并不總是簡單的樣本空間的幂集。 

繼續,我們後面主要會讨論關于随機變量的機率。雖然某些機率概念在不使用随機變量的情況下也能準确定義,但是随機變量讓我們能提供一種對于機率論的更加統一的處理方式。取值為a的随機變量X的機率可以記為: 

P(X=a)或PX(a)

同時,我們将随機變量X的取值範圍記為:Val(X)

1.3 機率分布,聯合分布,邊緣分布

我們經常會談論變量的分布。正式來說,它是指一個随機變量取某一特定值的機率,例如: 

Example4:假設在投擲一個骰子的樣本空間Ω上定義一個随機變量X,如果骰子是均勻的,則X的分布為: 

PX(1)=PX(2)=…=PX(6)=16 

注意,盡管這個例子和Example2類似,但是它們有着不同的語義。Example2中定義的機率分布是對于事件而言,而這個例子中是随機變量的機率分布。 

我們用P(X)來表示随機變量X的機率分布。 

有時候,我們會同時讨論大于一個變量的機率分布,這種機率分布稱為聯合分布,因為此事的機率是由所涉及到的所有變量共同決定的。這個可以用一個例子來闡明。 

Example5:在投擲一個骰子的樣本空間上定義一個随機變量X。定義一個訓示變量Y,當抛硬币結果為正面朝上時取1,反面朝上時取0。假設骰子和硬币都是均勻的,則X和Y的聯合分布如下:

P X=1 X=2 X=3 X=4 X=5 X=6
Y=0 1/12 1/12 1/12 1/12 1/12 1/12
Y=1 1/12 1/12 1/12 1/12 1/12 1/12

像前面一樣,我們可以用P(X=a,Y=b)或PX,Y(a,b)來表示X取值為a且Y取值為b時的機率。用P(X,Y)來表示它們的聯合分布。 

假定有一個随機變量X和Y的聯合分布,我們就能讨論X或Y的邊緣分布。邊緣分布是指一個随機變量對于其自身的機率分布。為了得到一個随機變量的邊緣分布,我們将該分布中的所有其它變量相加,準确來說,就是: 

P(X)=∑b∈Val(Y)P(X,Y=b)……………………………………(1)

之是以取名為邊緣分布,是因為如果我們将一個聯合分布的一列(或一行)的輸入相加,将結果寫在它的最後(也就是邊緣),那麼該結果就是這個随機變量取該值時的機率。當然,這種思路僅在聯合分布涉及兩個變量時有幫助。

1.4 條件分布

條件分布為機率論中用于探讨不确定性的關鍵工具之一。它明确了在另一随機變量已知的情況下(或者更通俗來說,當已知某事件為真時)的某一随機變量的分布。 

正式地,給定Y=b時,X=a的條件機率定義為: 

P(X=a|Y=b)=P(X=a,Y=b)P(Y=b)…………………………………(2)

注意,當Y=b的機率為0時,上式不成立。

Example6:假設我們已知一個骰子投出的點數為奇數,想要知道投出的點數為“1”的機率。令X為代表點數的随機變量,Y為訓示變量,當點數為奇數時取值為1,那麼我們期望的機率可以寫為: 

P(X=1|Y=1)=P(X=1,Y=1)P(Y=1)=1612=13 

條件機率的思想可以自然地擴充到一個随機變量的分布是以多個變量為條件時,即: 

P(X=a|Y=b,Z=c)=P(X=a,Y=b,Z=c)P(Y=b,Z=c)

我們用P(X|Y=b)來表示當Y=b時随機變量X的分布,也可以用P(X|Y)來表示X的一系列分布,其中每一個都對應不同的Y可以取的值。

1.5 獨立性

(https://zh.wikipedia.org/wiki/%E7%8B%AC%E7%AB%8B_(%E6%A6%82%E7%8E%87%E8%AE%BA)) 

在機率論中,獨立性是指随機變量的分布不因知道其它随機變量的值而改變。在機器學習中,我們通常都會對資料做這樣的假設。例如,我們會假設訓練樣本是從某一底層空間獨立提取;并且假設樣例i的标簽獨立于樣例j(i≠j)的特性。 

從數學角度來說,随機變量X獨立于Y,當: 

P(X)=P(X|Y)

(注意,上式沒有标明X,Y的取值,也就是說該公式對任意X,Y可能的取值均成立。) 

利用等式(2),很容易可以證明如果X對Y獨立,那麼Y也獨立于X。當X和Y互相獨立時,記為X⊥Y。 

對于随機變量X和Y的獨立性,有一個等價的數學公式: 

P(X,Y)=P(X)P(Y)

我們有時也會讨論條件獨立,就是當我們當我們知道一個随機變量(或者更一般地,一組随機變量)的值時,那麼其它随機變量之間互相獨立。正式地,我們說“給定Z,X和Y條件獨立”,如果: 

P(X|Z)=P(X|Y,Z)

或者等價的: 

P(X,Y|Z)=P(X|Z)P(Y|Z)

機器學習(Andrew Ng)的課中會有一個樸素貝葉斯假設就是條件獨立的一個例子。該學習算法對内容做出假設,用來分辨電子郵件是否為垃圾郵件。假設無論郵件是否為垃圾郵件,單詞x出現在郵件中的機率條件獨立于單詞y。很明顯這個假設不是不失一般性的,因為某些單詞幾乎總是同時出現。然而,最終結果是,這個簡單的假設對結果的影響并不大,且無論如何都可以讓我們快速判别垃圾郵件。

1.6 鍊式法則和貝葉斯定理

我們現在給出兩個與聯合分布和條件分布相關的,基礎但是重要的可操作定理。第一個叫做鍊式法則,它可以看做等式(2)對于多變量的一般形式。 

定理1(鍊式法則): 

P(X1,X2,…,Xn)=P(X1)P(X2|X1)…P(Xn|X1,X2,…,Xn−1)…………(3)

鍊式法則通常用于計算多個随機變量的聯合機率,特别是在變量之間互相為(條件)獨立時會非常有用。注意,在使用鍊式法則時,我們可以選擇展開随機變量的順序;選擇正确的順序通常可以讓機率的計算變得更加簡單。 

第二個要介紹的是貝葉斯定理。利用貝葉斯定理,我們可以通過條件機率P(Y|X)計算出P(X|Y),從某種意義上說,就是“交換”條件。它也可以通過等式(2)推導出。

定理2(貝葉斯定理): 

(https://zh.wikipedia.org/wiki/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%AE%9A%E7%90%86) 

P(X|Y)=P(Y|X)P(X)P(Y)………………………………(4)

記得,如果P(Y)沒有給出,我們可以用等式(1)找到它: 

P(Y)=∑a∈Val(X)P(X=a,Y)=∑a∈Val(X)P(Y|X=a)P(X=a)

這種等式(1)的應用有時也被稱為全機率公式(https://zh.wikipedia.org/wiki/%E5%85%A8%E6%A6%82%E7%8E%87%E5%85%AC%E5%BC%8F)。 

貝葉斯定理可以推廣到多個随機變量的情況。在有疑問的時候,我們都可以參考條件機率的定義方式,弄清楚其細節。 

Example7:考慮以下的條件機率:P(X,Y|Z)和(X|Y,Z) 

P(X,Y|Z)=P(Z|X,Y)P(X,Y)P(Z)=P(Y,Z|X)P(X)P(Z) 

P(X|Y,Z)=P(Y|X,Z)P(X,Z)P(Y,Z)=P(Y|X,Z)P(X|Z)P(Z)P(Y|Z)P(Z)=P(Y|X,Z)P(X|Z)P(Y|Z)

2 定義一個機率分布

前面已經讨論了一下機率分布,但是我們如何定義一個分布呢?廣義上來說,有兩種類型的分布,它們看似需要進行兩種不同的處理(它們可以用度量學來進行統一)。也就是說,離散分布和連續分布。我們後面會讨論如何定義分布。 

注意,以下的讨論和我們怎樣能有效表示一個分布是截然不同的。有效表示機率分布的課題實際上是一個非常重要且活躍的研究領域,它值得開一個專門的課程。(CS228: Probabilistic Models in Artificial Intelligence)

2.1 離散分布:機率品質函數

(https://zh.wikipedia.org/wiki/%E6%A6%82%E7%8E%87%E8%B4%A8%E9%87%8F%E5%87%BD%E6%95%B0) 

就一個離散分布而言,我們是指這種基本分布的随機變量隻能取有限多個不同的值(或者樣本空間有限)。 

在定義一個離散分布時,我們可以簡單地列舉出随機變量取每一個可能值的機率。這種列舉方式稱為機率品質函數(probability mass function[PMF]),因為它将(總機率的)每一個單元塊分開,并将它們和随機變量可以取的不同值對應起來。這個可以類似的擴充到聯合分布和條件分布。

2.2 連續分布:機率密度函數

(https://zh.wikipedia.org/wiki/%E6%A9%9F%E7%8E%87%E5%AF%86%E5%BA%A6%E5%87%BD%E6%95%B8) 

對連續分布而言,我們是指這種基本分布的随機變量能取無限多個不同值(或者說樣本空間是無限的)。 

連續分布相比離散分布來說是一種更加需要揣摩的情況,因為如果我們将每一個值取非零品質數,那麼總品質相加就會是一個無限值,這樣就不符合總機率相加等于1的要求。 

在定義一個連續分布時,我們會使用機率密度函數(probability density function[PDF])。機率密度函數f是一個非負,可積(分)的函數,類似于: 

∫Val(X)f(x)dx=1

符合PDFf的随機變量X的機率分布可以用如下公式計算: 

P(a≤X≤b)=∫baf(x)dx

注意,特别地,預設連續分布的随機變量取任意單一值的機率為零。

Example8:(均勻分布)假設随機變量X在[0,1]上均勻分布,則對應的PDF為: 

f(x)={10if 0≤x≤1otherwise

我們可以确定∫101dx為1,是以f為PDF。計算X的機率小于1/2: 

P(X≤12)=∫1201dx=[x]120=12 

更一般地,假設X在[a,b]上均勻分布,那麼PDF即為: 

f(x)={1b−a0if a≤x≤botherwise

有時我們也會讨論累積分布函數,這種函數給出了随機變量在小于某一值的機率。累積分布函數F和基本機率密度函數f的關系如下: 

F(b)=P(X≤b)=∫b−∞f(x)dx 

是以,F(x)=∫f(x)dx(就不定積分而言)。 

要将連續分布的定義擴充到聯合分布,需要把機率密度函數擴充為多個參數,即: 

P(a1≤X1≤b1,a2≤X2≤b2,…,an≤Xn≤bn)=∫b1a1∫b2a2…∫bnanf(x1,x2,…,xn)dx1dx2…dxn 

将條件分布擴充到連續随機變量時,會遇到一個問題——連續随機變量在單個值上的機率為0,是以等式(2)不成立,因為分母等于0。為了定義連續變量的條件分布,要令f(x,y)為X和Y的聯合分布。通過分析,我們能看到基于分布P(Y|X)的PDF f(y|x)為: 

f(y|x)=f(x,y)f(x) 

即如果直接用P的話,P可能在分母為零,是以用f,通過f積分間接得到P。 

例如: 

P(a≤Y≤b|X=c)=∫baf(y|c)dy=∫baf(c,y)f(c)dy

3 期望(Expectations)和方差(Variance)

3.1 期望

(https://zh.wikipedia.org/wiki/%E6%9C%9F%E6%9C%9B%E5%80%BC) 

我們對随機變量做的最常見的操作之一就是計算它的期望,也就是它的平均值(mean),期望值(expected value),或一階矩(first moment)。随機變量的期望記為E(x),計算公式: 

E(x)=∑a∈Val(x)aP(X=a)或E(x)=∫a∈Val(x)xf(x)dx……………………(5)

Example9:令X為投擲一個均勻骰子的結果,則X的期望為: 

E(X)=(1)16+(2)16+…+(6)16=312 

有時我們可能會對計算随機變量X的某一函數f的期望值感興趣,再次重申,随機變量本身也是一個函數,是以最簡單的考慮方法是定義一個新的随機變量Y=f(X),然後計算Y的期望。 

當使用訓示變量時,一個有用的判别方式是: 

E(X)=P(X=1) X為訓示變量 

此處可以腦補X還有一個取值為0,即E(x)=1×P(X=1)+0×P(X=0)=P(X=1) 

當遇到随機變量的和時,一個最重要的規則之一是線性期望(linearity of expectations)。 

定理3(線性期望):令X1,X2,…,Xn為(可能是獨立的)随機變量: 

E(X1+X2+…+Xn)=E(X1)+E(X2)+…+E(Xn)………………(6)

期望為線性函數。 

期望的線性非常強大,因為它對于變量是否獨立沒有限制。當我們對随機變量的結果進行處理時,通常沒什麼可說的,但是,當随機變量互相獨立時,有: 

定理4:令X和Y為互相獨立的随機變量,則: 

E(XY)=E(X)E(Y)

3.2 方差

(https://zh.wikipedia.org/wiki/%E6%96%B9%E5%B7%AE)

一個随機變量的方差描述的是它的離散程度,也就是該變量離其期望值的距離。一個實随機變量的方差也稱為它的二階矩或二階中心動差,恰巧也是它的二階累積量。方差的算術平方根稱為該随機變量的标準差。

方差的定義: 

Var(X)=E((X−E(X))2)………………………………(7)

随機變量的方差通常記為σ2,給它取平方的原因是因為我們通常想要找到σ,也就是标準差。方差和标準差(很明顯)可以用公式σ=Var(X)−−−−−−√相關聯。 

為了找到随機變量X的方差,通常用以下替代公式更簡單: 

Var(X)=E(X2)−(E(X))2

注意,不同于期望,方差不是關于随機變量X的線性函數,事實上,我們可以證明(aX+b)的方差為: 

Var(aX+b)=a2Var(X)

如果随機變量X和Y互相獨立,那麼: 

Var(X+Y)=Var(X)Var(Y),如果X⊥Y

有時我們也會讨論兩個随機變量的協方差,它可以用來度量兩個随機變量的相關性,定義如下: 

Cov(X,Y)=E((X−E(X))(Y−E(Y)))

4 一些重要的分布

以下包含一些課中會提到的機率分布,但是并不是我們所需要了解的全部機率分布,特别是幾何分布、超幾何分布、二項分布等,這些都是在各自的領域十分有用,并且在基礎機率論中有研究到的,沒有在此提及。

4.1 伯努利(Bernoulli)分布

伯努利分布是最基礎的機率分布之一,一個服從伯努利分布的随機變量有兩種取值{0,1} ,它能通過一個變量p來表示其機率,為了友善,我們令P(X=1)為p。它通常用于預測試驗是否成功。 

有時将一個服從伯努利分布的變量X的機率分布按如下表示會很有用: 

P(X)=px(1−p)1−x

一個伯努利分布起作用的例子是Lecture Notes1中的分類任務。為了給這個任務開發一個邏輯回歸算法,對于特征來說,我們假設标簽遵循伯努利機率分布。

4.2 泊松(Poisson)分布

(https://zh.wikipedia.org/wiki/%E6%B3%8A%E6%9D%BE%E5%88%86%E4%BD%88) 

泊松分布是一種非常有用的機率分布,通常用于處理事件發生次數的機率分布。在給定一個事件發生的固定平均機率,并且在該段事件内事件發生互相獨立時,它可以用來度量機關時間内事件發生的次數。它包含一個參數——平均事件發生率λ。泊松分布的機率品質函數為: 

P(X=k)=exp(−λ)λkk!

服從泊松分布的随機變量的平均值為λ,其方差也為λ,E(X)=V(X)=λ

4.3 高斯(Gaussian)分布

高斯分布,也就是正态分布,是機率論中最“通用”的機率分布之一,并且在很多環境中都有出現。例如,在試驗數量很大時用在二項分布的近似進行中,或者在平均事件發生率很高時用于泊松分布。它還和大數定理相關。對于很多問題來說,我們還會經常假設系統中的噪聲服從高斯分布。基于高斯分布的應用很多很多。 

機器學習基礎(二)——機率論與數理統計

上圖為不同期望和方差下的高斯分布。 

高斯分布由兩個參數決定:期望μ和方差σ2。其機率密度函數為: 

f(x)=12π−−√σexp(−(x−μ)22σ2)………………(8)

為了更好的感受機率分布随着期望和方差的改變,在上圖中繪制了三種不同的高斯分布。 

在這個課中,我們會經常和多變量高斯分布打交道。一個k維多變量高斯分布用參數(μ,∑)表示,其中,μ為Rk上的期望矢量,∑為Rk×k上的協方差矩陣,也就是說,∑ii=Var(Xi)且∑ij=Cov(Xi,Xj)。其機率密度函數由輸入的矢量定義: 

f(x)=12πk|∑|−−−−−−√exp(−12(x−μ)T∑−1(x−μ))………………(9)

(我們标記矩陣A的行列式為|A|,其轉置為A−1) 

處理多變量高斯分布有時可能會比較困難,令人生畏。讓我們生活更簡單的一個方法,至少是讓我們有對于某個問題的直覺的一個方法,是在我們剛開始試圖解決一個問題時假設協方差為零。當協方差為零時,行列式|∑|就僅由變量生成,可以對∑對角線元素做轉置來得到它的轉置∑−1。

5 機率處理

因為接下來會有很多對機率和分布的處理,是以下面列出一些用于有效處理機率分布的tips。

5.1 The log trick

在機器學習中,我們通常會假設不同樣本之間互相獨立。是以,我們常常需要對一定數量(大量)的機率分布的産物進行處理。當我們的目标為優化這些産物的函數時,如果我們先處理這些函數的對數通常會更加簡單。因為取對數的函數是一個嚴格單增函數,是以它不會改變最大值的取值點(盡管更加明确來說,這個函數在取對數前後的最大值是不同的)。 

舉例來說,在Lecture Note 1,第17頁的似然函數: 

L(θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)

我敢說這是一個看起來相當吓人的函數,但是通過對它取對數,相應的我們可以得到: 

l(θ)=logL(θ)=∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))

現在它不是世界上最漂亮的函數,但至少更加易處理。我們現在可以一次處理一項(即一個訓練樣本),因為它們是相加而不是相乘。

5.2 延遲歸一化(Delayed Normalization)

因為機率相加要等于一,我們常常要進行歸一化處理,特别是對連續機率分布來說。例如,對于高斯分布來說, 指數外面的項就是為了確定PDF的積分等于1。當我們确定某些代數的最終結果為一個機率分布,或者在尋找某些最優分布時,将歸一化常數記為Z通常會更加簡單,而不用一直考慮計算出歸一化常數。

5.3 Jenson不等式

有時我們會計算一個函數對某個随機變量的期望,通常我們隻需要一個區間而不是具體的某個值。在這種情況下,如果該函數是凸函數或者凹函數,通過Jenson不等式,我們可以通過計算随機變量自身期望處的函數值來獲得一個區間。 

機器學習基礎(二)——機率論與數理統計

(上圖為Jenson不等式圖示) 

定理5 (Jenson不等式):令X為一個随機變量,f為凸函數,那麼: 

f(E(X))≤E(f(X))

如果f為凹函數,那麼: 

f(E(X))≥E(f(X))

盡管我們可以用代數表示Jenson不等式,但是通過一張圖更容易了解。上圖中的函數為一個凹函數,我們可以看到該函數任意兩點之間的直線都在函數的上方,也就是說,如果一個随機變量隻能取兩個值,那麼Jenson不等式成立。這個也可以比較直接地推廣到一般随機變量。

繼續閱讀