参数估计_点估计2(极大似然估计MLE)

前言:

       这个算法在贝叶斯以及HMM,EMM算法里面应用的比较广泛。

目的: 利用观测到的样本,估计出未知参数

 

   1:采用不同的样本采样方法 ,for this you can check REF DOC 周志华
   2:   可以增加训练的轮数,符合辛钦大数定理
   3: 参数估计 参考矩估计|极大似然估计,本质上是一阶原点矩,那就要找出参数震荡小的时候参数
      这个参考郑捷的机器学习

   4: 对参数具体进行研究

        通过热力图研究其维度之间的相关系数,如果相关性特别强的维度之间,权重系数应该是差不多的。

 

 目录:

      1: 算法的基本步骤

      2: 原理

      3: 应用

      4: Code(交叉熵)

 

一  算法原理

       1.1   写出 联合概率密度|分布律

       1.2   极大似然函数:

             L(\theta)=\prod_{i=1}^{n} p(x_i,\theta)

             似然估计  L(\theta(x_1,x_2,...x_n))=max_{\theta } L(\theta)

          

      1.3  对对数似然函数求导

             \frac{\partial lnL(\theta)}{\partial \theta_i}|_{\theta=\hat{\theta}}=0

    注意:      

          1 :  由于该函数二阶导数不一定小于0,所以

          求导出来的不一定是全局极大值点,可能是局部极值点,

           要回带到似然函数重新计算。

      2: 当L(\theta) 关于未知参数\theta_i 是单调递增或递减函数,

        \theta_i极大似然估计为\theta_i的最大或者最小值(与样本有关),

        例如均匀分布

 

       


      二  原理

                设 离散型随机变量分布律为 X \sim p(x;\theta),X_1,X_2,...,X_n 为样本,x_1,x_2,...x_n为观测值

        \begin{Bmatrix} X_1=x_1, & X_2=x_2, & ..., & X_n=x_n \end{Bmatrix}发生的概率为 

             L(\theta)=\prod_{i=1}^{n} p(x_i,\theta)  (该函数称为似然函数)

          L(\hat{\theta}(x_1,x_2,...x_n))=max_{\theta \in \hat{\theta}} L(\theta)

    

        对于连续型变量

            L(\theta)=\prod P(x_i-\Delta x_i<x_i<x_i+\Delta x_i)=\prod f(x_i,\theta)\Delta x_i=\prod f(x_i,\theta) 

            其中\Delta x_i 在参数求解过程中,对极大值没有影响,所以可以去掉

   三 例子:

        例1: 已知随机变量X \sim N(u,\sigma^2),求极大似然估计u,\sigma^2

       解: 

         1: 写出概率密度函数

                f=\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{-(x_i-u)^2}{2\sigma^2}}

        2:   写出似然函数

               L=\prod f =(2\pi)^{-n/2}a^{-n/2}e^{\sum\frac{-(x_i-u)^2}{2a}}

             其中a=\sigma^2

       3:   对对数似然函数求导

           lnL=-\frac{n}{2} ln(2\pi)-\frac{n}{2}lna -\frac{\sum(x_i-u)^2}{2a}

             3.1 对u 求导:

                 \sum (x_i-\hat{u})=0
                 n\hat{u}-\sum x_i=0

                \hat{u}=\frac{\sum x_i}{n}=\bar{x}

             3.2 对方差求导

                \frac{-n}{2a}+\frac{\sum(x_i-u)^2}{2a^2}=0
              \hat{a}=\frac{\sum(x_i-u)^2}{n}=\frac{(x_i-\bar{x})^2}{n}

               则 \hat{\sigma^2}=\hat{a},为中心矩

     例2 : 已知样本采样X_1,X_2,....X_n \sim B(1,P),求极大似然估计

 

   解: 

     2.1 写出概率密度函数

                f=p^{x_i}(1-p)^{1-x_i},x_i\in[0,1]

     2.2 写出似然公式

             L=\prod_i p^{x_i}(1-p)^{1-x_i}=p^{\sum x_i}(1-p)^{n-\sum x_i}

          求对数似然函数

              lnL =\sum x_i lnp+(n-\sum x_i)ln(1-p)

       2.3 对p求导数

                p=\frac{\sum x_i}{n}=\bar{X}

              


四  机器学习中交叉熵应用例子

    https://zhuanlan.zhihu.com/p/63731947

       

      输入:

           x_1,x_2,x_3 为某个样本对应维度的特征值

        

       输出:

               p_i=\frac{1}{1+e^{-a_i}}

      损失函数1

                loss = \sum_k y_klog\frac{1}{p_k}  其中 y_k为标签值,p_k为预测值。

 

      参数调整过程:

       

              \frac{\partial L}{\partial w11}=-y_1\frac{1}{p_1}*p_1(1-p_1)*x_1

                          =-y_1(1-p_1)*x_1

              可以看出只有标签值为1,才会调整


   
   损失函数2(二阶中心矩)

          loss = \frac{1}{2}\sum(y_i-p_i)^2

          \frac{\partial L}{\partial w11}=(y_1-p_1)*p_1*(1-p_1)*x_1

       \Delta W_{11}=\left\{\begin{matrix} A^2(1-A)x_1,y_1=1\\ -A^2(1-A)x_2,y_1=0 \end{matrix}\right. 

      其中:A=|y_1-p_1|

     这个里面看出来,

import numpy as np

'''
交叉熵,最好接近0, Log1 ==0
'''
def cross_entropy(Y,P):
    
    Y = np.float_(Y)
    P = np.float_(P)
    
    loss =  Y*np.log(P)+(1-Y)*np.log(1-P)
    
    entropy = -np.sum(loss)
    
    print("\n 交叉熵 ",entropy)
    
Y=[1,0,1,1] 
P=[0.4,0.6,0.1,0.5]
P2 =[0.9,0.1,0.88,0.99]
cross_entropy(Y,P)
cross_entropy(Y,P2)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值