×

PyTorch教程22.8之分布

消耗积分:0 | 格式:pdf | 大小:0.87 MB | 2023-06-05

526774

分享资料个

现在我们已经了解了如何在离散和连续设置中使用概率,让我们了解一些常见的分布。根据机器学习领域的不同,我们可能需要熟悉更多这些,或者对于深度学习的某些领域可能根本不需要。然而,这是一个需要熟悉的很好的基本列表。让我们首先导入一些常用库。

%matplotlib inline
from math import erf, factorial
import torch
from IPython import display
from d2l import torch as d2l

torch.pi = torch.acos(torch.zeros(1)) * 2 # Define pi in torch
%matplotlib inline
from math import erf, factorial
import numpy as np
from IPython import display
from d2l import mxnet as d2l
%matplotlib inline
from math import erf, factorial
import tensorflow as tf
import tensorflow_probability as tfp
from IPython import display
from d2l import tensorflow as d2l

tf.pi = tf.acos(tf.zeros(1)) * 2 # Define pi in TensorFlow

22.8.1。伯努利

这是通常遇到的最简单的随机变量。这个随机变量编码出现的抛硬币1有概率 p0有概率1−p. 如果我们有一个随机变量X有了这个分布,我们将写

(22.8.1)X∼Bernoulli(p).

累积分布函数是

(22.8.2)F(x)={0x<0,1−p0≤x<1,1x>=1.

概率质量函数绘制如下。

p = 0.3

d2l.set_figsize()
d2l.plt.stem([0, 1], [1 - p, p], use_line_collection=True)
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.show()
https://file.elecfans.com/web2/M00/A9/D0/poYBAGR9P52AUY-CAACMGeC0Slc166.svg
p = 0.3

d2l.set_figsize()
d2l.plt.stem([0, 1], [1 - p, p], use_line_collection=True)
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.show()
https://file.elecfans.com/web2/M00/A9/D0/poYBAGR9P52AUY-CAACMGeC0Slc166.svg
p = 0.3

d2l.set_figsize()
d2l.plt.stem([0, 1], [1 - p, p], use_line_collection=True)
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.show()
https://file.elecfans.com/web2/M00/A9/D0/poYBAGR9P52AUY-CAACMGeC0Slc166.svg

现在,让我们绘制累积分布函数 (22.8.2)

x = torch.arange(-1, 2, 0.01)

def F(x):
  return 0 if x < 0 else 1 if x > 1 else 1 - p

d2l.plot(x, torch.tensor([F(y) for y in x]), 'x', 'c.d.f.')
https://file.elecfans.com/web2/M00/A9/D0/poYBAGR9P6SAD1dXAAB3_TYhwkk326.svg
x = np.arange(-1, 2, 0.01)

def F(x):
  return 0 if x < 0 else 1 if x > 1 else 1 - p

d2l.plot(x, np.array([F(y) for y in x]), 'x', 'c.d.f.')
https://file.elecfans.com/web2/M00/AA/4A/pYYBAGR9P6aAOhhOAAB3-LOZqHI275.svg
x = tf.range(-1, 2, 0.01)

def F(x):
  return 0 if x < 0 else 1 if x > 1 else 1 - p

d2l.plot(x, tf.constant([F(y) for y in x]), 'x', 'c.d.f.')
https://file.elecfans.com/web2/M00/AA/4A/pYYBAGR9P6qAEyLOAAB3_t688lU920.svg

如果X∼Bernoulli(p), 然后:

  • μX=p,

  • σX2=p(1−p).

我们可以从伯努利随机变量中采样任意形状的数组,如下所示。

1*(torch.rand(10, 10) < p)
tensor([[0, 0, 1, 0, 0, 0, 1, 1, 0, 0],
    [1, 1, 0, 1, 0, 1, 0, 0, 0, 0],
    [0, 0, 1, 0, 1, 0, 1, 0, 1, 0],
    [1, 1, 1, 0, 1, 1, 0, 0, 0, 1],
    [0, 0, 0, 0, 0, 0, 1, 0, 1, 0],
    [1, 1, 0, 1, 0, 0, 0, 0, 0, 1],
    [1, 0, 1, 1, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 0, 0, 1, 0, 0, 0, 0, 0, 1],
    [0, 0, 1, 0, 0, 1, 0, 1, 0, 1]])
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !