1 基本概率論
1.1 假設我們擲骰子,想知道1而不是看到另一個數字的概率,如果骰子是公司,那么所有6個結果(1..6),都有相同的可能發生,因此,我們可以說1發生的概率為1/6.
然而現實生活中,對于我們從工廠收到的真實骰子,我們需要檢查它是否有瑕疵,唯一的辦法就是多投擲骰子,對于每個骰子觀察到的[1.2...6]的概率隨著投擲次數的增加,越來越接近1/6.
導入必要的包
%matplotlib inline
import torch
from torch.distributions import multinomial
from d2l import torch as d2l
在統計學中,我們把從概率分布中抽取樣本的過程稱為抽樣,籠統地說,可以吧分布看作是概率的分配,稍后我們將給出更加正式的定義,將概率分配給一些離散選擇的分布稱為多項分布。
為了抽樣一個樣本,擲骰子,我們只需要輸入一個概率向量,輸出是另一個相同長度的向量,在索引i處的值時采樣結果i出現的次數。
fair_probs = torch.ones([6])/8;
multinomial.Multinomial(), fair_probs).sample()
tensor(0,1,0,0,0,0);
在估計一個骰子的公平性時,我們希望同一分布中生成多個樣本,如果用python的for循環完成這個任務,速度回慢得驚人,因此我們使用深度學習框架函數同時抽取多個樣本,以得到我們想要的任何形狀的獨立樣本數組。
multinomial.Multinomial(10,fair_probs).sample()
tensor([1,1,2,1,3,2]);
現在我們知道如何對骰子進行抽樣,我們可以模擬1000次投擲,然后,我們可以統計1000次投擲后每個數組唄投中了多少次,具體來說,我們計算相對頻率,以作為對真實概率的估計。
將結果存儲為32位浮點數以進行除法。
counts=multinomial.Multinomial(1000, fair_probs).sample();
counts / 1000;
tensor([0.1500,0.1770,0.1540,0.1000,0.1790,0.1600]);
因為我們是從一個公平的骰子中生成的數據,我們知道每個結果都有真實的概率1/6,約為0.167,所以上面輸出的估計值看起來不錯。
我們也可以看到這些概率如何隨著時間的推移收斂的真實概率,我們進行500組實驗,每組抽取10個樣本。
每條實線對應骰子的6個值的一個,并給出骰子的每組實驗后出現值的估計概率,當我們同過更多的實驗獲得更多的數據時,這6條實體曲線向真實概率收斂。
一 概率論公理
在處理骰子的擲出結果時,我們將集合S=(1,2,3,4,5,6)稱為樣本空間 或結果空間,其中每個元素都是結果,事件時一組給定樣本空間的隨機結果,例如,看到5,和看到奇數都是擲骰子的有效事件。注意,如果一個隨機試驗的結果在A中,則事件A已經發生,也就是說,如果擲出3點,因為3 < {1,3,5} 我們可以說,看到奇數的事件發生了。
概率 可以唄認為是將集合映射到真實值的函數,在給定的樣本空間S中,事件A的概率表示為P(A),具有一下屬性。
1 對于任意事件A,其概率不會為負數,即P(A) >= 0
2 整個樣本空間的概率為1,即P(S) = 1
3 序列中任意一個事件發生的概率等于他們各自發生的概率之和。
二 隨機變量
在我們擲骰子的隨機試驗中,我們引入了隨機變量random variable的概率,隨機變量幾乎可以取任何數值,并且它可以在隨機試驗的一組可能性中取一個值,考慮一個隨機變量X,其值的擲骰子的樣本空間中S={1,2,3,4,5,6} 我們可以將事件,看到一個5
表示為或{X=5}或X=5,其概率表示為P{X=5}或者P(X=5) 通過P(X=a) 我們可以區分隨機變量X和X可以取的值,然而,這可能會導致繁瑣的表示,為了簡化符號,一方面,我們可以將P(X) 表示為隨機變量X上的分布(distribution) 分布告訴我們X取得某一值的概率,另一方面,我們可以簡單的用P(a) 表示隨機變量取值為a的概率由于概率論中的事件是來自樣本空間的一組結果,因此我們可以為隨機變量指定值的取值范圍。例如,P(1<<X<<3)表示事件(1<<X<<3) 即(X=1,2,3)的概率,等價的,P(1<<X<<3)表示隨機變量X從{1,2,3}中取值的概率。
離散隨機變量和連續(continnuous) 隨機變量之間存在微妙的區別,現實生活中,測量兩個人是否具有相同的身高沒有太大意義,如果我們進行足夠精確的測量,最終會被發現這個星球上沒有兩個人具有完全相同的身高,在這種情況下,詢問某人的身高是否落入給定的區間,比如是否在1.79米-1.81米更有意義。我們將這個看到某個數值的可能性量化為密度(density),身高恰好為1.8米的概率為0, 但是密度不是0,在任何兩個不同身高之間的區間,我們都有非零的概率。在本節的其余部分中,我們將考慮離散空間中的概率,連續隨機變量的概率可以參考本書英文附錄。
2.6.2 處理多個隨機變量
很多時候,我們會考慮多個隨機變量,比如,我們可能需要對疾病和癥狀之間的關系建模。給定一個疾病和一個癥狀,比如流感和咳嗽,以某個概率存在或者不存在于某個患者身上。我們需要估計這些概率以及概率之間的關系,以便我們可以運用我們的推斷來實現更好的醫療服務。
再舉一個例子,圖像包含數百萬像素,因此有數百萬個隨機變量。在許多情況下,圖像會附帶一個標簽label,以標識圖像中的對象。我們也可以將標簽視為一個隨機變量。我們甚至可以將所有元數據視為隨機變量,例如位置。時間,光圈,焦距,ISO值,對距離和相機類型,所有這些都是聯合發生的隨機變量。當我們處理多個隨機變量時,會有若干變量是我們感興趣的。