不管怎樣,機器學(xué)習(xí)都是關(guān)于不確定性的。在監(jiān)督學(xué)習(xí)中,我們希望在給定已知事物(特征)的情況下預(yù)測未知事物(目標(biāo))。根據(jù)我們的目標(biāo),我們可能會嘗試預(yù)測目標(biāo)的最可能值。或者我們可以預(yù)測與目標(biāo)的預(yù)期距離最小的值。有時我們不僅希望預(yù)測特定值,而且希望量化我們的不確定性。例如,給定一些描述患者的特征,我們可能想知道有多大可能他們將在明年心臟病發(fā)作。在無監(jiān)督學(xué)習(xí)中,我們經(jīng)常關(guān)心不確定性。要確定一組測量值是否異常,了解一個人在感興趣的總體中觀察值的可能性有多大是有幫助的。此外,在強化學(xué)習(xí)中,我們希望開發(fā)能夠在各種環(huán)境中智能行動的智能體。這需要推理環(huán)境可能會如何變化,以及人們可能期望在響應(yīng)每個可用操作時遇到什么獎勵。
概率是與不確定性推理有關(guān)的數(shù)學(xué)領(lǐng)域。給定某個過程的概率模型,我們可以推斷各種事件的可能性。使用概率來描述可重復(fù)事件(如拋硬幣)的頻率是相當(dāng)沒有爭議的。事實上,頻率論學(xué)者堅持只適用于此類可重復(fù)事件的概率解釋。相比之下,貝葉斯學(xué)者更廣泛地使用概率語言來形式化我們在不確定性下的推理。貝葉斯概率具有兩個獨特的特征:(i) 將置信度分配給不可重復(fù)的事件,例如,概率是 多少月亮是奶酪做的?(ii) 主觀性——雖然貝葉斯概率為人們應(yīng)該如何根據(jù)新證據(jù)更新他們的信念提供了明確的規(guī)則,但它允許不同的個體以不同的先驗信念開始。 統(tǒng)計數(shù)據(jù)幫助我們向后推理,從收集和組織數(shù)據(jù)開始,然后退回到我們可能對生成數(shù)據(jù)的過程得出的推論。每當(dāng)我們分析數(shù)據(jù)集,尋找我們希望可以表征更廣泛人群的模式時,我們都在運用統(tǒng)計思維。大多數(shù)課程、專業(yè)、論文、職業(yè)、部門、公司和機構(gòu)都致力于研究概率和統(tǒng)計。雖然本節(jié)僅涉及表面,但我們將為您提供開始構(gòu)建模型所需的基礎(chǔ)。
%matplotlib inline
import random
import torch
from torch.distributions.multinomial import Multinomial
from d2l import torch as d2l
%matplotlib inline
import random
import tensorflow as tf
from tensorflow_probability import distributions as tfd
from d2l import tensorflow as d2l
2.6.1. 一個簡單的例子:拋硬幣
想象一下,我們計劃拋硬幣并想要量化我們看到正面(與反面)的可能性有多大。如果硬幣是公平的,那么兩種結(jié)果(正面和反面)的可能性都相同。此外,如果我們打算拋硬幣n次,那么我們期望看到的正面部分應(yīng)該與預(yù)期的反面部分完全匹配。一種直觀的方式是通過對稱性來看待這一點:對于每一個可能的結(jié)果nh 頭和nt=(n?nh)尾巴,有一個同樣可能的結(jié)果nt頭和nh尾巴。請注意,這只有在我們平均期望看到的情況下才有可能1/2拋出頭和1/2出現(xiàn)尾巴。當(dāng)然,如果你多次進(jìn)行這個實驗n=1000000拋擲每一個,你可能永遠(yuǎn)看不到試驗在哪里nh=nt確切地。
形式上,數(shù)量1/2被稱為概率,在這里它捕捉到任何給定的拋擲都會出現(xiàn)正面的確定性。概率在之間分配分?jǐn)?shù)0和1到感興趣的結(jié)果,稱為事件。這里感興趣的事件是 heads我們表示相應(yīng)的概率 P(heads). 的概率1表示絕對確定性(想象一個雙面都是正面的騙局硬幣)和概率0表示不可能(例如,如果兩邊都是反面)。頻率nh/n和nt/n不是概率而是統(tǒng)計。概率是 數(shù)據(jù)生成過程的理論量。在這里,概率1/2是硬幣本身的屬性。相比之下,統(tǒng)計數(shù)據(jù)是作為觀察數(shù)據(jù)的函數(shù)計算的經(jīng)驗量。我們對概率和統(tǒng)計量的興趣密不可分。我們經(jīng)常設(shè)計稱為估計器的特殊統(tǒng)計數(shù)據(jù),在給定數(shù)據(jù)集的情況下,它會產(chǎn)生 模型參數(shù)(如概率)的估計值。此外,當(dāng)這些估計量滿足稱為一致性的良好屬性時,我們的估計將收斂到相應(yīng)的概率。反過來,這些推斷的概率說明了我們將來可能遇到的來自同一人群的數(shù)據(jù)的可能統(tǒng)計特性。
假設(shè)我們偶然發(fā)現(xiàn)了一枚真實的硬幣,但我們并不知道它的真實價值P(heads). 要用統(tǒng)計方法調(diào)查這個數(shù)量,我們需要(i)收集一些數(shù)據(jù);(ii) 設(shè)計一個估算器。這里的數(shù)據(jù)采集很容易;我們可以多次拋硬幣并記錄所有結(jié)果。形式上,從一些底層隨機過程中繪制實現(xiàn)稱為采樣。正如您可能已經(jīng)猜到的那樣,一種自然的估計量是觀察到的正面朝上數(shù)與拋擲總次數(shù)之間的分?jǐn)?shù)。
現(xiàn)在,假設(shè)硬幣實際上是公平的,即 P(heads)=0.5. 為了模擬公平硬幣的拋擲,我們可以調(diào)用任何隨機數(shù)生成器。以概率抽取事件樣本的一些簡單方法0.5. 例如 Python random.random
在區(qū)間內(nèi)產(chǎn)生數(shù)字[0,1]其中躺在任何子區(qū)間的概率[a,b]?[0,1]等于b?a. 因此我們可以通過0
測試返回的1
浮點數(shù)0.5
是否大于0.5
num_tosses = 100
heads = sum([random.random() > 0.5 for _ in range(100)])
tails = num_tosses - heads
print("heads, tails: ", [heads, tails])
heads, tails: [48, 52]
num_tosses = 100
heads = sum([random
評論
查看更多