精华内容
下载资源
问答
  • 极大似然估计用蒙特卡洛仿真实现,蒙特卡洛仿真实现MATLAB例程
  • 主要介绍了python简单实现最大似然估计&scipy库的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 极大似然估计方法估计掷硬币的概率,word版的估计过程,涉及公式,完整版的推导
  • 极大似然估计.pdf

    2020-05-21 14:12:08
    本文主要介绍了极大似然估计的原理以及实现过程。本文省去了不必要的证明。供查阅使用。(1)介绍了极大似然估计的相合性、同变性、渐近正态性。(2)Delta方法。
  • 包括matlab代码和地物信息xls文件,利用文件中提供的地物的五个波段信息以及预分类的信息,进行编程,实现分类并和文件中的真正分类比较,发现正确率可以达到97%
  • 极大似然估计方法

    2019-01-04 18:26:05
    极大似然估计方法估计方法,极大似然估计方法估计方法
  • 哈工大研究生课程讲义高斯分布参数的极大似然估计,EM算法
  • stata中极大似然估计方法,很不错的资源,可以下载下来学习下。
  • 样本数据的类条件概率密度符合正态分布,对训练样本进行极大似然估计得到参数,再对测试样本进行分类。
  • 尽管在对逻辑回归的参数的最大似然估计进行偏差校正时非常流行并且建立得很好,但是对最大似然方法的行为和性质的研究较少。 本文的主要目的是利用归约技术研究参数估计方法的行为和性质。 我们将重点介绍一种使用...
  • 8 H1 : 0 xn A fn wn ( ) cos(2 ) ( ) = ++ π θ n=1H0 : xn wn () () = n=1其中 w[n]是均值为 0,方差为 2 σ n 的高斯白噪声,A 已知,样本间相互独立,信号与噪声相互独立; 相位θ 是随机变量,它服从均匀分布...
  • 最大似然估计算法来进行DOA估计,还采用轮转循环对ML进行改进
  • 机器学习的核心思想是从过往的经验中学习出规则,从而对新的事物进行预测。对于监督学习来说,有用的样本数目越多,训练越准确。...最大似然最大后验估计都是给定模型参数后,得到样本集的概率的方法。
  • 通过样例来讲解最大似然估计和极大似然估计以及他们的区别

    个人博客:https://xiaoxiablogs.top

    概率与似然

    对于最大似然估计我们使用最简单的抛硬币问题来进行讲解

    概率

    当我们抛一枚硬币的时候,就可以去猜测抛硬币的各种情况的可能性,这个可能性就称为概率
    一枚质地均匀的硬币,在不考虑其他情况下是符合二项分布的,即正面和翻面的概率都是0.5,那么我们抛10次硬币5次正面在上面的概率为:
    P ( 5 次 正 面 朝 上 ) = C 10 5 0. 5 5 ( 1 − 0.5 ) 5 = 0.24609375 ≈ 0.25 P(5次正面朝上)=C^5_{10}0.5^5(1-0.5)^5=0.24609375\approx0.25 P(5)=C1050.55(10.5)5=0.246093750.25

    似然

    但是现实生活中,我们并不知道硬币是否均匀,那么我们就需要通过多次抛硬币来推测硬币是否均匀或者说推测硬币每一面朝上的概率,这就是似然

    最大似然估计

    那么什么是**最大似然估计(又称极大似然估计)**呢?
    所谓的最大似然估计其实就是假设硬币正面朝上的概率,然后计算实验结果的概率是多少,概率越大,那么这个假设的概率越可能是真的。
    假设我们投了10次硬币,其中有6次正面朝上,那么我们根据这个实验结果对其进行假设
    我们可以先假设正面朝上的概率为0.5,那么达到实验结果的概率为:
    P = C 10 6 0. 5 6 ( 1 − 0.5 ) 4 = 0.205078125 ≈ 0.21 P = C^6_{10}0.5^6(1-0.5)^4=0.205078125\approx0.21 P=C1060.56(10.5)4=0.2050781250.21
    我们还可以假设正面朝上的概率为0.6,那么达到实验结果的概率为
    P = C 10 6 0. 6 6 ( 1 − 0.6 ) 4 = 0.25082265600000003 ≈ 0.25 P=C^6_{10}0.6^6(1-0.6)^4=0.25082265600000003\approx0.25 P=C1060.66(10.6)4=0.250822656000000030.25
    那么我们就可以说,正面朝上的概率为0.6要比0.5的更有可能。

    当然,我们仅仅比较这两种情况是不够的,我们需要将所有的情况都进行对比,然后求出最大的可能性。
    接下来我们使用作图的方法来看一下最有可能的取值
    在这里插入图片描述
    根据上图我们可以看出,可能性最大的应该是正面概率为0.6的时候。
    以上通过实验结果,然后对相应的概率进行假设,从而得到最有可能造成测试结果的概率的过程,就称为最大似然估计

    展开全文
  • R语言-极大似然估计

    2015-05-14 15:39:22
    极大似然估计方法(Maximum Likelihood Estimate,MLE)也称为最大概似估计或最大似然估计,是求估计的另一种方法,最大概似1821年首先由德国数学家C. F. Gauss提出,但是这个方法通常被归功于英国的统计学家R. A. ...
  • 极大似然估计最大似然估计定义

    万次阅读 多人点赞 2018-01-28 18:54:39
    最近看朴素贝叶斯法,发现有关于极大似然估计部分,网上找了好久,感觉也都说不清。然后还有个最大似然估计,最要命的是我发现还有人专门对两者区别做了论述。然后我就看了下英文定义: 最大似然估计(maximum ...

    最近看朴素贝叶斯法,发现有关于极大似然估计部分,网上找了好久,感觉也都说不清。然后还有个最大似然估计,最要命的是我发现还有人专门对两者区别做了论述。然后我就看了下英文定义:

    最大似然估计(maximum likelihood estimation, MLE)

    极大似然估计方法(Maximum Likelihood Estimate,MLE)

    其实两者是一样的。

    本文源自频率主义学派的最大似然估计。

    翻看了宗成庆著的《统计自然语言处理》第二章有关于它的定义:


    因为不会在CSDN写公式,所以就先写到word,然后粘成图片,见谅


    展开全文
  • % ************************************************ % 一个数组信号参数最大似然估计问题% % 课程 EEL6537 的练习题和研究课题 12-02-22 孙磊 bitsunlei@126.com % 最后修改时间:2012 年 2 月 24 日% % 这是EEL...
  • 图解极大似然估计

    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

    展开全文
  • 最大似然估计matlab

    热门讨论 2012-07-28 18:20:58
    用matlab模拟最大似然估计算法。对初学者会很有帮助。
  • 文章目录1、最大似然估计的一般理论2、最大似然估计的性质3、最大似然估计推导逻辑回归的损失函数4、线性回归的损失函数5、小结 1、最大似然估计的一般理论 我们希望可以有些准则可以让我们从不同的模型中得到特定...

    关于最大似然估计法的基本原理请参考《概率论与数理统计》P152或参考《深度学习》chpt 5.5

    1、最大似然估计的一般理论

    我们希望可以有些准则可以让我们从不同的模型中得到特定函数作为好的估计。
    最常用的准则是最大似然估计。

    我们考虑一组含有m个样本的数据集 X = { x ( 1 ) , . . . , x ( m ) } X=\{x^{(1)},...,x^{(m)}\} X={x(1),...,x(m)},独立的由真正但未知的数据生成分布 p d a t a ( x ) p_{data}(x) pdata(x)生成。

    p m o d e l ( x ; θ ) p_{model}(x; \theta) pmodel(x;θ) 是一族由 θ \theta θ确定在相同空间上的概率分布。换言之, p m o d e l ( x ; θ ) pmodel(x; \theta) pmodel(x;θ)$
    将任意输入x 映射到实数来估计真实概率 p d a t a ( x ) p_{data}(x) pdata(x)

    θ \theta θ 的最大似然估计被定义为:
    θ M L = arg ⁡ max ⁡ θ p m o d e l ( X ; θ ) = arg ⁡ max ⁡ θ Π i = 1 m p m o d e l ( x ( i ) ; θ ) \begin{aligned} \theta_{ML} &= \arg \max_\theta p_{model}(X; \theta) \\ &= \arg \max_\theta Π_{i=1}^m p_{model}(x^{(i)}; \theta) \end{aligned} θML=argθmaxpmodel(X;θ)=argθmaxΠi=1mpmodel(x(i);θ)
    多个概率的乘积会因很多原因不便于计算。例如,计算中很可能会出现数值
    下溢。为了得到一个便于计算的等价优化问题,我们观察到似然对数不会改变其
    arg ⁡ max ⁡ \arg \max argmax 但是将乘积转化成了便于计算的求和形式:

    θ M L = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ p m o d e l ( x ( i ) ; θ ) \theta_{ML} = \arg \max_\theta \sum_{i=1}^m \log p_{model}(x^{(i)}; \theta) θML=argθmaxi=1mlogpmodel(x(i);θ)

    因为当我们重新缩放代价函数时 arg ⁡ max ⁡ \arg \max argmax 不会改变,我们可以除以m 得到和训练数
    据经验分布 p ∗ d a t a p*_{data} pdata 相关的期望作为准则:
    θ M L = arg ⁡ max ⁡ θ E x − p ∗ d a t a log ⁡ p m o d e l ( x ; θ ) : \theta_{ML} = \arg \max_\theta E_{x-p*_{data}} \log p_{model}(x; \theta ): θML=argθmaxExpdatalogpmodel(x;θ):

    注意,虽然期望值的形式是根据各个值出现的概率加权平均,但事实上就等于将所有样本都直接求平均的效果是一样的。

    也就是说,最大似然估计的最后推导结果可以用期望值表示。所以很多时候我们说某个算法的损失函数是其条件概率分布的期望值,也就是等价与其最大似然估计。

    另一种解释最大似然估计的观点是将它看作最小化训练集上的经验分布 p ∗ d a t a p*_{data} pdata 和模型分布之间的差异,两者之间的差异程度可以通过KL 散度度量。KL 散度被定义为
    D K L ( p ∗ d a t a ∣ ∣ p m o d e l ) = E x − p ∗ d a t a [ log ⁡ p ∗ d a t a ( x ) − log ⁡ p m o d e l ( x ) ] D_{KL}(p*_{data}||p_{model}) = E_{x-p*_{data}}[\log p*_{data}(x) - \log p_{model}(x)] DKL(pdatapmodel)=Expdata[logpdata(x)logpmodel(x)]
    左边一项仅涉及到数据生成过程,和模型无关。这意味着当我们训练模型最小化KL
    散度时,我们只需要最小化
    − E x − p ∗ d a t a [ log ⁡ p m o d e l ( x ) ] -E_{x-p*_{data}}[ \log p_{model}(x)] Expdata[logpmodel(x)]

    当然,这和上面的最大化是相同的,而这就是交叉熵的定义。

    因此,我们经常说的损失函数,可以说是交叉熵,也可以说是最大似然估计,其结果还可以表示成期望值,它们都是等价的。也就是说损失函数为:
    θ = − arg ⁡ min ⁡ θ E x − p ∗ d a t a [ log ⁡ p m o d e l ( x ; θ ) ] = − arg ⁡ min ⁡ θ ∑ i = 1 m log ⁡ p m o d e l ( x ( i ) ; θ ) \theta = -\arg \min_\theta E_{x-p*_{data}}[ \log p_{model}(x;\theta)] = -\arg \min_\theta \sum_{i=1}^m \log p_{model}(x^{(i)}; \theta) θ=argθminExpdata[logpmodel(x;θ)]=argθmini=1mlogpmodel(x(i);θ)
    注意这里的x指的是完整的一个训练样本,也就是有label值的,所以可以写成:
    θ = − arg ⁡ min ⁡ θ E x − p ∗ d a t a [ log ⁡ p m o d e l ( y ∣ x ; θ ) ] = − arg ⁡ min ⁡ θ ∑ i = 1 m log ⁡ p m o d e l ( y ∣ ( i ) x ( i ) ; θ ) \theta = -\arg \min_\theta E_{x-p*_{data}}[ \log p_{model}(y|x;\theta)] = -\arg \min_\theta \sum_{i=1}^m \log p_{model}(y|^{(i)}x^{(i)}; \theta) θ=argθminExpdata[logpmodel(yx;θ)]=argθmini=1mlogpmodel(y(i)x(i);θ)
    这里把x和y分开了。

    注意,正如上面所说,虽然期望值的形式是根据各个值出现的概率加权平均,但事实上就等于将所有样本都直接求平均的效果是一样的。所有样本的相加,其结果就包含了概率分布的含义在内。极端条件下(其实很普遍),所有的样本都是不相同的,那每个 p m o d e l ( y ∣ ( i ) x ( i ) p_{model}(y|^{(i)}x^{(i)} pmodel(y(i)x(i)出现的概率都是1/m,也就是一个常量。

    p m o d e l ( y ∣ x ; θ ) p_{model}(y|x;\theta) pmodel(yx;θ)可以这样理解:在当前 θ \theta θ(即当前模型),当x出现的前提下,各个y出现的概率是多少。注意是各个y出现的概率,不是某一个y(这个在sigmoid函数特别容易引起误会,sigmoid函数值只是结果=1的概率,没有0的概率。)。因此, p m o d e l ( y ∣ x ; θ ) p_{model}(y|x;\theta) pmodel(yx;θ)必然与 x , y , θ x, y, \theta x,y,θ都要关系。

    得到损失函数后,我们就可以推导损失函数对 θ \theta θ的梯度函数,这也是 x , y , θ x, y, \theta x,y,θ的函数。

    而对于某个模型(即当前 θ \theta θ),以及某个具体的样本(即 x , y x,y x,y), x , y , θ x, y, \theta x,y,θ都是已知的,这就可以计算出loss函数对 θ \theta θ的梯度值,然后使用梯度下降更新 θ \theta θ

    2、最大似然估计的性质

    最大似然估计最吸引人的地方在于,它被证明当样本数目 m → inf ⁡ m \to \inf minf时,就收敛率而言是最好的渐进估计。

    为什么使用最大似然估计呢?另一种常用的损失函数是均方误差,但它在x的绝对值很大时,趋于饱和,梯度变得非常的小,很难训练。

    3、最大似然估计推导逻辑回归的损失函数

    这里只解释了最大似然估计在推导逻辑回归损失函数时的应用。

    基本原理是:我们从样本空间中随机取N个样本 X 1 , X 2... X N X1,X2...XN X1,X2...XN,其对应的值为 y 1 , y 2... y n y1,y2...yn y1,y2...yn,既然我们已经取得这N个样本,则我们认为特征值 X 1 , X 2... X N X1,X2...XN X1,X2...XN时,其对应的值为 y 1 , y 2... y n y1,y2...yn y1,y2...yn的概率会比较大。

    最大似然估计认为,我们取合适的w,使得特征值 X 1 , X 2... X N X1,X2...XN X1,X2...XN时,其对应的值为y1,y2…yn的概率会最大。

    极大似然估计MLE与损失函数
    在机器学习理论中,损失函数(loss function) 是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y,f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:

    θ ∗ = arg ⁡ min ⁡ θ 1 N ∑ i = 1 N L ( y i , f ( x i ; θ ) ) + λ Φ ( θ ) θ^*= \arg \min_θ \frac{1}{N}\sum_{i=1}^N L(yi,f(xi;θ))+λ Φ(θ) θ=argθminN1i=1NL(yi,f(xi;θ))+λΦ(θ)

    对于逻辑回归,其loss function是log损失,可以通过极大似然估计进行推导得到。首先,给定一个样本 x x x$
    ,可以使用一个线性函数对自变量进行线性组合,
    θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n = θ T x θ_0+θ_1x_1+θ_2x_2+⋯+θ_nx_n=θ^Tx θ0+θ1x1+θ2x2++θnxn=θTx
    根据sigmoid函数,我们可以得出预测函数的表达式:
    h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_θ(x)=g(θ^Tx)= \frac{1}{1+e^{-θ^Tx}} hθ(x)=g(θTx)=1+eθTx1
    式(4)表示y=1时预测函数为 h θ ( x ) h_θ(x) hθ(x)。在这里,假设因变量y服从伯努利分布,取值为
    0和1,那么可以得到下列两个式子:
    p ( y = 1 ∣ x ) = h θ ( x ) p ( y = 0 ∣ x ) = 1 − h θ ( x ) \begin{aligned} p(y=1|x)&=h_θ(x) \\ p(y=0|x)&=1-h_θ(x) \end{aligned} p(y=1x)p(y=0x)=hθ(x)=1hθ(x)
    而对于上面的两个表达式,通过观察,我们发现,可以将其合并为表达式:
    p ( y ∣ x ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y p(y|x)=h_θ(x)^y(1-h_θ(x))^{1-y} p(yx)=hθ(x)y(1hθ(x))1y
    根据上面的式子,给定一定的样本之后,我们可以构造出似然函数,然后可以使用极大似然估计MLE的思想来求解参数。但是,为了满足最小化风险理论,我们可以将MLE的思想转化为最小化风险化理论,最大化似然函数其实就等价于最小化负的似然函数。对于MLE, 就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说是什么样的参数才能使我们观测到目前这组数据的概率最大。 使用MLE推导LR的loss function的过程如下。
    首先,根据上面的假设,写出相应的极大似然函数(假定有m个样本):
    L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) \begin{aligned} L(θ)&=∏_{i=1}^mp(y^{(i)}|x^{(i)};θ) \\ &=∏_{i=1}^mh_θ(x^{(i)})^{y^{(i)}}(1-h_θ(x^{(i)}))^{1-y^{(i)}} \end{aligned} L(θ)=i=1mp(y(i)x(i);θ)=i=1mhθ(x(i))y(i)(1hθ(x(i)))1y(i)
    直接对上面的式子求导会不方便,因此,为了便于计算,我们可以对似然函数取对数,经过化简可以得到下式的推导结果:
    l o g L ( θ ) = ∑ i = 1 m l o g [ ( h θ ( x i ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) ) ] = ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] \begin{aligned} logL(θ)&=\sum_{i=1}^mlog[(h_θ(x_i)^{y^{(i)}}(1-h_θ(x^{(i)}))^{1-y^{(i)}})] \\ &=∑_{i=1}^m[y^{(i)}logh_θ(x^{(i)})+(1-y^{(i)})log(1-h_θ(x^{(i)}))] \end{aligned} logL(θ)=i=1mlog[(hθ(xi)y(i)(1hθ(x(i)))1y(i))]=i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]
    因此,损失函数可以通过最小化负的似然函数得到,即下式:
    J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] \begin{aligned} J(θ)= -\frac{1}{m} ∑_{i=1}^m[y^{(i)}logh_θ(x^{(i)})+(1-y^{(i)})log(1-h_θ(x^{(i)}))] \end{aligned} J(θ)=m1i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]
    在有的资料上,还有另一种损失函数的表达形式,但本质是一样的,如下:
    J ( θ ) = 1 m ∑ i = 1 m l o g ( 1 + e − y ( i ) θ T x ) J(θ)=\frac{1}{m}∑_{i=1}^mlog(1+e^{-y^{(i)}θ^Tx}) J(θ)=m1i=1mlog(1+ey(i)θTx)
    对于初学者而言,可能会认为逻辑回归的随时函数是平方损失,这里解释一下:之所以有人认为逻辑回归是平方损失,是因为在使用梯度下降来求最优解的时候,它的迭代式子与平方损失求导后的式子非常相似,从而给人一种直观上的错觉。

    另一种理解:

    注意:sigmoid函数只是定义了在 x x x的条件下, y = 1 y=1 y=1出现的概率,而不是完整的概率分布。
    p ( y ∣ x ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y p(y|x)=h_θ(x)^y(1-h_θ(x))^{1-y} p(yx)=hθ(x)y(1hθ(x))1y
    才是y=0/1的完整分布。因此,我们可以定义LR的损失函数为:
    − E x − p ∗ d a t a [ log ⁡ p m o d e l ( y ∣ x ) ] -E_{x-p*_{data}}[ \log p_{model}(y|x)] Expdata[logpmodel(yx)]
    根据第一节的推导,可以由这个定义得到最大似然估计同样的表达式。

    **事实上,这里的损失函数不仅仅适用于逻辑回归,而应该是适用于所有结果为Bernoulli分布的算法。**此时,由于预测结果不再是通过sigmoid函数计算出来的,损失函数为:
    J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ y ~ ( i ) + ( 1 − y ( i ) ) l o g ( 1 − y ~ ( i ) ) ] J(θ)= -\frac{1}{m} \sum_{i=1}^m[y^{(i)}\log \tilde{y}^{(i)}+(1-y^{(i)})log(1-\tilde{y}^{(i)})] J(θ)=m1i=1m[y(i)logy~(i)+(1y(i))log(1y~(i))]
    其中 y ~ ( i ) \tilde{y}^{(i)} y~(i)表示模型的计算结果。也就是说深度学习的输出如果是二分类问题的话,我们可以根据训练数据的真实值以及我们的预测值,计算出损失。

    4、线性回归的损失函数

    对于线性回归模型,当因变量服从正态分布,误差项满足高斯–马尔科夫条件(零均值、等方差、不相关)时,回归参数的最小二乘估计是一致最小方差无偏估计。
    简单的说,对于线性回归,要求其因变量的残差满足正态分布。因此:
    p m o d e l ( y ∣ x ) = N ( y ; f ( x , θ ) ; I ) p_{model}(y|x) = N(y;f(x,\theta);I) pmodel(yx)=N(y;f(x,θ);I)
    意思是在x的条件下,y出现的概率是以f(x)为中心的正态分布。

    因此,我们对上式求对数,很容易得到其损失函数就是均方误差。

    5、小结

    (1)我们经常使用最大似然估计(或者交叉熵,二者等价)作为损失函数:
    θ = − arg ⁡ min ⁡ θ E x − p ∗ d a t a [ log ⁡ p m o d e l ( y ∣ x ; θ ) ] = − arg ⁡ min ⁡ θ ∑ i = 1 m log ⁡ p m o d e l ( y ∣ ( i ) x ( i ) ; θ ) \begin{aligned} \theta &= -\arg \min_\theta E_{x-p*_{data}}[ \log p_{model}(y|x;\theta)] \\ &= -\arg \min_\theta \sum_{i=1}^m \log p_{model}(y|^{(i)}x^{(i)}; \theta) \end{aligned} θ=argθminExpdata[logpmodel(yx;θ)]=argθmini=1mlogpmodel(y(i)x(i);θ)

    因此,我们定义损失函数最重要的就是找出 p m o d e l ( y ∣ x ; θ ) p_{model}(y|x;\theta) pmodel(yx;θ)

    p m o d e l ( y ∣ x ; θ ) p_{model}(y|x;\theta) pmodel(yx;θ)可以这样理解:在当前 θ \theta θ(即当前模型),当x出现的前提下,各个y出现的概率是多少。注意是各个y出现的概率,不是某一个y(这个在sigmoid函数特别容易引起误会,sigmoid函数值只是结果=1的概率,没有0的概率。)。因此, p m o d e l ( y ∣ x ; θ ) p_{model}(y|x;\theta) pmodel(yx;θ)必然与 x , y , θ x,y,\theta x,y,θ都要关系。

    得到损失函数后,我们就可以推导损失函数对 θ \theta θ的梯度函数,这也是 x , y , θ x, y, \theta x,y,θ的函数。

    而对于某个模型(即当前 θ \theta θ),以及某个具体的样本(即 x , y x,y x,y), x , y , θ x, y, \theta x,y,θ都是已知的,这就可以计算出loss函数对 θ \theta θ的梯度值,然后使用梯度下降更新 θ \theta θ

    (2)简单总结一下相关知识:

    • 很多模型使用交叉熵(也可理解为最大似然估计)作为损失函数。
    • 交叉熵可以表示为期望值的形式。
    • 期望值可以简单理解为一个分布的加权平均。
    • 线性回归、逻辑回归都可以使用这个方法推导出它的损失函数。
    展开全文
  • 平方根扩散过程已广泛用于对利率行为进行建模。 它是著名的 Cox-Ingersoll-... 我们调查利率时间序列的平方根过程(CIR过程)的最大似然估计。 提供了估算程序的 MATLAB 实现,并在 PRIBOR 3M 时间序列上进行了测试。
  • 最大似然估计

    2021-04-24 17:39:11
    一、样本与总体1、期望与方差2、概率密度函数1、参数估计2、极大似然估计 1、期望与方差 数学期望:它是实验中每次可能结果的概率乘以其结果的总和。它反映了随机变量平均取值的大小。用公式表示如下: 方差:用来...
  • 极大似然估计

    2019-10-01 16:17:15
    极大似然估计是概率的log概率的最大化问题,即max(log(P)),log函数是单调函数,通常取底数大于1的情况,所以log函数不影响原来概率大小的判断。如果取极大似然函数的相反数,得到的就是我们熟悉的损失函数cost,...
  • 基于极大似然估计的三维定位算法

    热门讨论 2012-11-02 14:36:29
    绝对是好东西啊!基于极大似然估计的三维定位算法,输入参考点的坐标以及观察点的距离,通过极大似然估计算法计算出观察点的坐标,附送支持矩阵运算的C++类库!
  • 以简单的举例来实现正态分布下的最大似然估计,并绘图进行对比
  • 利用递推极大似然法进行参数估计,逼近真实参数向量
  • 正态分布下的最大似然估计

    千次阅读 2021-09-19 15:11:18
    正态分布下的最大似然估计 前导知识:【最大似然参数估计的求解】 本文仅以单变量正态分布情况下估计其均值和方差为例来说明最大似然估计的用法。 单变量正态分布的形式为: ρ(x∣θ)=12πσe−12(x−μσ)2(1) \...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,470
精华内容 16,588
关键字:

最大似然估计