深度学习中的数据操作(六) 概率论 基于pytorch实现

1.6 概率论

"""
首先要导入相关的程序包
需先导包pip install d2l==0.14
"""
# Commented out IPython magic to ensure Python compatibility.
# %matplotlib inline
import torch
from torch.distributions import multinomial
from d2l import torch as d2l

"""1.5.1基本概率论

概率论就是指某件事发生的概率的计算。在图像识别中,一张很清晰的照片,其被识别的概率是很大的,但是如果照片的分辨率较低,其被正确识别的概率就会大大降低。这里以骰子为例。每一个数字出现的概率都应该是1/6。

这里需要介绍multinomial这个函数,不用深究,只需要知道前面的数字是代表进行几次,后面的tensor代表对哪个tensor执行。执行结果是随机选取元素,每种元素被选到几次。
"""

fair_probs = torch.ones([6]) / 6
print(fair_probs)
print(multinomial.Multinomial(1, fair_probs).sample())  #相当于选择了一个元素发生 每次运行的结果都是有可能不同的

print(multinomial.Multinomial(10, fair_probs).sample()) #相当于抽取十次

"""那么若将发生tensor保存下来,与发生次数相除,就可以得出概率了"""

count = multinomial.Multinomial(1000, fair_probs).sample()
count = count / 1000
print(count)

"""现在,进行五百组实验,我们来看看五百组实验过程中的概率变化"""

counts = multinomial.Multinomial(10, fair_probs).sample((500,)) #五百组,其就有五百列
print(counts)
cum_counts = counts.cumsum(dim=0) #相当于按行相加
print(cum_counts)
estimates = cum_counts / cum_counts.sum(dim=1, keepdims=True) #每组及之前的总概率
print(estimates)

d2l.set_figsize((6, 4.5))
for i in range(6):
    d2l.plt.plot(estimates[:, i].numpy(),
                 label=("P(die=" + str(i + 1) + ")"))
d2l.plt.axhline(y=0.167, color='black', linestyle='dashed') #画出标准概率线
d2l.plt.gca().set_xlabel('Groups of experiments') #标注横纵坐标
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend();

"""1.6.1.1 概率论公理

样本空间 S:事件所有可能结果的集合

对于事件A的概率P(A)来说,其满足以下三点:

1.P(A) > 0

2.P(S) = 0

3.对于互斥事件,其概率总和即为这几件事中某件事发生的概率

1.6.1.2 随机变量

随机变量用X表示,考虑一个随机变量X,其值在掷骰子的样本空间S={1,2,3,4,5,6}中。我们可以将事件“看到一个5”表示为{X=5}或X=5,其概率表示为P({X=5})或P(X=5)。通过P(X=a),我们区分了随机变量X和X可以采取的值(例如a)。

随机变量也有连续和离散之说,离散随机变量指样本空间是不连续的,其只是某几个有限的固定值,而连续随机变量则表示样本空间是连续的,可以理解为其是连续空间的某一个点

1.6.2 处理多个随机变量

即判断某件事情,需要运用到多个随机变量及其之间的联系。那么在处理的过程中,这些随机变量就需要一起考虑。举个例子,一个图像由成千上万个像素组成,那么这些像素之间的部分关系就会组成一类图像的特征,例如识别手写数字是,一系列竖着排列的黑点就是1的代表,这些点组成了1的特征,那么这些位置的像素相当于是许多随机变量,他们之间就有关系可以寻找。

1.6.2.1 联合概率

联合概率即为P(A=a,B=b),其代表事件A=a和事件B=b同时发生的概率。

1.6.2.2 条件概率

即P(A=a,B=b)/P(A=a),这个值的取值范围为[0,1]。其表明事件A=a已经发生的条件下,事件B=b发生的概率。上式也可以用P(B=b∣A=a) 表示,其中P(A=a,B=b)=P(B=b∣A=a)P(A=a),这是很好理解的,左边是两件事同时发生的概率,右边是事件A=a发生的条件下事件B=b发生的概率,即两件事同时发生的概率,用韦恩图可以很好的表示。

1.6.2.3 贝叶斯定理

即P(A∣B)=P(B∣A)*P(A)/P(B),可以从1.6.2.2中推导出来。

1.6.2.4 边际化(边缘概率分布)

将事件A发生的概率细分为A_1,A_2,A_3...那么此时P(A,B)=P(A_1,B)+P(A_2,B)+P(A_3,B)...

1.6.2.5 依赖与独立

在数学意义上,若两个事件相互独立,那么P(A,B)=P(A)*P(B),统计学家通常将这一点表述为A⊥B。根据贝叶斯定理,马上就能同样得到 P(A∣B)=P(A)。在所有其他情况下,我们称A和B依赖。

1.6.3 期望与方差

期望:通俗理解,期望就是指均值,表示为E[X]=∑x*P(X=x)

方差:通俗理解,方差 D(X) = ((x_1-E(X))^2+(x_2-E(X))^2+...+(x_n-E(X))^2)/n,其意义为:当从该随机变量分布中采样不同值x时,函数值偏离该函数的期望的程度

标准差:方差开根号
"""

'''
课后作业

1.进行 m=500 组实验,每组抽取 n=10 个样本。改变 m 和 n ,观察和分析实验结果。

2.给定两个概率为 P(A) 和 P(B) 的事件,计算 P(A∪B) 和 P(A∩B) 的上限和下限。(提示:使用友元图来展示这些情况。)

3.假设我们有一系列随机变量,例如 A 、 B 和 C ,其中 B 只依赖于 A ,而 C 只依赖于 B ,你能简化联合概率 P(A,B,C) 吗?(提示:这是一个马尔可夫链。)

4.在 2.6.2.6节中,第一个测试更准确。为什么不运行第一个测试两次,而是同时运行第一个和第二个测试?
'''
#1略
#2
#分不同情况来讨论
#1)A,B互斥,P(A∪B) = P(A) + P(B),P(A∩B) = 0
#2)A包含B(B包含A则相反),P(A∪B) = P(A),P(A∩B) = P(B)
#3)A和B均为空集,则全为0
#3
#首先,P(A,B,C)=P(C|A,B)*P(B|A)*P(A),其次,根据“其中 B 只依赖于 A ,而 C 只依赖于 B"可知,A->B->C。
#然后,马尔可夫链有一个定理就是,无论关系多么复杂,一个节点只与相邻节点有关联,即AC独立,P(C|A,B)=P(C|A),因为无论A发不发生,其与C无关
#最终答案即为P(C|B)*P(B|A)*P(A)
#4
#个人理解为,两次实验其特性是不同的,并且两次实验是独立的。
# 若同一个实验做两遍,那么该实验的缺点漏洞就不会被弥补,但两个不同的实验则可能可以相互弥补缺点,也会使准确率更加真实
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值