《概率統計》5.極限思維:大數定理與中心極限定理


楔子

比如說,我們想獲得本省 15 歲男生的平均身高,這時你會怎么做?顯然你不會也不可能真的去統計全省所有 15 歲男生的身高,然后再求平均值,這樣做不太現實。因此,你會去找一些樣本,也就是找一部分本省 15 歲的男生,取他們身高的平均值,用這個樣本的平均值去近似的估計所有 15 歲男生的平均身高。

沒錯,一般就是這么干的。那接下來我再問你,找 100 個樣本取得的平均值和 1000 個樣本所取得的平均值,哪一個你認為更有可能接近真實的全省男生的平均身高(也就是期望)呢?你會說應該是 1000 個吧,畢竟樣本數量多,上下偏差相互抵消,應該會更接近一些。你的直覺沒有錯。

在數據分析的應用中,經常會有上述類似的應用場景,我們需要分析一類對象,常常得去獲取它的關鍵參數,就比如上面所提到的全體男生身高的均值,但是現實中我們不可能去窮盡全部的研究對象,而是只能取得一部分的樣本,通過計算這部分樣本的參數值去近似的估計總體的目標參數,樣本數量越大,近似效果越好。

這里的理論依據就是我們下面要詳細講解的大數定理,大數定理是一個非常底層的基礎性原理,大量的機器學習理論和算法實際上都建立在這個基礎之上。我們常常是理所當然地直覺上感受到它的存在,卻很少仔細想過背后的原因。那么通過這篇內容,我們會深入透徹地理解大數定理、中心極限定理背后的極限思想,另一方面也為機器學習的后續內容——參數估計打下一個良好的基礎。

大數定理

大數定理的定義我從網上找到兩種,先看定義、具體的后面會解釋:1.在隨機試驗中,每次出現的結果可能不同,但是大量重復試驗出現的結果的平均值卻幾乎總是接近於某個確定的值。2.在隨機事件的大量重復出現中,往往呈現幾乎必然的規律,這個規律就是大數定律。通俗地說,這個定理就是,在試驗不變的條件下,重復試驗多次,隨機事件的頻率近似於它的概率。

舉個最簡單、也是最常見的栗子,拋硬幣。我們知道拋硬幣正面朝上的概率是二分之一,但是我們拋四次,四次都是正面朝上或者正面朝下也是有可能的,但我們能說拋硬幣正面朝上的概率就是百分之百或者百分之零嗎?顯然是不能的,但是隨着試驗次數的不斷增大,會發現正面出現的次數/試驗的總次數不斷接近二分之一。所以我個人覺得第二種解釋更容易理解,就是重復試驗次數越多,事件的頻率越接近它的概率。

所以還是拋硬幣,正面朝上的概率是二分之一,隨着拋的次數增多,正面朝上出現的次數除以總次數、也就是它出現的頻率越接近二分之一、也就是概率。

知道了原理,我們來看看證明。

我們有如下的隨機變量:X1、X2、X3、Xn,它們之間滿足獨立同分布,因此它們有相同的均值μ和方差σ2

此時,我們重點來研究這一組隨機變量的均值:Mn = (X1、X2、X3、Xn) / n,顯然Mn也是一個隨機變量,那么Mn的期望和方差就是我們此時重點關心的問題

首先,我們從期望的定義入手,來觀察一下隨機變量Mn的期望E[Mn]

不難發現,一組獨立同分布隨機變量均值的期望就等於隨機變量的期望,這個結論很直觀。

下面我們再來看看 Mn的方差var[Mn]

我們從推導中發現,n 個獨立同分布隨機變量的均值的方差,是單一隨機變量方差的 1 / n。沒錯,均值的方差變小了,並且隨機變量 X 的個數 n 越多,方差越小,它們的分布更加緊密地圍繞在了期望的周圍。對應拋硬幣,拋的次數越多,分布越靠近1/2。特別地,當 n→+∞時,隨機變量均值的方差趨近於 0。

結合前前后后的一大段推導和論述,我們可以得出這么一個結論:

獨立同分布的隨機變量X1、X2、X3、Xn,它們的均值Mn的分布會更加接近於實際分布的均值μ,隨着樣本量 n 的增大,它主鍵收斂於μ,當 n→+∞ 時,也就是說當樣本量非常大的時候,通過抽樣樣本計算所得到的平均值可以說就是 E[X]了。

獨立同分布的隨機變量序列的樣本均值,在大樣本的情況下,以很大的概率與隨機變量的均值非常接近。這也就是為什么說,當獨立同分布的樣本數量 n 充分大時,樣本均值(頻率)是概率 P 的一個非常好的估計。

這就回到本篇最初提到的那個小問題了,樣本數量到底是選 100 還是選 1000,相信大家都會有明確的理論支撐了。這里我們還簡單地提兩個結論,其實說起來它們都比較直觀。

模擬大數定理

import numpy as np

# 創建100個均值為0、方差為1的正態分布隨機值
normal_1 = np.random.normal(0, 1, 100)
# 然后再來計算它們的均值和方差,但是發現還是有一點不一樣的
print(np.mean(normal_1))  # -0.05552717112374011
print(np.var(normal_1))  # 0.9247403373775263

# 創建10000個均值為0、方差為1的正態分布隨機值
normal_2 = np.random.normal(0, 1, 10000)
print(np.mean(normal_2))  # -0.007415951658353456
print(np.var(normal_2))  # 0.9971154752759972
# 看到此時差距就很小了

兩個重要的不等關系

我們來看概率統計中的兩個非常重要的不等關系,以及它們背后的直觀邏輯。

馬爾科夫不等式

用簡潔直白的語言描述它就是:對於一個非負的隨機變量 X,如果它的均值很小的話,那么這個隨機變量取到一個大值的概率是非常小的。想想確實很直觀,因為隨機變量的分布大部分都集中在均值附近,越遠離均值,概率就越小。

馬爾科夫不等式:

切比雪夫不等式

如果一個隨機變量的方差非常小的話,那么這個隨機變量取到遠離均值 μ 的概率也是非常小的,這個說實話也非常直觀,同樣有一個專門的不等式來描述它,叫切比雪夫不等式:

中心極限定理

下面接着來看另外一個現象,我們還是獲取隨機變量序列:X1、X2、X3、Xn,這n個隨機變量滿足獨立同分布,均值為μ,方差為σ2

我們在這組隨機變量序列的基礎之上得到一個新的隨機變量:

針對隨機變量 Zn,我們很容易計算出:

即,隨機變量 Zn 的期望為 0,方差為 1。

關鍵的一點是,隨着樣本個數 n 的增大,隨機變量 Zn 的分布逐漸趨向於一個標准正態分布,當 n→∞ 時,隨機變量的分布收斂於一個標准正態分布。更為重要的一點是,這個定理對隨機變量 X 的原始分布沒有任何要求,非常具有一般性。

那么中心極限定理的工程意義是什么呢?

實際上,中心極限定理中的隨機變量Zn是經過標准化處理的,如果單單只考慮 n 個隨機變量的和,我們很容易得到:

Sn = X1+X2+X3+...+Xn趨近於一個均值為nμ、方差為nσ2的正態分布

中心極限定理的意義在於,大量樣本的獨立隨機因素的疊加是趨近於一個正態分布的,這一點在很多工程領域很常見也很關鍵。

更重要的一點是,它不需要我們去搞明白隨機變量 X 的分布列或者概率密度函數,這往往是非常復雜的,甚至根本就無從得知,我們只需要知道它的均值和方差就可以進行后續的處理和分析了。

大數定理的應用:蒙特卡羅方法

機器學習中的應用背景

用大樣本數據計算出來的頻率去估計概率,這就是大數定理的本質,而大數定理思想的一個非常典型的應用就是蒙特卡羅方法。

蒙特卡羅方法,又叫統計模擬方法,名字很洋氣,思想很粗暴,真的很管用。它使用隨機數來進行場景的模擬或者過程的仿真,其思想核心就是通過模擬出來的大量樣本集或者隨機過程去近似我們想要研究的實際問題對象,這是一類非常重要的數值計算方法。

該方法的名字來源於世界著名的賭城蒙特卡羅。賭博和概率,二者相視一笑、不謀而合。這種方法最初應用於 20 世紀 40 年代美國的曼哈頓原子彈計划,如今在數據分析和機器學習領域中到處都有它的身影。

以下是蒙特卡羅方法的幾類非常典型的應用:

  • 1.近似計算不規則面積/體積/積分
  • 2.模擬隨機過程,預測隨機過程可能性結果的區間范圍
  • 3.利用馬爾科夫鏈—蒙特卡羅方法(MCMC)進行未知參數的統計推斷

利用蒙特卡羅方法計算不規則面積:

import numpy as np

# 選擇100000個-1到1之間的點
x = np.random.uniform(-1, 1, 100000)
y = np.random.uniform(-1, 1, 100000)

# 然后計算坐標點和(0, 0)之間的距離的平方
distance = x ** 2 + y ** 2
# 判斷多少個小於等於1,然后除以100000,即可得到 "半徑為1的圓的面積" 與"變長為2的正方形面積" 之比
print(np.sum(distance <= 1) / 100000 * 4)  # 3.14408

我們近似計算的目標就是半徑為1的單位圓面積,而這個單位圓的外接正方形的邊長為2,因此外接正方形的面積為 4。我們生成100000個在外接正方形內均勻分布的點,均勻的撒下去,這里面的核心原理就是:

這樣就可以估算出單位圓的面積了。而且大數定理告訴我們,隨着樣本數量的增大,我們用這種方式模擬出來的 π 值應該是越來越趨近於真實值,樣本無窮大的時候收斂於真值。這就證明了應用大數定理的蒙特卡羅方法的合理性和有效性。

至於有人可能會問了,是怎么判定一個點是否位於圓當中?這里用的是距離法,也就是計算每個點到原點的距離,如果小於等於半徑,就說明這個點在圓內。但是這里是不是有一個 Bug?就是說這個規則只對圓這種特殊圖像有效,如果是一個完全不規則的圖像,我們如何來計算這個圖像的面積?

我們可以借助計算機圖像中的像素來進行。比如把不規則圖像內部都塗黑,圖像外部都留白,我們還是均勻地撒下大樣本量的點,如果某個點位於的坐標,它的像素是黑色的,則證明這個點在圖像內部,反之就在圖像外部,利用這個方法就能統計出位於圖像內部的點的個數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM