机器学习笔记之指数族分布——最大熵角度观察指数族分布(一)最大熵思想

引言

上一节介绍了指数族分布的通式以及共轭性质,本节将通过代码示例共轭性质,并介绍最大熵思想

补充:指数族分布的共轭性质

指数族分布的共轭性质主要面对贝叶斯估计中分母积分难的问题:
P ( θ ∣ x ) = P ( x ∣ θ ) ⋅ P ( θ ) ∫ θ P ( x ∣ θ ) ⋅ P ( θ ) d θ \mathcal P(\theta \mid x) = \frac{\mathcal P(x \mid \theta) \cdot \mathcal P(\theta)}{\int_{\theta} \mathcal P(x \mid \theta) \cdot \mathcal P(\theta)d\theta} P(θx)=θP(xθ)P(θ)dθP(xθ)P(θ)

因此,共轭性质的具体表述逻辑如下:

  • 如果概率模型(似然函数) P ( x ∣ θ ) \mathcal P(x \mid \theta) P(xθ)分布 存在一个共轭的先验分布 P ( θ ) \mathcal P(\theta) P(θ),那么效果是:后验分布 P ( θ ∣ x ) \mathcal P(\theta \mid x) P(θx)与先验分布 P ( θ ) \mathcal P(\theta) P(θ)会形成相同分布形式
    P ( θ ∣ x ) ∝ P ( x ∣ θ ) ⋅ P ( θ ) \mathcal P(\theta \mid x) \propto \mathcal P(x \mid \theta) \cdot \mathcal P(\theta) P(θx)P(xθ)P(θ)

示例:
假设似然概率二项式分布,关于似然概率 P ( x ∣ θ ) \mathcal P(x \mid \theta) P(xθ)中的参数 θ \theta θ的概率 P ( θ ) \mathcal P(\theta) P(θ)服从 Beta \text{Beta} Beta分布,那么后验概率的分布 P ( θ ∣ x ) \mathcal P(\theta \mid x) P(θx)同样也服从 Beta \text{Beta} Beta分布,但该分布与 P ( θ ) \mathcal P(\theta) P(θ)服从的 Beta \text{Beta} Beta分布不一定相同
具体代码如下:
首先构建一个二项分布的随机数,执行120次试验,并将试验结果归一化为 ( 0 , 1 ) (0,1) (0,1)范围内的结果

import nunmpy as np

def get_Binormal():
    outcome = np.random.binomial(13001,0.5,120)
    # outcome = np.random.binormal(13001,0.5,12000)
    max_out = max(outcome)
    return [(i / max_out) for i in outcome]

返回结果如下:
二项式分布随机样本示例
可能只能看出一点规律,如果将试验次数增加至12000次,再次观察分布结果:
二项式分布随机样本示例2
此时发现,这明显是高斯分布的随机点图像。当观测序列足够大时,二项分布近似于高斯分布传送门。回归正题,接下来构建一个关于 Beta \text{Beta} Beta分布的随机数

from scipy.stats import beta

def get_beta(a,b,sample_num):
    x = np.linspace(0,1,sample_num)
    return beta.pdf(x,a,b)
    
out = get_beta(1.4,1.2,120)

返回随机数图像结果如下:
Beta分布随机数示例
最后将两组随机数对应元素做乘法,观察结果:
请添加图片描述
如果两种分布采样次数越多,其乘法分布结果就越稳定。下面是采样2000次时的结果图像:
二项式分布与Beta分布的共轭效果
完整代码如下:

from scipy.stats import beta
import numpy as np

import matplotlib.pyplot as plt

def get_Binormal(rate):
    outcome = np.random.binomial(13001,rate,200)
    max_out = max(outcome)
    return [(i / max_out) for i in outcome]

def get_beta(a,b,sample_num):
    x = np.linspace(0,1,sample_num)
    return beta.pdf(x,a,b)

if __name__ == '__main__':
    out = get_beta(1.4,1.2,200)
    x = [i for i in range(len(out))]
    bi_out = get_Binormal(rate=0.01)
    bi_out_ = get_Binormal(rate=0.99)

    final_out = out * bi_out
    final_out_ = out * bi_out_

    plt.scatter(x,out,s=1)
    plt.scatter(x,final_out,s=1)
    plt.scatter(x,final_out_,s=1)
    plt.show()

最大熵思想介绍

信息量

信息本身就伴随着 不确定性(或者说信息自身存在随机性)。而信息量大小表示信息消除不确定性的程度

  • 如果某个事件发生的概率 p = 1 p=1 p=1恒成立,例如:太阳从东方升起。这条信息的不确定性为 0 0 0,自然不存在消除不确定性的说法
    从该例子中发现,至少要存在不确定性,才有机会谈到不确定性消除的概念
  • 另一个例子:我中了5000万。由于中奖的概率极低,假设是99.9%(当然实际上比该数值还要低),那么这条信息就 排除 了99.9%概率的事件——我没有中5000万,这可以看出这条信息消除不确定性的程度很高

从上述两个例子可以发现,信息消除不确定性的程度信息本身发生的概率成反比关系

信息量的公式表示如下:
h ( x ) = log ⁡ 1 p ( x ) = − log ⁡ p ( x ) h(x) = \log \frac{1}{p(x)} = -\log p(x) h(x)=logp(x)1=logp(x)
其中, h ( x ) h(x) h(x)表示事件 x x x的信息量,而 p ( x ) p(x) p(x)表示事件 x x x发生的概率。将上述两个例子带入到上式中:

  • x 1 → x_1\to x1{“太阳从东方升起”}, p ( x 1 ) = 1 , h ( x 1 ) = log ⁡ 1 1 = 0 p(x_1)=1,h(x_1) = \log \begin{aligned}\frac{1}{1}\end{aligned} = 0 p(x1)=1,h(x1)=log11=0
  • x 2 → x_2 \to x2{“我中了5000万”}, p ( x 2 ) = 0.001 , h ( x 2 ) = log ⁡ 1 0.001 ≈ 6.907 p(x_2)=0.001,h(x_2) = \log \frac{1}{0.001} \approx 6.907 p(x2)=0.001,h(x2)=log0.00116.907

该公式完全符合上述逻辑关系。

( Entropy ) (\text{Entropy}) (Entropy)

信息量的角度,事件的信息量在事件发生概率分布下的期望。记事件 x x x的熵为 H ( x ) \mathcal H(x) H(x),其具体表示方法如下:
H ( x ) = E p ( x ) [ h ( x ) ] = E p ( x ) [ log ⁡ 1 p ( x ) ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静的喝酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值