返回介绍

数学基础

统计学习

深度学习

工具

Scala

一、示例

发布于 2023-07-17 23:38:25 字数 5322 浏览 0 评论 0 收藏 0

1.1 身高抽样问题

  1. 假设学校所有学生中,男生身高服从正态分布 $ MathJax-Element-48 $ , 女生身高服从正态分布 $ MathJax-Element-49 $ 。

    现在随机抽取200名学生,得到这些学生的身高 $ MathJax-Element-425 $ ,求参数 $ MathJax-Element-54 $ 的估计。

  2. 定义隐变量为 $ MathJax-Element-476 $ ,其取值为 $ MathJax-Element-478 $ ,分别表示男生、女生

    • 如果隐变量是已知的,即已知每个学生是男生还是女生 $ MathJax-Element-498 $ ,则问题很好解决:

      • 统计所有男生的身高的均值和方差,得到 $ MathJax-Element-52 $ :

        $ \mu_1 = \text{avg} \{x_i\mid z_i=0\}\quad \sigma_1^2 = \text{var} \{x_i\mid z_i=0\} $

        其中 $ MathJax-Element-612 $ 表示满足 $ MathJax-Element-613 $ 的 $ MathJax-Element-615 $ 构成的集合。 $ MathJax-Element-617 $ 分别表示平均值和方差。

      • 统计所有女生的身高的均值和方差,得到 $ MathJax-Element-53 $ :

        $ \mu_2 = \text{avg} \{x_i\mid z_i=1\}\quad \sigma_2^2 = \text{var} \{x_i\mid z_i=1\} $

        其中 $ MathJax-Element-629 $ 表示满足 $ MathJax-Element-632 $ 的 $ MathJax-Element-615 $ 构成的集合。 $ MathJax-Element-617 $ 分别表示平均值和方差。

    • 如果已知参数 $ MathJax-Element-54 $ ,则任意给出一个学生的身高 $ MathJax-Element-133 $ ,可以知道该学生分别为男生/女生的概率。

      $ p_1=\frac{1}{\sqrt{2\pi} \times \sigma_1}\exp\left(-\frac{(x-\mu_1)^2}{2\sigma^2_1}\right)\\ p_2=\frac{1}{\sqrt{2\pi} \times \sigma_2}\exp\left(-\frac{(x-\mu_2)^2}{2\sigma^2_2}\right) $

      则有: $ MathJax-Element-786 $ 。因此也就知道该学生更可能为男生,还是更可能为女生。

    因此:参数 $ MathJax-Element-56 $ 学生是男生/女生,这两个问题是相互依赖,相互纠缠的。

  3. 为解决该问题,通常采取下面步骤:

    • 先假定参数的初始值: $ MathJax-Element-57 $ 。

    • 迭代 : $ MathJax-Element-58 $

      • 根据 $ MathJax-Element-59 $ 来计算每个学生更可能是属于男生,还是属于女生。

        这一步为E 步(Expectation),用于计算隐变量的后验分布 $ MathJax-Element-762 $ 。

      • 根据上一步的划分,统计所有男生的身高的均值和方差,得到 $ MathJax-Element-60 $ ;统计所有女生的身高的均值和方差,得到 $ MathJax-Element-61 $ 。

        这一步为 M 步(Maximization ),用于通过最大似然函数求解正态分布的参数。

      • 当前后两次迭代的参数变化不大时,迭代终止。

1.2 三硬币模型

  1. 已知三枚硬币 ABC ,这些硬币正面出现的概率分别为 $ MathJax-Element-62 $ 。进行如下试验:

    • 先投掷硬币 A,若是正面则选硬币 B;若是反面则选硬币 C
    • 然后投掷被选出来的硬币,投掷的结果如果是正面则记作 1;投掷的结果如果是反面则记作0
    • 独立重复地 $ MathJax-Element-1232 $ 次试验,观测结果为: 1,1,0,1,0,...0,1

    现在只能观测到投掷硬币的结果,无法观测投掷硬币的过程,求估计三硬币正面出现的概率。

  2. 设:

    • 随机变量 $ MathJax-Element-108 $ 是观测变量,表示一次试验观察到的结果,取值为 1 或者0
    • 随机变量 $ MathJax-Element-173 $ 是隐变量,表示未观测到的投掷A硬币的结果,取值为 1 或者 0
    • $ MathJax-Element-71 $ 是模型参数

    则:

    $ P(Y;\theta)=\sum_{Z}P(Y,Z;\theta)=\sum_{Z}P(Z;\theta)P(Y\mid Z;\theta)\\ =\pi p^{Y}(1-p)^{1-Y}+(1-\pi)q^{Y}(1-q)^{1-Y} $

    注意:随机变量 $ MathJax-Element-108 $ 的数据可以观测,随机变量 $ MathJax-Element-173 $ 的数据不可观测

  3. 将观测数据表示为 $ MathJax-Element-832 $ ,未观测数据表示为 $ MathJax-Element-834 $ 。

    由于每次试验之间都是独立的,则有:

    $ P(\mathbb Y;\theta)=\prod_{j=1}^{N}P(Y=y_i;\theta)=\prod_{j=1}^{N}[\pi p^{y_j}(1-p)^{1-y_j}+(1-\pi)q^{y_j}(1-q)^{1-y_j}] $
  4. 考虑求模型参数 $ MathJax-Element-71 $ 的极大似然估计,即:

    $ \hat \theta=\arg\max_{\theta}\log P(\mathbb Y;\theta) $

    这个问题没有解析解,只有通过迭代的方法求解,EM算法就是可以用于求解该问题的一种迭代算法。

  5. EM算法求解:

    首先选取参数的初值,记作 $ MathJax-Element-72 $ ,然后通过下面的步骤迭代计算参数的估计值,直到收敛为止:

    设第 $ MathJax-Element-157 $ 次迭代参数的估计值为: $ MathJax-Element-76 $ , 则EM算法的第 $ MathJax-Element-360 $ 次迭代如下:

    • E步:计算模型在参数 $ MathJax-Element-76 $ 下,观测数据 $ MathJax-Element-259 $ 来自于投掷硬币 B 的概率:

      $ \mu^{}_j=\frac{\pi^{}(p^{})^{y_j}(1-p^{})^{1-y_j}}{\pi^{}(p^{})^{y_j}(1-p^{})^{1-y_j}+(1-\pi^{})(q^{})^{y_j}(1-q^{})^{1-y_j}} $

      它其实就是 $ MathJax-Element-78 $ ,即:已知观测变量 $ MathJax-Element-79 $ 的条件下,观测数据 $ MathJax-Element-259 $ 来自于投掷硬币 B 的概率。

    • M 步:计算模型参数的新估计值:

      $ \pi^{}=\frac 1N\sum_{j=1}^{N}\mu_j^{}\\ p^{}=\frac{\sum_{j=1}^{N}\mu_j^{}y_j}{\sum_{j=1}^{N}\mu_j^{}}\\ q^{}=\frac{\sum_{j=1}^{N}(1-\mu_j^{})y_j}{\sum_{j=1}^{N}(1-\mu_j^{})} $
      • 第一个式子:通过后验概率 $ MathJax-Element-81 $ 估计值的均值作为先验概率 $ MathJax-Element-82 $ 的估计。
      • 第二个式子:通过条件概率 $ MathJax-Element-83 $ 的估计来求解先验概率 $ MathJax-Element-84 $ 的估计。
      • 第三个式子:通过条件概率 $ MathJax-Element-85 $ 的估计来求解先验概率 $ MathJax-Element-86 $ 的估计。
  6. EM 算法的解释:

    • 初始化:随机选择三枚硬币 ABC 正面出现的概率 $ MathJax-Element-62 $ 的初始值 $ MathJax-Element-1220 $ 。

    • E 步:在已知概率 $ MathJax-Element-62 $ 的情况下,求出每个观测数据 $ MathJax-Element-259 $ 是来自于投掷硬币 B 的概率。即: $ MathJax-Element-1226 $ 。

      于是对于 $ MathJax-Element-1232 $ 次实验,就知道哪些观测数据是由硬币 B 产生,哪些是由硬币 C 产生。

    • M 步:在已知哪些观测数据是由硬币 B 产生,哪些是由硬币 C 产生的情况下:

      • $ MathJax-Element-82 $ 就等于硬币 B 产生的次数的频率。
      • $ MathJax-Element-84 $ 就等于硬币B 产生的数据中,正面向上的频率。
      • $ MathJax-Element-86 $ 就等于硬币 C 产生的数据中,正面向上的频率。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文