zoukankan      html  css  js  c++  java
  • 机器学习基础:MLE和EM算法

    机器学习基础:MLE和EM算法

    假设一个情景:假设某种实验有四个可能得结果,其发生概率分别为

    [frac{1}{2}-frac{ heta}{4},frac{1}{4}-frac{ heta}{4},frac{1}{4}+frac{ heta}{4},frac{ heta}{4} ]

    且次数分别为(y_1, y_2, y_3, y_4), 求( heta)的估计值。

    1. MLE

    [egin{split}L( heta) &= (frac{1}{2}-frac{ heta}{4})^{y_1}(frac{1}{4}-frac{ heta}{4})^{y_2}(frac{1}{4}+frac{ heta}{4})^{y_3}(frac{ heta}{4})^{y_4} \ln\,L( heta) &= y_1ln\,frac{2- heta}{4} + y_2ln\,frac{1- heta}{4} + y_3ln\,frac{1+ heta}{4} +y_4ln\,frac{ heta}{4}\frac{dln\,L( heta)}{d heta} &= -frac{y_1}{2- heta} -frac{y_2}{1- heta} + frac{y_3}{1+ heta}+frac{y_4}{ heta} = 0end{split} ]


    上面假设的场景,实验结果都是可以直接观测的,此时可以使用MLE。但是如果实验结果含有隐藏变量,即不可观测部分,就需要用到EM算法。

    在上面的情景中,假设第一部分(frac{1}{2}-frac{ heta}{4})可以分为(frac{1}{4}-frac{ heta}{4}, frac{1}{4}),且出现次数分别为(z_1, y_1-z_1)。第三部分(frac{1}{4}+frac{ heta}{4})可以分为(frac{ heta}{4},frac{1}{4}), 且出现次数分别为(z_2, y_3-z_2)。则:

    [egin{split}L( heta) &= (frac{1}{4}-frac{ heta}{4})^{z_1 + y_2}(frac{1}{4})^{y_1-z_1}(frac{ heta}{4})^{y_4+z_2}(frac{1}{4})^{y_3-z_2}\ln\,L( heta) &= (z_1+y_2)ln\,frac{1- heta}{4} + (z_2 + y_4)ln\,frac{ heta}{4} +(y_1-z_1 + y_3-z_2)ln\,frac{1}{4} \frac{dln\,L( heta)}{d heta} &= -frac{z_1 + y_2}{1- heta} +frac{z_2 + y_4}{ heta} = 0 \hat{ heta} &= frac{z_2+y_4}{z_1+z_2+y_2+y_4} \&其中z_1 sim B(y_1, frac{1- heta}{2- heta}), \, \, z_2 sim B(y_3, frac{ heta}{1+ heta})end{split} ]

    2. EM算法

      1. E步,目的是消去潜在变量(z_1, z_2):

      [E(z_1) = frac{1- heta}{2- heta}y_1, E(z_2) = frac{ heta}{1+ heta}y_3 ]

      带入得到:

      [hat{ heta} = frac{frac{ heta}{1+ heta}y_3+y_4}{frac{1- heta}{2- heta}y_1+frac{ heta}{1+ heta}y_3+y_2+y_4} ]

      1. M步,取最大值

    [ heta^{(i+1)} = frac{frac{ heta^{(i)}}{1+ heta^{(i)}}y_3+y_4}{frac{1- heta^{(i)}}{2- heta^{(i)}}y_1+frac{ heta^{(i)}}{1+ heta^{(i)}}y_3+y_2+y_4} ]

    任意取初始$ heta in (0,1) $,不断迭代

  • 相关阅读:
    数据仓库建设随笔(2)
    实战剖析三层架构2:实例代码
    数据仓库建设随笔(1)
    如何正确地死磕一个问题
    finally块中的代码一定会执行吗
    eclipse中任务进度的使用
    如何在单元测试编码实现类的访问器?这里给出一个答案
    SplitContainer.SplitterDistance属性值设置应注意的与FixedPanel有关
    再谈ReportingService报表中数据源类型为存储过程的数据集如何使用多值参数
    工作流加载及本地通信服务常见的异常
  • 原文地址:https://www.cnblogs.com/54hys/p/12766768.html
Copyright © 2011-2022 走看看