如何识别一枚不均匀的骰子

最近的文章都是关于概率论和信息论相关的概念,计划把概率论的基本概念做系统的梳理,笔者认为理解基础的概念远比项目代码重要,感兴趣的读者朋友可以回头看整个系列专题,笔者单独整理了合集。

对于一个老牌友来说,骰子是在熟悉不过了。常用的骰子是六面体,掷出每个点的概率是相同的,都是六分之一,这其实有个前提,那就是骰子必须是均匀的,如果不是均匀的,骰子的重心不在几何中心位置的话,由于抛起以后下落的过程中重心会尽可能的下降,远离重心一侧的点数概率会偏高一些。那么我们如何识别一枚骰子是否均匀了?除了检测仪器以外,我们可以重复试验验证。

这里很多人都能想到,我们重复大量的次数,然后统计每个面出现的频率,如果每个面出现的频率基本相等,那说明骰子是均匀的,相差较大则说明骰子是不均匀的。并且我们感觉这种方法肯定是可行的,事实上确实如此,但这背后隐藏了一个统计学中非常重要的定理,那就是大数定律

大数定律

大数定律是阐述频率与概率之间的关系。上述重复掷骰子的过程,比如统计5点朝上的次数,除以试验的总次数,实际上得到是5点朝上的频率,我们通常用这个频率来代替这个概率。为什么可以这么做,就是大数定律提供了保障。

伯努利大数定律,设mmnn 次独立重复试验中某事件发生的次数,而pp是这个事件发生的概率,则对于任意的ϵ>0\epsilon \gt 0,恒有:

limnP{mnp}<ϵ\lim _{n\rightarrow\infty} P\{|\frac m n-p|\} < \epsilon

伯努利大数定律从理论上证明了频率具有稳定性,即频率mn\frac m n依概率收敛与事件发生的概率pp,因而当试验次数n很大时,便可以频率作为概率的估计值,即mn=p\frac m n = p

概率论中两个非常重要的定律一个是大数定律,另外一个就是在前面说高尔顿板时提到的中心极限定理,这两个理论在概率论中非常重要。

极大似然估计

根据大数定律我们做大量的重复独立试验,用频率估计概率就能基本判断骰子是否均匀了,试验的次数越多,频率越接近真实概率。那为什么还需要极大似然估计呢?因为极大似然估计是一种更加通用的参数估计方法,常用于机器学习和深度学习参数估计。

似然概率就是样本出现的概率,样本来源于真实世界的采样,既然采样出来了这一组样本,那么这组样本出现概率应该是最大的,于是我们通过极大化似然概率来估计模型的参数。

回到本文的例子中,我们通过重复多次掷骰子,本质上就是从真实的骰子点数中进行采样,假设我们得到一组样本点4,6,1,3,4,6,5,1,2,1,6用pip_i表示点数ii出现的概率,于是我们写出似然概率

L=p13p2p3p42p5p63L = p_1^3 p_2 p_3 p_4 ^2 p_5 p_6^3

既然我们从真实点数中采样得到这组样本,说明这组样本出现的概率应该是最大的,也就意味着p1,...,p6p_1,...,p_6的取值使得LL最大。通常会对似然概率取对数,加上负号,于是上面等价于

lnL=(3lnp1+lnp2+lnp3+2lnp4+lnp5+3lnp6)-\ln L = -(3\ln p_1 +\ln p_2+\ln p_3+2\ln p_4 + \ln p_5 + 3\ln p_6)

pip_i的取值使得上面的式子最小化,,根据概率归一化i=16pi=1\sum_{i=1} ^6 p_i = 1。至于求解过程直接使用拉格朗日数乘法容易得到解析解。而在机器学习或者深度学习中,似然概率一般较为复杂,找到解析解几乎不可能,通常会采用梯度下降法需求数值解,这部分本文暂不介绍。

总结

本文介绍了如何识别一枚不均匀的骰子,通过大量的独立重复试验可以用频率来代替概率,可以这么做是因为有大数定律作为理论基础。其实大数定律跟我们平时生活中理解会有些偏差,比如我们抛掷几十次硬币,正面和负面出现的次数相差是很大的,而且每次投掷时正面与反面出现的概率是相同的,并不因为前面连续出现了多次正面,接下来出现反面的概率就会增大。在很多赌局中千万不要这么赌,因为你的本金支撑不了"大数"的情况,也就不会出现正面等于反面的概率。

同时我们也介绍了一种参数估计的方式,极大似然估计。限于本文的例子比较简单,反而觉得极大似然估计比样本统计频率复杂得多,实际上极大似然估计特别适用于似然概率比较复杂的情况。