Unity与高斯分布——Part1:理解高斯分布

原文链接: https://www.alanzucconi.com/2015/09/09/understanding-the-gaussian-distribution/


  • 引言

考虑一下如何在一个平面上生成随机点。这些点可以代表敌人,树木,或者任何实例。在Unity中最简单的方式就是:

Vector3 position = new Vector3();
position.x = Random.Range(min,max),
position.y = Random.Range(min,max);
transform.position = position;

Random.Range就可以生成下图中蓝色盒子内的点了。这些点均匀地散布在平面内,使得整个平面点的密度一致。

Unity与高斯分布——Part1:理解高斯分布_第1张图片

只是许多自然现象并不服从均匀分布,它们更像上图左边中的红点那样服从另一种概率分布:高斯分布。经验法则是:在自然场景中如果有某个值在一个确定的值附近徘徊,那么它很可能服从高斯分布。例如:

伤害:一个敌人,或者一把武器可造成的输出。

粒子密度:在某个特定物体附近的粒子的数目(火星子,灰尘等等)。

青草绿树:树与草在一个生态系统中的分布,例如一个湖边上植物的位置,或是一座山上石头的分布。

 

  • 理解均匀分布

当你掷骰子时,掷出6点的概率是1/6。从概率学的角度上说,扔骰子就是从一个均匀的,离散的分布中采样一个值的过程,如下左图所示。每个均匀分布都能用一个n面骰子来表示。每个面x有着相同的被选中的概率:1/n。类似Random.Range的函数,返回的则是一个连续的,在一定范围之上的均匀分布,如下右图所示。

Unity与高斯分布——Part1:理解高斯分布_第2张图片

在许多案例中,均匀分布是一个好的选择。例如从一套卡组中随机选择一张卡就可以用其完美建模。

 

  • 何为高斯分布

自然界中有许多现象不服从均匀分布。例如,当你测量一个屋子里人的身高时,你会发现有些值的出现次数要显著地高于其他值。大部分人身高相若,极高或极矮的人很罕见。随机从房间里选一个人,他的身高很可能与均值很接近。这些现象是典型的服从高斯(或正态)分布的。高斯分布中一个给定值的出现概率为:

均匀分布仅有一个参数n,而高斯分布则有两个参数和 ,分别代表均值和方差。均值反映了概率曲线的中心位置所在,而方差则显示了某个服从该分布的随机值偏离均值的可能性。

Unity与高斯分布——Part1:理解高斯分布_第3张图片

若某个变量X服从高斯分布,则可将其写作:

 

  • 高斯分布示例

让人吃惊的是,高斯分布可以通过正态分布产生。尽管两者在表达式上大相径庭,却有着密切的联系。我们想象一下,有个酒鬼正在下图中走路:他从图的左侧中间点出发,每次往右走一步时,他以等概率往上/下走一步。在x步以后他最有可能走到哪儿去呢?

Unity与高斯分布——Part1:理解高斯分布_第4张图片

因为每步都是等概率的,所以上图所有的路径都是等概率发生的。然而越往两边的终点走,路线越少;越往中间走,路线越多。因此这个酒鬼最有可能待在离中心的终点附近。如果有足够多的酒鬼和足够的时间去走路,那么他们最终的位置计数图将很接近于高斯分布。

这个理论在19世纪被Francis Galton以bean machine实验验证过,如下图所示。这一实验背后隐藏着中心极限定理的思想:在自然界与生产中,一些现象受到许多相互独立的随机因素的影响,如果每个因素所产生的影响都很微小时,总的影响可以看作是服从正态分布的。

Unity与高斯分布——Part1:理解高斯分布_第5张图片

  • 高斯分布推演

回头看看那个bean machine,想想每个球落入一个确定柱子里的概率是多少呢?

这就是所谓的二项分布。只是这个式子看上去一点也不“高斯分布”,怎么办呢?

令n趋近于无穷大,将离散的数值转为连续的——

首先,要将二项式系数扩展一下。这个式子由阶乘构成,而根据斯特林公式:,该式可转换成:,其中,。

你可能感兴趣的:(工作)