精华内容
下载资源
问答
  • 极大似然法matlab实现

    2020-03-02 17:13:32
    极大似然法matlab实现.
  • 极大似然估计.pdf

    2020-05-21 14:12:08
    本文主要介绍了极大似然估计的原理以及实现过程。本文省去了不必要的证明。供查阅使用。(1)介绍了极大似然估计的相合性、同变性、渐近正态性。(2)Delta方法。
  • 极大似然估计方法估计掷硬币的概率,word版的估计过程,涉及公式,完整版的推导
  • 极大似然估计方法

    2019-01-04 18:26:05
    极大似然估计方法估计方法,极大似然估计方法估计方法
  • 包括matlab代码和地物信息xls文件,利用文件中提供的地物的五个波段信息以及预分类的信息,进行编程,实现分类并和文件中的真正分类比较,发现正确率可以达到97%
  • 用最大似然估计算法来进行DOA估计,还采用轮转循环对ML进行改进
  • 极大似然估计用蒙特卡洛仿真实现,蒙特卡洛仿真实现MATLAB例程
  • 利用递推极大似然法进行参数估计,逼近真实参数向量
  • 哈工大研究生课程讲义高斯分布参数的极大似然估计,EM算法
  • 极大似然递推辩识.m

    2020-05-04 20:43:27
    基于MATLAB极大似然递推辩识算法的程序,辩识对象为二阶系统。%信号u(k)为M序列 clc L=1000 y1=1;y2=1;y3=1;y4=0; for k=1:L; x1=xor(y3,y4); %同为0或同为1,取0;否则取1 x2=y1 x3=y2 x4=y3 y(k)=y4 if y(k)...
  • 样本数据的类条件概率密度符合正态分布,对训练样本进行极大似然估计得到参数,再对测试样本进行分类。
  • stata中极大似然估计方法,很不错的资源,可以下载下来学习下。
  • - PAGE PAGE 2 欢迎下载 function [para,standard_deviation,fv]=my_mle(fun,para0,varargin) %estimate parameters and standard errors when using maximium likelihood estimation(MLE) %input %fun: a function ...
  • 图解极大似然估计

    2019-11-27 22:42:50
    极大似然估计**是神经网络和很多复杂模型得以优化求解的理论基础, 我们今天来学习并试着深入理解极大似然估计的原理和推导, 最后我们对极大似然估计进行3D可视化, 建立一种直观的认识. 要理解极大似然估计是什么, ...
    机器学习之数学之旅
    图解极大似然估计$(maximum likelihood estimation with 3D visualization)$

    极大似然估计**是神经网络和很多复杂模型得以优化求解的理论基础, 我们今天来学习并试着深入理解极大似然估计的原理和推导, 最后我们对极大似然估计进行3D可视化, 建立一种直观的认识.

    要理解极大似然估计是什么, 首先要明白概率密度(质量)函数是什么, 如果你不知道的话, 那就简短解释一下:
    概率密度函数用来描述某个随机变量取某个值的时候,取值点所对应的的概率 ( p r o b a b i l i t y ) (probability) (probability)的函数.
    如下图, 我们现在有一个概率分布, 属于正态分布: X ∼ N ( μ , σ 2 ) , f ( x ; μ , σ ) = 1 σ 2 π   exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) X \sim N(\mu,\sigma^2), \quad f(x;\mu,\sigma)=\frac{1}{\sigma\sqrt{2\pi}} \, \exp \left( -\frac{(x- \mu)^2}{2\sigma^2} \right) XN(μ,σ2),f(x;μ,σ)=σ2π 1exp(2σ2(xμ)2)

    其中 μ \mu μ是均值, σ \sigma σ是标准差. 如果你不熟悉正态分布, 我们简单回顾一下 μ \mu μ指的是均值, 在下图中, 均值是 0 0 0则正态分布的概率在均值处概率最高, 以均值为中心两边是对称的, σ \sigma σ是标准差, 标准差控制着概率分布偏离均值的程度, 标准差越大概率分布越扁平, 越小的话, 概率分布越集中于均值.

    我们另有一个数据点, 是一个随机变量, 取值 2.5 2.5 2.5, 我们将 x = 2.5 x=2.5 x=2.5代入 f ( x ; μ = 5 , σ = 2 ) f(x;\mu=5,\sigma=2) f(x;μ=5,σ=2)得出下图出中绿色直线的长度, 也就是得到了 P ( x = 2.5 ∣ μ = 5 , σ = 2 ) P(x=2.5 \mid \mu=5, \sigma=2) P(x=2.5μ=5,σ=2)
    意义为 x = 2.5 x=2.5 x=2.5在上面定义的正态分布中的概率, 也就是给定一个概率分布, 随机变量在这个概率分布中出现的可能性, 而 f ( x ; μ , σ ) = 1 σ 2 π   exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) f(x;\mu,\sigma)=\frac{1}{\sigma\sqrt{2\pi}} \, \exp \left( -\frac{(x- \mu)^2}{2\sigma^2} \right) f(x;μ,σ)=σ2π 1exp(2σ2(xμ)2)就是概率密度函数.
    概率质量函数是离散的, 概率密度函数是连续的, 意义相同, 为了可视化的方便, 今天用概率密度函数来讲解极大似然估计.

    import matplotlib.pyplot as plt
    import numpy as np
    from scipy import stats
    import plotly.graph_objs as go
    from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
    from IPython.display import Image 
    init_notebook_mode(connected=True
    
    def draw_likelihood(observations, mu, sigma):
        # 定义y轴取值
        plt.ylim(-0.02,1)
        # 定义一个画图范围
        x_locs =  np.linspace(-10, 10, 500)
        # 画出推断的概率分布的概率密度函数
        plt.plot(x_locs, stats.norm.pdf(x_locs, loc=mu, scale=sigma), label="inference")
        for obs in observations:
            plt.axvline(x=obs, ymin=0, ymax=stats.norm.pdf(obs, loc=mu, scale=sigma)+0.01, c="g")
        plt.axvline(x=obs, ymin=0, ymax=stats.norm.pdf(obs, loc=mu, scale=sigma)+0.01, c="g", label="probabilities")
        # 画出观测数据的概率
        plt.scatter(x=observations, y=[0 for _ in range(len(observations))], c="r", marker="o", label="obsevations")
        plt.legend()
        plt.grid()
        plt.title("mean={} sigma={}".format(str(mu), str(sigma)))
        plt.show()
    
    draw_likelihood([2.5], mu=0, sigma=2)
    

    在这里插入图片描述
    概率似然的区别:
    概率,是在已知一些概率分布参数的情况下,预测观测的结果;
    似然,则是用于在已知某些观测所得到的结果时,对观测结果所属于的的概率分布的参数进行估值。

    极大似然估计的目的在于找到一个最符合当前观测数据的概率分布.

    1. 我们先理解似然函数是什么
      例如下面两图中: 红色圆点指的是观测到的随机变量, 蓝色的线是概率密度函数的图像, 绿色的直线长度所对应的 y y y轴的值指的是是观测的数据出现在当前概率分布中的可能性, 也就是概率, 概率是介于 [ 0 , 1 ] [0,1] [01]之间的实数, 我们用 P ( x ∣ μ , σ ) P(x \mid \mu,\sigma) P(xμ,σ)来表示绿色线的长度, 也就是概率.
    obs_mu, obs_sigma = 0, 4
    observations = np.random.normal(obs_mu, obs_sigma, 20)
    draw_likelihood(observations, mu=5, sigma=2)
    draw_likelihood(observations, mu=0, sigma=4)
    

    在这里插入图片描述
    在这里插入图片描述
    2. 我们假设有一组观测到的数据, 一共有 N N N个, X o b s e r v a t i o n = { x 1 , x 2 , . . . , x N } X_{observation} = \{ x_1, x_2, ... , x_N\} Xobservation={x1,x2,...,xN}
    我们推断这一组数据属于一个概率分布, 是一个正态分布, 它的概率密度函数为 f ( x ; μ , σ ) f(x;\mu,\sigma) f(x;μ,σ), 我们将 X o b s e r v a t i o n X_{observation} Xobservation里的数据点带入到 f ( x ; μ , σ ) f(x;\mu,\sigma) f(x;μ,σ)里, 得到每个数据点在我们假设的概率分布中的出现的可能性, 注意我们接下来简写 X o b s e r v a t i o n X_{observation} Xobservation X X X:
    P ( x 1 ∣ μ , σ ) ,   P ( x 2 ∣ μ , σ )   , . . .   ,   P ( x N ∣ μ , σ ) P(x_1 \mid \mu,\sigma), \,P(x_2 \mid \mu,\sigma)\, , ... \, ,\,P(x_N \mid \mu,\sigma) P(x1μ,σ),P(x2μ,σ),...,P(xNμ,σ)
    3. 那么这一组数据 X o b s e r v a t i o n = { x 1 , x 2 , . . . , x N } X_{observation} = \{ x_1, x_2, ... , x_N\} Xobservation={x1,x2,...,xN}在假设的概率分布中的出现的可能性就是他们概率的乘积:
    L ( μ , σ ∣ X ) = P ( X ∣ μ , σ ) = ∏ i = 1 N P ( x i ∣ μ , σ ) L(\mu ,\sigma \mid X)=P(X \mid \mu ,\sigma)=\prod _{i=1}^{N}P(x_{i}\mid \mu,\sigma) L(μ,σX)=P(Xμ,σ)=i=1NP(xiμ,σ)
    上式中, 我们用 L ( μ , σ ∣ X ) L(\mu ,\sigma \mid X) L(μ,σX)来表示似然函数, 已知的观测到的数据点 X X X, 用似然函数 L ( μ , σ ∣ X ) L(\mu ,\sigma \mid X) L(μ,σX)来估计参数 μ , σ \mu ,\sigma μ,σ的可能性, 由此可见,似然函数也是一种条件概率函数,但我们关注的变量改变了.
    4. 从下面两图可得, 上图图中所假设的概率分布求出的似然函数取值显然比下面的小, 因为有很接近于 0 0 0的数值, 这让似然函数乘积的结果变得非常小. 我们可以得出结论, 下图的概率分布参数更符合观测到的数据点的概率分布,而最大似然估计的目的就是找到一个最符合当前数据的分布的参数.

    我们做个试验:

    1. 先从均值为 0 0 0, 标准差为 4 4 4正态分布中随机抽取 200 200 200个数据点, 作为我们观测到的数据;
      之后我们定义一个估计参数的取值范围, 均值在 ( − 0.5 , 0.5 ) (-0.5, 0.5) (0.5,0.5)之间, 标准差在 ( 3.5 , 4.5 ) (3.5, 4.5) (3.5,4.5)之间;
    2. 然后我们将所有的数据点和我们估计的每一组参数代入似然函数, 也就是 L ( μ , σ ∣ X ) = ∏ i = 1 N P ( x i ∣ μ , σ ) L(\mu ,\sigma \mid X)=\prod _{i=1}^{N}P(x_{i}\mid \mu,\sigma) L(μ,σX)=i=1NP(xiμ,σ)中, 求得每一组参数的似然值, 3.下图可见, 似然函数的值约在 μ = 0 ,   σ = 4 \mu=0, \ \sigma=4 μ=0, σ=4时取得极大值(因为数据点太少有些误差);
    3. 我们发现似然函数的图像是凸函数, 我们就可以用很多优化的方法求它的极大值了.
    4. 找到似然函数极大值的过程就是极大似然估计的过程.
    # 首先定义观测的数据分布, 我们定一个一个均值为0, 标准差为4的正态分布, 
    # 并从中随机抽200个数据点作为观测到的数值
    obs_mu, obs_sigma = 0, 4
    observations = np.random.normal(obs_mu, obs_sigma, 200)
    
    def likelihood(observations, infer_mu, infer_sigma):
        # 定义似然函数, observations为观测到的数据点
        # infer_mu, infer_sigma为推断的均值和标准差
        product_ = 1
        for obs in observations:
            # 代入每一个数据点到我们假设的概率密度函数内, 并求它们的积
            product_ *= stats.norm.pdf(obs, loc=infer_mu, scale=infer_sigma)
        return product_
    
    # 我们定义一个参数的取值范围, 均值在(-0.5, 0.5)之间
    # 标准差在(3.5, 4.5)之间
    all_infer_mu = [i/10 for i in range(-5, 5)]
    all_infer_sigma = [i/10 for i in range(35, 45)]
    
    # 求得每一个参数组合的似然值
    mle = []
    for infer_mu in all_infer_mu:
        temp_lis = []
        for infer_sigma in all_infer_sigma:
            temp_lis.append(likelihood(observations, infer_mu, infer_sigma))
        mle.append(temp_lis)
    
    # 进行似然函数的3D可视化
    data = [go.Surface(x=all_infer_mu, y=all_infer_sigma, z=mle)]
    layout = go.Layout(title="Likelihood", scene={"xaxis": {'title': "mean"}, "yaxis": {"title": "sigma"},"zaxis": {"title": "likelihood"}})
    fig = go.Figure(data=data, layout=layout)
    iplot(fig)
    

    似然函数
    我们看到上图中的最高点 μ ≈ 0 ,   σ ≈ 4 \mu \approx 0, \ \sigma \approx 4 μ0, σ4, 是产生观测数据的真实概率分布的参数, 但是似然函数输出的值极小, 最高的值仅有 1 ∗ 1 0 − 245 1*10^{-245} 110245

    对数似然值 ( l o g   l i k e l i h o o d ) (log \ likelihood) (log likelihood):
    我们对似然函数取 log ⁡ \log log, 就得到了对数似然函数:
    L ( μ , σ ∣ X ) = ∑ i = 1 N log ⁡ P ( x i ∣ μ , σ ) \mathcal {L}(\mu ,\sigma \mid X)=\sum _{i=1}^{N}\log P(x_{i}\mid \mu,\sigma) L(μ,σX)=i=1NlogP(xiμ,σ)
    为什么要对似然函数取对数?

    1. 首先原本的似然函数是很多条件概率的乘积, 我们在找极大值的时候需要求似然函数的导数, 而乘积的导数不方便计算, 取对数可以吧乘除变成加减;
    2. 对似然函数取对数, 原本函数的极大值的位置没有改变;
    3. 如果观测到的数据点比较多, 原始似然函数的乘积可能非常接近于0, 甚至超出计算机的储存位数限制, 这样就全变成0了, 取对数可以把接近于 0 0 0的数变成很大的负数, 也就是把原本似然函数的取值范围从 0 0 0 1 1 1扩展到了 − ∞ -\infty 0 0 0, 方便了计算.

    我们下面对 l o g   l i k e l i h o o d log \ likelihood log likelihood进行3D可视化, 可看到原始的似然函数和对数似然函数的最高点是一样的位置:

    def log_likelihood(observations, infer_mu, infer_sigma):
        sum_ = 0
        for obs in observations:
            sum_ += stats.norm.logpdf(obs, loc=infer_mu, scale=infer_sigma)
        return sum_
    
    mle = []
    for infer_mu in all_infer_mu:
        temp_lis = []
        for infer_sigma in all_infer_sigma:
            temp_lis.append(log_likelihood(observations, infer_mu, infer_sigma))
        mle.append(temp_lis)
    
    data = [go.Surface(x=all_infer_mu, y=all_infer_sigma, z=mle)]
    layout = go.Layout(title="Log Likelihood", scene={"xaxis": {'title': "mean"}, "yaxis": {"title": "sigma"},"zaxis": {"title": "likelihood"}})
    fig = go.Figure(data=data, layout=layout)
    iplot(fig)
    

    对数似然函数
    参考链接:https://github.com/aespresso/a_journey_into_math_of_ml

    展开全文
  • 采用广义极大似然估计(M 估计)建立的预测模型能够有效地通过权函数降低异常点在模型中的权重。通过人体血糖钳夹临床实验和口服葡萄糖耐量测试实验,利用M 估计和最小二乘估计法(OLS 估计)两种方法建立了血糖预测模型...
  • R语言-极大似然估计

    2015-05-14 15:39:22
    极大似然估计方法(Maximum Likelihood Estimate,MLE)也称为最大概似估计或最大似然估计,是求估计的另一种方法,最大概似1821年首先由德国数学家C. F. Gauss提出,但是这个方法通常被归功于英国的统计学家R. A. ...
  • 利用matlab计算copula极大似然估计,包括运行程序,适用于金融行业、经济领域等进行计算和使用。
  • 结合极大似然距离估计的MDS-MAP节点定位算法
  • 在生长曲线模型中,参数矩阵的最小二乘估计为响应变量的线性函数,而极大似然估计为响应变量的非线性函数,所以极大似然估计的统计推断比较复杂.为了使它的统计推断简单点,一些学者考虑了极大似然估计与最小二乘...
  • 基于标准卡尔曼滤波假设,利用极大似然估计准则推导了一种新的自适应卡尔曼滤波算法,这种滤波算法的主要思路是利用新息序列对系统和量测噪声方差阵Q和R实时估计和调整,以实时反映系统模型的变化。在相关理论分析的...
  • 这三者的理解 结合具体案例
  • 将观测样本看成随机变量总体的一个子集,使这个子集发生的概率最大,从而导出了和极大似然估计原理,根据这一原理得到的估值具有最小估值偏差,比最小二乘估值的准确度高;当样本容量趋于无穷大时,估值必然地收敛于...
  • 基于极大似然估计的三维定位算法

    热门讨论 2012-11-02 14:36:29
    绝对是好东西啊!基于极大似然估计的三维定位算法,输入参考点的坐标以及观察点的距离,通过极大似然估计算法计算出观察点的坐标,附送支持矩阵运算的C++类库!
  • 本人系统辨识课程的全部代码 以及报告 报告里有所有算法原理。内容如下: 第一章 最小二乘法 1 1.1 问题重述 1 1.2 最小二乘法 1 1.2.1 基本最小二乘法 1 1.2.2 不需矩阵求逆的最小二乘法 2 1.2.3 递推最小二乘法 4 ...
  • 提出了一种利用改进的极大似然估计法对基于威布尔分布的环保型电子节能灯寿命数据进行分析的方法。该方法利用加速寿命实验获取环保型电子节能灯使用寿命的数据,利用统计学的方法和威布尔分布模型,实现高应力下的...
  • 1 基本概念回顾 边缘概率、联合概率和条件概率的基本概念。 1.1 定义 边缘概率(Marginal Probability):可以简单理解为单一事件发生的概率。如果A是一个事件,且事件A发生的概率为P(A)P(A)P(A),则P(A)P(A)P(A)就...
  • 该文讨论了U[-θ,0]上参数θ的极大似然估计及修正后的极大似然估计的均方误差和相合性,并进一步证明了修正后的极大似然估计还是参数θ的UMVUE.
  • 极大似然估计及其应用

    千次阅读 2020-10-23 09:57:23
    极大似然估计及其应用欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...


    引言:最近在温习机器学习相关算法以及课堂上老师最近也都提到了极大似然估计,然而博主早已忘得差不多了,所以重新学习顺便记录下。
    极大似然估计的主要作用是:当我们不知道样本的分布时我们可以通过假设样本服从某种概率分布,然后结合训练样本对其概率分布中的未知参数进行估计。似然在西瓜书中是likehood,翻译过来就是可能性、概率的意思。
    本文主要参考了西瓜书和《概率论与统计学习(第二版)》。

    1.似然函数

    (1)离散型变量的似然函数
    定义:设总体X是离散型随机变量,分布律为 P ( X = x ) = p ( x , θ ) P(X=x)=p(x,\theta) P(X=x)=p(x,θ),其中 θ \theta θ是未知参数,当样本 X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn得到一组观测值 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,有样本的独立同分布性,记样本取得这组观测值的概率为:
    P ( X 1 = x 1 , X 2 = x 2 , . . . , X n = x n ) = P ( X 1 = x 1 ) P ( X 2 = x 2 ) . . . P ( X n = x n ) = ∏ i = 1 n p ( x i , θ ) = L ( θ ) P(X_1=x_1,X_2=x_2,...,X_n=x_n)\\=P(X_1=x_1)P(X_2=x_2)...P(X_n=x_n)\\=\prod_{i=1}^{n}p(x_i,\theta)=L(\theta) P(X1=x1,X2=x2,...,Xn=xn)=P(X1=x1)P(X2=x2)...P(Xn=xn)=i=1np(xi,θ)=L(θ)
    L ( θ ) L(\theta) L(θ)为似然函数(对于给定的观测值 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn它是未知参数 θ \theta θ的函数)

    (2)连续变量的似然函数
    X X X是连续变量时,其概率密度函数为 f ( x , θ ) f(x,\theta) f(x,θ),其中 θ \theta θ是未知参数。因为随机变量 X i X_i Xi落在 x i x_i xi的邻域(设长度为 Δ x i \Delta x_i Δxi)内的概率近似为 f ( x i , θ ) Δ x i , i = 1 , 2 , . . . , n f(x_i,\theta)\Delta x_i, i=1,2,...,n f(xi,θ)Δxi,i=1,2,...,n,则样本 X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn落在观测值 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn邻域的概率近似为 ∏ i = 1 n f ( x i , θ ) Δ x i \prod_{i=1}^{n}f(x_i,\theta)\Delta x_i i=1nf(xi,θ)Δxi, 因此似然函数 L ( θ ) = ∏ i = 1 n f ( x i , θ ) Δ x i L(\theta)=\prod_{i=1}^{n}f(x_i,\theta)\Delta x_i L(θ)=i=1nf(xi,θ)Δxi

    (3)例子
    设一袋中装有黑白两种球,设p为从袋中随机摸得一个白球的概率,写出p的似然函数并对参数p进行估计。

    首先这里是离散型变量,所以可以令
    X = { 1 , 取得白球 0 , 取得黑球 X=\begin{cases} 1,&\text{取得白球} \\0,&\text{取得黑球}\end{cases} X={1,0,取得白球取得黑球
    可以发现X服从0-1二项分布,即X~B(1,p),这里就相当于一个先验知识,我们知道了随机变量的概率分布形式。

    为了估计参数p,做有放回的摸球10次,其结果可用随机变量 X i X_i Xi表示:
    X i = { 1 , 第i次取得白球 0 , 第i次取得黑球 X_i=\begin{cases} 1,&\text{第i次取得白球} \\0,&\text{第i次取得黑球}\end{cases} Xi={1,0,i次取得白球i次取得黑球
    假设样本 X 1 , X 2 , . . . , X 10 X_1,X_2,...,X_{10} X1,X2,...,X10的观测值为 ( x 1 , x 2 , . . . x n ) = ( 1 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ) (x_1,x_2,...x_n)=(1,0,1,0,0,0,1,0,0,0) (x1,x2,...xn)=(1,0,1,0,0,0,1,0,0,0),则其似然函数为:
    L ( p ) = P ( X 1 = 1 , X 2 = 0 , X 3 = 1 , X 4 = 0 , . . . , X 10 = 0 ) = p 3 ( 1 − p ) 7 L(p)=P(X_1=1,X_2=0,X_3=1,X_4=0,...,X_{10}=0)\\=p^3(1-p)^7 L(p)=P(X1=1,X2=0,X3=1,X4=0,...,X10=0)=p3(1p)7

    至于如何估计参数p,则需要引出极大似然估计。

    2.极大似然估计

    极大似然估计的思想是:在随机试验中有所干个可能结果,如果一次实验中某一结果出现了,根据小概率事件原理,我们认为这一结果出现的概率较大,从而可以认为这一结果是所有可能结果中出现概率最大的一个。因此对于我们的似然函数 L ( θ ) L(\theta) L(θ)就是要找到一个 θ ^ \hat{\theta} θ^使得观测值的概率最大,也就是 a r g m a x θ L ( θ ) {argmax}_{\theta}L(\theta) argmaxθL(θ)

    因此对于上面摸球的例子我们估计参数p的做法就是求 d L ( p ) d p = 0 \frac{dL(p)}{dp}=0 dpdL(p)=0,最后求得p=0.3。

    然而由于似然函数中的连乘易造成下溢,因此通常使用对数似然,即
    L L ( θ ) = l o g ∏ i = 1 n p ( x i , θ ) = ∑ i = 1 n l o g ( p ( x i , θ ) ) LL(\theta)=log \prod_{i=1}^{n}p(x_i,\theta)\\=\sum_{i=1}^{n}log (p(x_i,\theta)) LL(θ)=logi=1np(xi,θ)=i=1nlog(p(xi,θ))
    然后求解
    θ ^ = a r g m a x θ L L ( θ ) \hat{\theta}={argmax}_{\theta}LL(\theta) θ^=argmaxθLL(θ)

    3.极大似然估计在机器学习中的应用

    (1)逻辑回归
    逻辑回归的模型为: y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(w^Tx+b)}} y=1+e(wTx+b)1,设 p 1 : p ( y = 1 ) = e w T x + b 1 + e w T x + b , p 0 : p ( y = 0 ) = 1 1 + e w T x + b p_1:p(y=1)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}, p_0:p(y=0)=\frac{1}{1+e^{w^Tx+b}} p1:p(y=1)=1+ewTx+bewTx+b,p0:p(y=0)=1+ewTx+b1,其中 p 1 和 p 0 p_1和p_0 p1p0是关于未知参数 w , b w,b w,b的概率分布,其具体形式可以通过对逻辑回归模型两边同取对数求得。然后通过对数极大似然估计法对未知参数进行估计得:
    L L ( w , b ) = l o g ( ∏ i = 1 m p ( y i ) ) = ∑ i = 1 m l o g ( y i p 1 + ( 1 − y i ) p 0 ) LL(w,b)=log(\prod_{i=1}^mp(y_i))\\=\sum_{i=1}^mlog(y_ip_1+(1-y_i)p_0) LL(w,b)=log(i=1mp(yi))=i=1mlog(yip1+(1yi)p0)

    然后利用梯度法求解极值即可。

    (2)朴素贝叶斯分类器
    朴素贝叶斯分类器的基本原理: p ( c ∣ x ) = p ( c ) p ( x ) ∏ i = 1 n p ( x ( i ) ∣ c ) p(c|x)=\frac{p(c)}{p(x)}\prod_{i=1}^np(x^{(i)}|c) p(cx)=p(x)p(c)i=1np(x(i)c),其中c是类别,x是训练样本, x ( i ) x^{(i)} x(i)是样本在第i个属性上的取值,通过训练样本x预测类别c其中 p ( c ) 和 p ( x ) p(c)和p(x) p(c)p(x)比较好求,而 p ( x ( i ) ∣ c ) p(x^{(i)}|c) p(x(i)c)可以通过极大似然估计的方法对其概率分布进行估计,首先假设p(x|c)是服从关于参数 θ \theta θ的概率分布,即 p ( x , θ ) p(x,\theta) p(x,θ),则其对数似然函数为:
    L L ( θ ) = ∑ i = 1 m p ( x i , θ ) LL(\theta)=\sum_{i=1}^mp(x_i,\theta) LL(θ)=i=1mp(xi,θ)
    然后求解 θ ^ = a r g m a x θ L L ( θ ) \hat{\theta}={argmax}_{\theta}LL(\theta) θ^=argmaxθLL(θ)得到参数。但是使用极大似然估计来估计类条件概率有以下困难:

    使用极大似然估计法对参数进行估计时,结果的准确性严重依赖于所假设的概率分布是否符合真实数据分布。在逻辑回归中因为我们已经有了每个似然项的概率分布,相当于有了这个先验知识,所以结果是可靠的。

    展开全文
  • 极大似然法辨识

    2017-12-31 21:29:49
    极大似然法辨识,内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解极大似然法辨识的用法,总结优化极大似然法辨识的原理
  • 机器学习之极大似然估计详解

    千次阅读 多人点赞 2018-12-27 17:38:56
    极大似然估计在机器学习中很多模型都会用到,理解了极大似然估计对后面学习机器学习有很大帮助。 极大似然估计听着很高冷,光看名字就让需要数学不好的同学望而却步。其实说了就是根据统计结果,反推什么情况下最...

    前言

    极大似然估计在机器学习中很多模型都会用到,理解了极大似然估计对后面学习机器学习有很大帮助。

    极大似然估计听着很高冷,光看名字就让需要数学不好的同学望而却步。其实说了就是根据统计结果,反推什么情况下最可能发生这个结果。

    再简单的说就是:根据统计结果反推事件发生的概率。

    再简单了说就是现有方程:
    f = a x + b y f = ax + by f=ax+by 已知f, x, y 的值已知,反推参数a,b的值。

    没有办法再简单了。

    举个例子吧,我们看到一对父子长得很像,我们可以说他们一定是亲生父子,有依据但是不科学。如果要从科学的 角度去判断他们是不是亲生父子,我们需要对他们进行多方面的考查,比如说肤色,眼睛,鼻子,酒窝,气质等等,然后考查得差不多了,就可以说他们有90%的概率存在父子关系(当然你也可以觍(tian)着脸挣钱拉着这两个陌生人去医院做亲子鉴定)

    前面是我们盲目地去猜,后面就是有科学依据的,那这科学依据是什么呢?
    就是这里我们所要说的极大似然估计

    极大似然估计是求估计的一种方法,它最早由高斯提出,接下来费歇在1912年报文章中重新提出,并且证明了这个方法的一些性质。
    由于极大似然估计的最优性,作为参数估计的一种常用方法,已经在众多的领域中广泛得到应用。例如系统辨识,语音处理,图像处理及模型识别等等等等。

    它是建立在极大似然估计原理的基础上的一个统计方法,并且所得到的极大似然估计具有良好的性质。如相合性,有效性,不变性等。

    从某种意义上来说没有比极大似然估计更好的参数估计了。

    极大似然原理

    极大似然原理的直观想法是:一个随机试验如有若干个可能的结果A,B,C,。。。。,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现的概率 P ( A ) P(A) P(A)较大。极大似然原理的直观想法我们用下面例子说明:设甲箱中有99个白球,1个黑球;乙箱中有1个白球,99个黑球
    现随机取出一箱,再从抽取的一箱中随机取出一球,结果是黑球,这一黑球从乙箱抽取的概率比从甲箱抽取的概率大得多,这里我们自然更多地相信这个黑球是取自自乙箱的。一般来说,事件A发生的概率与某一未知参数 θ \theta θ有关, θ \theta θ取值不同,则事件A发生的概率 P ( A ∣ θ ) P(A|\theta) P(Aθ)也不同,当我们在一次试验中事件A发生了,则认为此时的 θ \theta θ值应是t的一切可能取值中使 P ( A ∣ θ ) P(A|\theta) P(Aθ)达到最大的那一个,极大似然估计就是要选取这样的t值作为参数t的估计值,使所选取的样本在被选的总体中出现的可能性为最大。

    极大似然估计

    极大似然估计只是一种概率论在统计学的应用,它是参数估计的方法之一,说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

    当然极大似然估计只是一种粗略的数学期望,要知道它的误差大小还要做区间估计。

    极大似然估计的应用及推导

    ok,说完了原理,来说下它在机器学习中的应用及推导。
    例子还是举上面黑箱中白球和黑球的问题。现在有一黑箱,只知道里面有白球,黑球,红球,多少未知但是足够大,比例也未知。我们想知道黑箱里各种球的分类情况。我们一次从黑箱中取出10个球,记下三种球的个数,之后放回,重复100次。

    OK,现在分析一下这个问题。
    网上好多博客都是取黑箱统计球的问题来分析极大似然估计,之所以用这个例子因为很经典啊,它是现实中各种问题的抽象。

    那么抽象的是什么呢?
    抽象的是黑箱事件。黑箱,即我们只能从外面看这个箱子,箱子里面是有什么我们知道(白球,红球,黑球),但是有多少不知道。
    现实中有很多这样的例子,比如说估计流水线上次品率的问题,估计池塘里鱼的分类的问题等等

    独立同分布
    通过抽取和放回确定这是独立同公布事件(每次抽取互不影响),并且是应用了统计学的方法

    样本集
    于是我们知道抽取的结果就是样本集,记为D,其中:
    D = x 1 , x 2 , x 3 , ⋯   , x 100 ⎵ 100 D = {\begin{matrix} \underbrace{x_1, x_2, x_3, \cdots , x_{100} } \\100\end{matrix}} D= x1,x2,x3,,x100100
    x 1 x_1 x1~ x 100 x_{100} x100为100次抽样的结果

    联合概率
    因为我们是根据统计结果来估计概率的,参数 θ \theta θ和样本D互相影响,我们可以可以把它们看成两个互相影响的事件,于是似然函数可以看成联合概率。
    于是联合概率 P ( D ∣ θ ) P(D|\theta) P(Dθ)称为相对于样本空间 D = { x 1 , x 2 , x 3 , ⋯   , x n } D = \{x_1, x_2, x_3, \cdots, x_n\} D={x1,x2,x3,,xn}关于的 θ \theta θ的似然函数:
    l ( θ ) = P ( D ∣ θ ) = P ( x 1 , x 2 , x 3 , ⋯   , x 100 ∣ θ ) = ∏ i = 1 100 P ( x i ∣ θ ) \begin{aligned} l(\theta) &= P(D|\theta) \\ &= P(x_1, x_2, x_3, \cdots, x_{100}|\theta) \\ &= \prod_{i=1}^{100} P(x_i | \theta) \end{aligned} l(θ)=P(Dθ)=P(x1,x2,x3,,x100θ)=i=1100P(xiθ)

    统计的次数越多,越接近真实情况。我们就用这个非常接近的统计结果,作为真实的情况。

    所以如果 θ ^ \hat\theta θ^是参数空间中能使似然函数 l ( θ ) l(\theta) l(θ)最大的 θ \theta θ值,则 θ ^ \hat\theta θ^是最可能的参数值,那么 θ ^ \hat\theta θ^就是 θ \theta θ的极大似然估计值。它是样本集的函数,于是我们所要估计的参数向量 θ ^ \hat\theta θ^为:
    θ ^ = d ( x 1 , x 2 , x 3 , ⋯   , x 100 ) = d ( D ) \begin{aligned} \hat\theta &= d(x_1, x_2, x_3, \cdots, x_{100}) \\ &= d(D) \end{aligned} θ^=d(x1,x2,x3,,x100)=d(D)

    θ ^ ( x 1 , x 2 , x 3 , ⋯   , x n ) \hat\theta(x_1, x_2, x_3, \cdots, x_n) θ^(x1,x2,x3,,xn)就称为极大似然函数的估计值,即极大似然估计,记作:

    θ ^ = a r g m a x θ l ( θ ) = a r g m a x θ ∏ i = 1 n P ( x i ∣ θ ) \begin{aligned} \hat\theta &= \mathop {argmax} \limits_{\theta} l(\theta) \\ &= \mathop {argmax} \limits_{\theta} \prod_{i=1}^{n} P(x_{i} | \theta) \end{aligned} θ^=θargmaxl(θ)=θargmaxi=1nP(xiθ)
    注意
    θ \theta θ是一个向量, θ ⃗ = [ θ 1 , θ 2 , θ 3 , … , θ n ] \vec{\theta} = [\theta_1, \theta_2, \theta3, \ldots, \theta_n] θ =[θ1,θ2,θ3,,θn]

    推导

    求极大似然估计值,就需要求下似然函数的导数,导数的极值点就是似然函数的最大值。
    由于求导数极值点的时候我们只关心x的取值,帮可以对似然函数取对数后再求导。

    问:为什么极值点就是最大值点呢?
    在概率统计的导数没有其他数学方程式那么复杂的曲线走位,一般是只有一个极值点的。就像中国人的身高都集中在170,牛的体重都集中在900公斤。。。。。啊?一般?怎么不是全部?不敢说那么绝对,敢情你举出一个例外的。

    问:为什么要求导的时候要取对数?
    似然函数是连乘的形式,求导的时候不好求。取对数后就变成了加了,而且还不改变它的单调性。

    问:对一个函数取对数后它的单调性与原函数为什么是一样的?
    对数函数是单调递增的。这就好像是"+1"(正1)前面加一个加号还是正1,"-1"前面加上一个正号还是负1

    对似然函数取对数:
    ln ⁡ ∂ L ( θ ) ∂ θ = ∑ i = 1 n ln ⁡ P ( x i ∣ θ ) \ln \frac{\partial L(\theta)}{\partial \theta} = \sum_{i=1}^{n} \ln P(x_{i} | \theta) lnθL(θ)=i=1nlnP(xiθ)
    h ( θ ) = ln ⁡ ∂ L ( θ ) ∂ θ h(\theta) = \ln \frac{\partial L(\theta)}{\partial \theta} h(θ)=lnθL(θ),于是有:
    h ( θ ) = ∑ i = 1 n ln ⁡ P ( x i ∣ θ ) h(\theta)= \sum_{i=1}^{n} \ln P(x_{i} | \theta) h(θ)=i=1nlnP(xiθ)
    变成连加以后是不是好算多了?
    好了现在我们只需要知道联合概率函数 P ( x i ∣ θ ) P(x_i | \theta) P(xiθ)是什么就可以了。

    联合概率是什么

    这个要看事件服从什么分布了,像上面的黑箱取球的问题肯定是服从线性分布啊,于是就有:
    P ( x i ∣ θ ⃗ ) = θ 1 × x 1 + θ 2 × x 2 + θ 3 × x 3 P(x_i | \vec\theta) = \theta_1 \times x_1 + \theta_2 \times x_2 + \theta_3 \times x_3 P(xiθ )=θ1×x1+θ2×x2+θ3×x3
    θ ⃗ = [ θ 1 , θ 2 , θ 3 , ⋯   , θ n ] \vec\theta = [\theta_1, \theta_2, \theta_3, \cdots, \theta_n] θ =[θ1,θ2,θ3,,θn] 这里默认 θ \theta θ就是向量 θ ⃗ \vec\theta θ 好多地方懒省事儿都把 θ ⃗ \vec\theta θ 写成 θ \theta θ了,不过如果是标量 θ \theta θ的话肯定会写成 θ i \theta_i θi的。

    不过一般我们不研究呈线性分布的,自然界中,机器学习中绝大部分情况 P ( x i ∣ θ ) P(x_i | \theta) P(xiθ)都是呈正态分布的(也叫高斯分布),这里我们只讨论下正态分布的情况,当然 P ( x i ∣ θ ) P(x_i | \theta) P(xiθ)也有呈0-1分布,二项分布,几何分布,指数分布,泊松分布等,这里不做研究。

    我们都知道样本服从正态分布时P的概率:

    f ( x ) = 1 2 π σ ⋅ e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sqrt{2\pi}\sigma} \cdot e^{-\frac{(x - \mu)^2}{2\sigma^2}} f(x)=2π σ1e2σ2(xμ)2

    其中
    μ \mu μ为数学期望(平均值)
    σ \sigma σ为方差
    于是有
    h ( θ ) = ln ⁡ ∑ i = 1 n ln ⁡ P ( x i ∣ θ ) = ( ∑ i = 1 n ln ⁡ P ( x i ∣ θ ) ) ′ = ( ∑ i = 1 n ln ⁡ 1 2 π σ ⋅ e − ( x − μ ) 2 2 σ 2 ) ′ = ∑ i = 1 n ln ⁡ 1 2 π σ + ∑ i = 1 n − ( x − μ ) 2 2 σ 2 = − n 2 ln ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x − μ ) 2 \begin{aligned} h(\theta) &= \ln \sum_{i=1}^{n} \ln P(x_{i} | \theta) \\ &= (\sum_{i=1}^{n} \ln P(x_{i} | \theta))' \\ &= (\sum_{i=1}^{n} \ln \frac{1}{\sqrt{2\pi}\sigma} \cdot e^{-\frac{(x - \mu)^2}{2\sigma^2}})' \\ &= \sum_{i=1}^{n} \ln \frac{1}{\sqrt{2\pi}\sigma} + \sum_{i=1}^{n} {-\frac{(x - \mu)^2}{2\sigma^2}} \\ &= -\frac{n}{2}\ln(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^{n} {(x - \mu)^2} \end{aligned} h(θ)=lni=1nlnP(xiθ)=(i=1nlnP(xiθ))=(i=1nln2π σ1e2σ2(xμ)2)=i=1nln2π σ1+i=1n2σ2(xμ)2=2nln(2πσ2)2σ21i=1n(xμ)2

    要求似然函数 L ( X ) L(X) L(X)的最大值,只需要求 h ( θ ) h(\theta) h(θ)的极值即可。即令:

    − n 2 ln ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x − μ ) 2 = 0 -\frac{n}{2}\ln(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^{n} {(x - \mu)^2} = 0 2nln(2πσ2)2σ21i=1n(xμ)2=0

    根据前面黑箱取球的例子, n n n为样本数即前面我们取了100次球, x x x为样本,即10个球里有几个白球,几个红球,几个黑球。 n , x n, x n,x都是已知的,未知的只有 σ , μ \sigma, \mu σ,μ。故对 σ , μ \sigma, \mu σ,μ求偏导:

    { h ( x ) d μ = 0 + 1 σ 2 ∑ i = 1 n ( x i − μ ) = 0 h ( x ) d σ = n σ − 1 σ 3 ⋅ ∑ i = 1 n ( x i − μ ) 2 = 0 \begin{cases} \frac{h(x)}{d\mu} = 0 + \frac{1}{\sigma^2}\sum_{i=1}^{n} (x_i - \mu) = 0 \\ \\ \frac{h(x)}{d\sigma} = \frac{n}{\sigma} - \frac{1}{\sigma^3} \cdot \sum_{i=1}^{n}(x_i - \mu)^2 = 0 \end{cases} dμh(x)=0+σ21i=1n(xiμ)=0dσh(x)=σnσ31i=1n(xiμ)2=0
    其中:
    n 2 ln ⁡ ( 2 π σ 2 ) \frac{n}{2}\ln(2\pi\sigma^2) 2nln(2πσ2) μ \mu μ求偏导的结果为 0 0 0

    化简以后为:
    { 1 σ 2 ∑ i = 1 n ( x i − μ ) = 0 n − 1 σ 2 ⋅ ∑ i = 1 n ( x i − μ ) 2 = 0 \begin{cases} \frac{1}{\sigma^2}\sum_{i=1}^{n} (x_i - \mu) = 0 \\ \\ n - \frac{1}{\sigma^2} \cdot \sum_{i=1}^{n}(x_i - \mu)^2 = 0 \end{cases} σ21i=1n(xiμ)=0nσ21i=1n(xiμ)2=0

    再化简:
    { ∑ i = 1 n ( x i ) − n μ = 0 1 σ 2 ⋅ ∑ i = 1 n ( x i − μ ) 2 = n \begin{cases} \sum_{i=1}^{n} (x_i )- n\mu = 0 \\ \\ \frac{1}{\sigma^2} \cdot \sum_{i=1}^{n}(x_i - \mu)^2 = n \end{cases} i=1n(xi)nμ=0σ21i=1n(xiμ)2=n

    最终有:
    { μ = 1 n ∑ i = 1 n ( x i ) σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 \begin{cases} \mu = \frac{1}{n} \sum_{i=1}^{n} (x_i )\\ \\ \sigma^2 = \frac{1}{n} \sum_{i=1}^{n}(x_i - \mu)^2 \end{cases} μ=n1i=1n(xi)σ2=n1i=1n(xiμ)2
    有没有发现哪儿有不对的地方?
    这个 μ , σ \mu, \sigma μ,σ怎么好像回到了数学期望 μ \mu μ和方差 σ \sigma σ定义的的地方了呢?
    再次回到上面黑箱摸球的统计实验,在实验中
    x i x_i xi为样本, n n n为样本数
    推导结果里的 μ \mu μ并不是定义的数学期望的 μ \mu μ,而是极大似然估计的 μ \mu μ σ 2 \sigma^2 σ2也不是方差的定义,而是极大似然估计的 σ 2 \sigma^2 σ2
    推导的最终结果的意思是:在统计样本里我们可以近似地认为:
    样本的平均值 μ \mu μ就是实际的平均值
    样本的方差 σ 2 \sigma^2 σ2就是实际的方差
    OK,至此推导结束,总结一下

    求极大似然估计值 θ ^ \hat\theta θ^的一般步骤

    1. 写出似然函数
    2. 对似然函数对对数,并简化整理
    3. 求导
    4. 解似然方程

    注意,如果假设的条件概率模型正确,则通常能获得较好的结果.但是如果假设模型出现偏差,将导致非常差的估计结果。
    这样的话怎么办呢?
    机器学习也是这方面的考虑,在对模型进行训练的时候会把统计结果留出一小部分来,用剩下的大部分的数据对模型进行训练,来验证我们所做的模型是否正确。如果效果不好的话那就换模型吧。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,463
精华内容 11,385
关键字:

极大似然