机器学习中常见的概率分布

  在机器学习中有许多简单的概率分布,掌握这些概率分布有助于思考问题。

1.Bernoulli分布(伯努利分布)

  Bernoulli分布是单个二值随机变量的分布。一个简单的实验只有两个可能的结果,例如抛硬币的正面和反面、做一件事成功或失败,将这两种情况记作0和1,即随机变量只能取值为0和1,并由单个参数 ϕ \phi ϕ给出随机变量等于1的概率。
  Bernoulli分布具有一些性质。
P ( X = 1 ) = ϕ P ( X = 0 ) = 1 − ϕ P(X=1) = \phi \\ P(X=0) = 1-\phi P(X=1)=ϕP(X=0)=1−ϕ
概率质量函数为:
P ( X = x ) = ϕ x ( 1 − ϕ ) 1 − x P(X=x)=\phi^x(1-\phi)^{1-x} P(X=x)=ϕx(1−ϕ)1−x
对于 f ( x ) = x f(x)=x f(x)=x,期望和方差为:
E x [ f ( x ) ] = 1 ∗ ϕ + 0 ∗ ( 1 − ϕ ) = ϕ V a r x [ f ( x ) ] = E [ ( f ( x ) − E [ f ( x ) ] ) 2 ] = ϕ ( 1 − ϕ ) E_x[f(x)]=1*\phi+0*(1-\phi)=\phi \\ Var_x[f(x)]=E[(f(x)-E[f(x)])^2]=\phi(1-\phi) Ex​[f(x)]=1∗ϕ+0∗(1−ϕ)=ϕVarx​[f(x)]=E[(f(x)−E[f(x)])2]=ϕ(1−ϕ)

2.Multinoulli分布(多项式分布的一个特例)

  Multinoulli分布也叫范畴分布(categorical distribution),是Bernoulli分布的泛化,如果说Bernoulli分布代表着一个只有两种结果的简单实验,那Multinoulli分布就是可能有 k k k个结果的实验。随机向量 X X X定义为:
X = [ X 1 , X 2 , ⋯   , X k ] X=[X_1, X_2,\cdots, X_k] X=[X1​,X2​,⋯,Xk​]
当得到第 i i i个结果时,随机向量 X X X的第 i i i个值即 X i X_i Xi​为1,其他为0。 k k k个可能的结果的概率则用 p 1 , p 2 , ⋯   , p K p_1, p_2,\cdots,p_K p1​,p2​,⋯,pK​来表示。
   X X X是 K × 1 K×1 K×1的离散随机向量, R X R_X RX​为 X X X的支持,其中一个量为1,其他量均为0:
R X = { x ∈ { 0 , 1 } K : ∑ j = 1 K x j = 1 } R_X=\{x\in\{0,1\}^K:\sum_{j=1}^Kx_j=1\} RX​={x∈{0,1}K:j=1∑K​xj​=1}
p 1 , p 2 , ⋯   , p K p_1, p_2, \cdots, p_K p1​,p2​,⋯,pK​为 K K K个非负数,并且满足:
∑ j = 1 K p j = 1 \sum_{j=1}^Kp_j=1 j=1∑K​pj​=1
这时,如果有如下联合概率质量函数我们就说 X X X有一个Multinoulli分布并且概率为 p 1 , p 2 , ⋯   , p K p_1,p_2,\cdots,p_K p1​,p2​,⋯,pK​。
p X ( x 1 , x 2 , ⋯   , x K ) = { ∏ j = 1 K p j x j i f ( x 1 , x 2 , ⋯   , x K ) ∈ R X 0 o t h e r w i s e p_X(x_1, x_2,\cdots,x_K)= \begin{cases} \prod_{j=1}^Kp_j^{x_j} &if(x_1,x_2,\cdots,x_K)\in R_X \\ 0 &otherwise \end{cases} pX​(x1​,x2​,⋯,xK​)={∏j=1K​pjxj​​0​if(x1​,x2​,⋯,xK​)∈RX​otherwise​
当 ( x 1 , x 2 , ⋯   , x K ) ∈ R X (x_1,x_2,\cdots,x_K)\in R_X (x1​,x2​,⋯,xK​)∈RX​并且此时有 x i = 1 x_i=1 xi​=1,这说明其他的值都是0,因此就有下面的式子:
∏ j = 1 K p j x j = p 1 x 1 ∗ ⋯ ∗ p i x i ∗ ⋯ ∗ p K x K = p 1 0 ∗ ⋯ ∗ p i 1 ∗ ⋯ ∗ p K 0 = 1 ∗ ⋯ ∗ p i ∗ ⋯ ∗ 1 = p i \prod_{j=1}^Kp_j^{x_j}=p_1^{x_1}*\cdots *p_i^{x_i}*\cdots *p_K^{x_K} \\ =p_1^{0}*\cdots *p_i^{1}*\cdots *p_K^{0} \\=1*\cdots *p_i*\cdots*1 \\=p_i j=1∏K​pjxj​​=p1x1​​∗⋯∗pixi​​∗⋯∗pKxK​​=p10​∗⋯∗pi1​∗⋯∗pK0​=1∗⋯∗pi​∗⋯∗1=pi​
  Multinoulli分布经常用来表示对象分类的分布,所以我们很少假设状态1具有数值1之类的。因此,我们通常不需要去计算Multinoulli分布的随机变量的期望和方差。

3.高斯分布

  实数上最常用的分布就是正态分布,也称高斯分布。若随机变量X服从一个数学期望为 μ \mu μ、方差为 σ 2 \sigma^2 σ2的正态分布,记为 N ( μ , σ 2 ) N(\mu,\sigma^2) N(μ,σ2)。概率密度函数为
N ( x : μ , σ 2 ) = 1 2 π σ 2 e x p ( − 1 2 σ 2 ( x − μ ) 2 ) N(x:\mu,\sigma^2)=\sqrt{\cfrac{1}{2\pi\sigma^2}}exp(-\cfrac{1}{2\sigma^2}(x-\mu)^2) N(x:μ,σ2)=2πσ21​ ​exp(−2σ21​(x−μ)2)
其概率密度函数为正态分布的期望值 μ \mu μ决定了其位置,其标准差 σ \sigma σ决定了分布的幅度。当 μ = 0 , σ = 1 \mu = 0,\sigma = 1 μ=0,σ=1时的正态分布是标准正态分布。
  正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。
  当我们要对概率密度函数求值时,需要对 σ \sigma σ平方并取倒数。当我们需要经常对不同参数下的概率密度函数求值时,一种更高效的参数化分布的方式是使用参数 β ∈ ( 0 , ∞ ) \beta\in(0,\infty) β∈(0,∞)来控制分布的精度(或方差的倒数):
N ( x : μ , β − 1 ) = β 2 π e x p ( − 1 2 β ( x − μ ) 2 ) N(x:\mu,\beta^{-1})=\sqrt{\cfrac{\beta}{2\pi}}exp(-\cfrac{1}{2}\beta(x-\mu)^2) N(x:μ,β−1)=2πβ​ ​exp(−21​β(x−μ)2)
  进一步,正态分布可以推广到 R n R_n Rn​空间,这种情况下被称为多维正态分布。它的参数是一个正定对称矩阵 Σ \Sigma Σ:
N ( x : μ , Σ ) = 1 ( 2 π ) n d e t ( Σ ) e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) N(x:\mu,\Sigma)=\sqrt{\cfrac{1}{(2\pi)^n det(\Sigma)}}exp(-\cfrac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)) N(x:μ,Σ)=(2π)ndet(Σ)1​ ​exp(−21​(x−μ)TΣ−1(x−μ))
  这式子看起来很复杂的样子,我只是简单了解了一下。参数 μ \mu μ仍然表示分布的均值,只不过现在是向量值。参数 Σ \Sigma Σ给出了分布的协方差矩阵。和单变量的情况类似,当我们希望对很多不同参数下的概率密度函数多次求值时,协方差矩阵并不是一个很高效的参数化分布方式,因为对概率密度函数求值时需要对 Σ \Sigma Σ求逆。我们可以使用一个精度矩阵 β \beta β进行替代:
N ( x : μ , β − 1 ) = d e t ( β ) ( 2 π ) n e x p ( − 1 2 ( x − μ ) T β ( x − μ ) ) N(x:\mu,\beta^{-1})=\sqrt{\cfrac{det(\beta)}{(2\pi)^n}}exp(-\cfrac{1}{2}(x-\mu)^T\beta(x-\mu)) N(x:μ,β−1)=(2π)ndet(β)​ ​exp(−21​(x−μ)Tβ(x−μ))
  我们常常把协方差矩阵固定成一个对角阵。一个更简单的版本是各向同性高斯分布,它的协方差矩阵是一个标量乘以单位阵。

4.指数分布和Laplace分布(拉普拉斯分布)

  深度学习中,我们经常会需要一个在 x = 0 x=0 x=0点处取得边界点的分布。为了实现这一目的,我们可以使用指数分布:
p ( x ; λ ) = λ 1 x ≥ 0 e x p ( − λ x ) p(x;\lambda)=\lambda1_{x\ge0}exp(-\lambda x) p(x;λ)=λ1x≥0​exp(−λx)
其中用指示函数 1 x ≥ 0 1_{x\ge0} 1x≥0​来使得当 x x x取负值时的概率为0。
  一个联系紧密的概率分布是Laplace分布,它允许我们在任意一点 μ \mu μ处设置概率质量的峰值:
L a p l a c e ( x ; μ , γ ) = 1 2 γ e x p ( − ∣ x − μ ∣ γ ) Laplace(x;\mu, \gamma)=\cfrac{1}{2\gamma}exp(-\cfrac{|x-\mu|}{\gamma}) Laplace(x;μ,γ)=2γ1​exp(−γ∣x−μ∣​)
其中 μ \mu μ是位置参数, γ \gamma γ是尺度参数,果 μ = 0 \mu = 0 μ=0,那么,正半部分恰好是尺度为 1 γ \cfrac{1}{\gamma} γ1​(或者 γ \gamma γ,看具体指数分布的尺度参数形式)的指数分布的一半。

5.Dirac分布(狄拉克分布)和经验分布

  在一些情况下,我们希望概率分布中的所有质量都集中在一个点上。这可以通过Dirac delta函数 δ ( x ) \delta(x) δ(x)定义概率密度函数来实现:
p ( x ) = δ ( x − μ ) p(x)=\delta(x-\mu) p(x)=δ(x−μ)
   δ ( x ) \delta(x) δ(x)是一个广义函数,在物理学中常用其表示质点、点电荷等理想模型的密度分布,该函数在除了零以外的点取值都等于零,而其在整个定义域上的积分等于1。通过把 p ( x ) p(x) p(x)定义成 δ \delta δ函数右移 μ \mu μ个单位,我们就得到了一个在 x = μ x=\mu x=μ处具有无限窄也无限高的概率质量。
  Dirac分布经常作为经验分布的一个组成部分出现:
p ^ ( x ) = 1 m ∑ i = 1 m δ ( x − x ( i ) ) \hat p(x)=\cfrac{1}{m}\sum_{i=1}^m\delta(x-x^{(i)}) p^​(x)=m1​i=1∑m​δ(x−x(i))
经验分布将概率密度 1 m \cfrac{1}{m} m1​赋给 m m m个点的每一个,这些点是给定数据集或者采样的集合。只有在定义连续型随机变量的经验分布时, δ ( x ) \delta(x) δ(x)函数才是必要的。对于离散型随机变量,情况更加简单:经验分布可以被定义成一个Multinoulli分布,对于每一个可能的输入,其概率可以简单地设为在训练集上哪个输入值的经验概率。
  当我们在训练集上训练模型时,可以认为从这个训练集上得到的经验分布指明了采样来源的分布。关于经验分布另外一种重要的观点是,它是训练数据的似然最大的那个概率密度函数。

参考资料《深度学习》

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐