深度学习--概率
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值,对距离和相机类型,所有这些都是联合发生的随机变量。当我们处理多个随机变量时,会有若干变量是我们感兴趣的。