第二章 预备知识
2.6 概率
对于我们从工厂收到的真实骰子,我们需要检查它是否有瑕疵。检查骰子的唯一方法是多次投掷并记录结果。对于每个骰子,我们将观察到
首先导入需要的软件包:
python
%matplotlib inline
import torch
from torch.distributions import multinomial
from d2l import torch as d2l
说明:
%matplotlib inline
可以让图片在 Jupyter Notebook 的元素块内展示multinomial
是一个多项分布的模块
matplotlib
中文不显示怎么办
查看 matplotlib
配置文件路径:
python
import matplotlib
print(matplotlib.matplotlib_fname()) # 此处输出的就是配置文件的路径
得到结果:
bash
d:\Program\Miniconda\envs\d2l\lib\site-packages\matplotlib\mpl-data\matplotlibrc
进去后来到 264 行,将 #font.sans-serif
第一个加上 SimHei
即可,同理,可以在 #font.serif
第一个加上 SimSun
,分别是黑体和宋体。
在统计学中,我们把从概率分布中抽取样本的过程称为抽样(sampling)。笼统来说,可以把分布(distribution)看作对事件的概率分配,稍后我们将给出的更正式定义。将概率分配给一些离散选择的分布称为 多项分布(multinomial distribution)。显然,掷骰子就是一个多项分布,它将每个 1/6 分配给离散的 1~6 这 6 个数。
从这个概率分布中,我们抽取样本,等价于掷一次骰子。我们只需传入一个概率向量,输出是另一个相同长度的向量:它在索引
python
fair_probs = torch.ones([6]) / 6
multinomial.Multinomial(1, fair_probs).sample()
说明:fair_probs
给出了概率分布,这是一个平均分布。而多项分布的 对象 为:
python
torch.distributions.multinomial.Multinomial(
total_count=1, probs=None, logits=None, validate_args=None)
这个对象是由 total_count
和(probs
或 logits
,注意二者不能同时存在)参数化的多项分布,