人工智能与机器学习原理精解【24】

devtools/2024/11/15 2:05:36/

文章目录

  • 统计机器学习
    • 最大似然估计(Maximum Likelihood Estimation,MLE)
      • 基本原理
        • 一、原理概述
        • 二、工作步骤
        • 三、应用实例
        • 四、性质与局限性
      • 求解步骤
      • 示例
    • 正态分布(Normal Distribution)
      • 定义
      • 公式
        • 性质
        • 应用
        • 注意事项
    • 最大似然估计算法详解
      • 最大似然估计算法过程
      • 原理
      • 推导与公式
      • 计算步骤
      • 例子
        • 例子1:抛硬币实验
        • 例子2:正态分布参数估计
      • Julia实现
  • 参考文献

统计机器学习

最大似然估计(Maximum Likelihood Estimation,MLE)

是一种在统计学中用来估计概率模型参数的方法。它通过最大化似然函数来估计模型的参数,使得在这组参数下观测到的数据出现的概率最大。

基本原理

  1. 似然函数:似然函数表示在给定参数下,观测到特定数据样本的概率。对于独立同分布的数据样本,似然函数通常是每个数据点概率的乘积。
  2. 对数似然:由于似然函数通常是多个概率的乘积,为了简化计算,通常取其对数,得到对数似然函数。对数似然函数在求最大值时与原似然函数具有相同的解,但计算更为简便。
  3. 最大化似然:通过求解对数似然函数的最大值,可以得到模型参数的估计值。这通常涉及到对似然函数求导并令其为0,解出参数值。
    极大似然估计(Maximum Likelihood Estimation, MLE)是一种统计方法,用于在给定观测数据的情况下,估计概率模型中的未知参数。这种方法基于一个直观的原理:选择那些使得观察到的数据出现概率最大的参数值。以下是极大似然估计如何工作的详细解释:
一、原理概述

极大似然估计的核心思想是在所有可能的参数取值中,找到那个使观测数据出现概率最大的参数值。这个概率被称为似然函数,而极大似然估计就是要最大化这个似然函数。

二、工作步骤
  1. 建立概率模型

    • 首先,假设观测数据来自一个已知的概率分布(如正态分布、泊松分布等),但这个分布的具体参数是未知的。
    • 根据已有信息和问题背景,选择合适的概率分布作为数据的模型。
  2. 建立似然函数

    • 将观测数据的概率分布函数表示为参数的函数,这个函数就是似然函数。
    • 对于独立同分布的观测数据 X 1 , X 2 , . . . , X n X_1, X_2, ..., X_n X1,X2,...,Xn,似然函数 L ( θ ) L(\theta) L(θ) 可以表示为所有观测数据的联合概率:
      L ( θ ) = f ( X 1 ∣ θ ) ⋅ f ( X 2 ∣ θ ) ⋅ . . . ⋅ f ( X n ∣ θ ) L(\theta) = f(X_1|\theta) \cdot f(X_2|\theta) \cdot ... \cdot f(X_n|\theta) L(θ)=f(X1θ)f(X2θ)...f(Xnθ)
      其中, f ( x ∣ θ ) f(x|\theta) f(xθ) 是观测数据 X X X 在参数为 θ \theta θ 时的概率密度函数(连续分布)或概率质量函数(离散分布)。
  3. 极大化似然函数

    • 为了便于计算,通常对似然函数取对数,得到对数似然函数 l ( θ ) l(\theta) l(θ)
      l ( θ ) = log ⁡ L ( θ ) l(\theta) = \log L(\theta) l(θ)=logL(θ)
    • 然后,通过求导数并令其为零,找到使对数似然函数最大的参数值 θ ^ \hat{\theta} θ^
      d l ( θ ) d θ = 0 \frac{dl(\theta)}{d\theta} = 0 dθdl(θ)=0
    • 解这个方程,就可以得到极大似然估计的参数值 θ ^ \hat{\theta} θ^
三、应用实例

以抛硬币实验为例,假设我们有一个不公平的硬币,正面朝上的概率是未知的 p p p,反面朝上的概率是 1 − p 1-p 1p。我们进行了 n n n 次抛硬币实验,观察到正面朝上的次数是 k k k

  • 似然函数
    L ( p ) = p k ( 1 − p ) ( n − k ) L(p) = p^k (1-p)^{(n-k)} L(p)=pk(1p)(nk)

  • 对数似然函数
    ln ⁡ L ( p ) = k ln ⁡ p + ( n − k ) ln ⁡ ( 1 − p ) \ln L(p) = k \ln p + (n-k) \ln (1-p) lnL(p)=klnp+(nk)ln(1p)

  • 求导并令其为零
    d d p ln ⁡ L ( p ) = k p − n − k 1 − p = 0 \frac{d}{dp} \ln L(p) = \frac{k}{p} - \frac{n-k}{1-p} = 0 dpdlnL(p)=pk1pnk=0

  • 解方程
    p = k n p = \frac{k}{n} p=nk

这就是通过极大似然估计得到的硬币正面朝上的概率 p p p 的估计值。

四、性质与局限性
  • 性质:极大似然估计具有一些理想的性质,如一致性、渐进正态性和效率。
  • 局限性:然而,它也可能受到异常值的影响,对模型假设的敏感性较高,并且在实际应用中可能存在计算困难。

综上所述,极大似然估计是一种强大且直观的参数估计方法,通过最大化观测数据的出现概率来估计模型中的未知参数。

求解步骤

  1. 写出似然函数:根据模型的假设和数据样本,写出似然函数。
  2. 取对数:对似然函数取对数,得到对数似然函数。
  3. 求导并解方程:对对数似然函数求导,并令其为0,解出参数值。这可能需要使用微积分中的求导技巧和方程求解方法。
  4. 验证解:检查求得的解是否满足原问题的约束条件,并验证其是否为最大值点(可以通过二阶导数检验等方法)。

示例

以正态分布为例,假设我们有一组数据样本X = {x1, x2, ..., xn},且假设这些数据来自均值为μ、方差为σ²的正态分布。我们的目标是估计μ和σ²。

  1. 似然函数:对于正态分布,似然函数为:
    L ( μ , σ 2 ) = ∏ i = 1 n 1 2 π σ 2 exp ⁡ ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right) L(μ,σ2)=i=1n2πσ2 1exp(2σ2(xiμ)2)
  2. 对数似然:取对数后得到:
    log ⁡ L ( μ , σ 2 ) = − n 2 log ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \log L(\mu, \sigma^2) = -\frac{n}{2} \log(2\pi\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^{n} (x_i - \mu)^2 logL(μ,σ2)=2nlog(2πσ2)2σ21i=1n(xiμ)2
  3. 求导并解方程:分别对μ和σ²求导,并令其为0,解得:
    μ = 1 n ∑ i = 1 n x i (样本均值) \mu = \frac{1}{n} \sum_{i=1}^{n} x_i \quad \text{(样本均值)} μ=n1i=1nxi(样本均值)
    σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 (样本方差) \sigma^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \mu)^2 \quad \text{(样本方差)} σ2=n1i=1n(xiμ)2(样本方差)

正态分布(Normal Distribution)

也被称为高斯分布(Gaussian Distribution),是连续变量概率分布的一种,其概率密度函数为一特定的对称钟形曲线。正态分布是自然界和许多社会科学领域中最为常见的一种分布形式,例如身高、体重、考试成绩等数据的分布往往都近似于正态分布。

定义

正态分布的定义基于其概率密度函数(Probability Density Function, PDF),该函数描述了随机变量取某一特定值的可能性。正态分布由两个参数决定:均值(μ)和标准差(σ)。均值决定了分布的中心位置,而标准差决定了分布的宽度或离散程度。

公式

正态分布的概率密度函数公式为:

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

其中:

  • f ( x ) f(x) f(x)是随机变量 x x x 的概率密度函数值。
  • μ \mu μ 是均值(Mean),表示分布的中心位置。
  • σ \sigma σ 是标准差(Standard Deviation),表示分布的离散程度。
  • π \pi π是圆周率。
  • e e e 是自然对数的底数。
性质
  1. 对称性:正态分布曲线关于均值 μ \mu μ 对称。
  2. 钟形曲线:正态分布曲线呈钟形,两端低中间高。
  3. 面积:正态分布曲线下的总面积为1,表示所有可能取值的概率之和为1。
  4. 标准化:通过标准化变换(Z-score变换),任何正态分布都可以转换为标准正态分布(均值为0,标准差为1)。
应用

正态分布广泛应用于统计学、机器学习、社会科学、医学等领域。例如,在假设检验中,正态分布常用于构建检验统计量;在机器学习领域,正态分布是许多算法(如高斯朴素贝叶斯分类器)的基础。

总之,正态分布是概率论和统计学中的一个重要概念,对于理解和分析许多自然现象和社会现象具有重要意义。

注意事项
  • 最大似然估计依赖于数据的分布假设,如果假设不正确,估计结果可能不准确。
  • 对于小样本数据,最大似然估计可能不够稳定,需要谨慎使用。
  • 在某些情况下,最大似然估计可能无法得到唯一解或解析解,需要借助数值优化方法。

最大似然估计算法详解

(Maximum Likelihood Estimation, MLE)是一种在统计学中广泛应用的参数估计方法。其核心思想是通过观测到的数据来估计概率模型的参数,使得在这些参数下观测到的数据出现的概率最大。以下是最大似然估计算法的原理、推导、公式、计算及例子的详细介绍:

最大似然估计算法过程

最大似然估计(Maximum Likelihood Estimation, MLE)是一种统计方法,用于估计概率模型的参数,使得在给定的观测数据下,这些参数能最大化观测数据出现的概率。其算法过程大致如下:

  1. 确定概率模型

    • 首先,需要根据实际问题和数据的特性选择一个合适的概率模型,如正态分布、泊松分布等。
  2. 写出似然函数

    • 似然函数是给定参数下观测数据出现的概率。对于独立同分布的数据,似然函数是所有数据点概率的乘积。
  3. 取对数似然函数

    • 由于乘积可能导致数值下溢,通常取对数似然函数进行计算。对数似然函数是似然函数的自然对数,它在优化过程中更易处理。
  4. 求导数并令其为0

    • 计算对数似然函数关于模型参数的导数,并令其为0,以找到似然函数的极大值点。这通常涉及复杂的数学计算。
  5. 求解参数

    • 通过解导数等于0的方程或使用优化算法(如牛顿-拉弗森方法、梯度下降法等)来求解参数的最大似然估计值。
  6. 验证解的有效性

    • 验证解的唯一性和有效性,检查解是否在参数的合理范围内。
  7. 计算标准误差

    • 评估参数估计的不确定性,通常通过计算参数估计的标准误差来实现。

原理

最大似然估计建立在极大似然原理的基础上,即一个随机试验若有若干个可能的结果A, B, C, …,若在一次试验中,结果A出现,则一般认为试验条件对A出现有利,也即A出现的概率很大。因此,我们可以选择使得观测数据出现概率最大的参数值作为参数的估计值。

推导与公式

对于一组观测数据 X = x 1 , x 2 , . . . , x n X = {x_1, x_2, ..., x_n} X=x1,x2,...,xn,假设这些数据独立同分布地来自某个参数为 θ \theta θ的概率分布函数 f ( x ; θ ) f(x;\theta) f(x;θ)。则似然函数 L ( θ ∣ X ) L(\theta|X) L(θX)定义为在给定参数 θ \theta θ下观测数据 X X X出现的概率,即

L ( θ ∣ X ) = ∏ i = 1 n f ( x i ; θ ) L(\theta|X) = \prod_{i=1}^n f(x_i;\theta) L(θX)=i=1nf(xi;θ)

为了计算方便,通常对似然函数取对数,得到对数似然函数

ln ⁡ L ( θ ∣ X ) = ∑ i = 1 n ln ⁡ f ( x i ; θ ) \ln L(\theta|X) = \sum_{i=1}^n \ln f(x_i;\theta) lnL(θX)=i=1nlnf(xi;θ)

最大似然估计的目标就是找到使得对数似然函数 ln ⁡ L ( θ ∣ X ) \ln L(\theta|X) lnL(θX)最大的参数值 θ ^ \hat{\theta} θ^,即

θ ^ = arg ⁡ max ⁡ θ ln ⁡ L ( θ ∣ X ) \hat{\theta} = \arg\max_{\theta} \ln L(\theta|X) θ^=argθmaxlnL(θX)

计算步骤

  1. 定义似然函数:根据概率模型和观测数据,定义似然函数 L ( θ ∣ X ) L(\theta|X) L(θX)

  2. 取对数:对似然函数取对数,得到对数似然函数 ln ⁡ L ( θ ∣ X ) \ln L(\theta|X) lnL(θX)

  3. 求导数:对对数似然函数求导数,并令导数等于零,得到似然方程。

  4. 解方程:解似然方程,得到参数 θ \theta θ的估计值 θ ^ \hat{\theta} θ^

  5. 验证:验证所得的 θ ^ \hat{\theta} θ^值是否为最大值,可以通过二阶导数或其他方法进行验证。

例子

例子1:抛硬币实验

假设我们有一个不公平的硬币,正面朝上的概率是 p p p(未知),反面朝上的概率是 1 − p 1-p 1p。我们进行了 n n n次抛硬币实验,观察到正面朝上的次数是 k k k

  • 似然函数

    L ( p ) = p k ( 1 − p ) ( n − k ) L(p) = p^k (1-p)^{(n-k)} L(p)=pk(1p)(nk)

  • 对数似然函数

    ln ⁡ L ( p ) = k ln ⁡ p + ( n − k ) ln ⁡ ( 1 − p ) \ln L(p) = k \ln p + (n-k) \ln (1-p) lnL(p)=klnp+(nk)ln(1p)

  • 求导数并令其为0

    d d p ln ⁡ L ( p ) = k p − n − k 1 − p = 0 \frac{d}{dp} \ln L(p) = \frac{k}{p} - \frac{n-k}{1-p} = 0 dpdlnL(p)=pk1pnk=0

  • 解方程

    p = k n p = \frac{k}{n} p=nk

例子2:正态分布参数估计

设总体 X X X服从正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2) X 1 , X 2 , . . . , X n X_1, X_2, ..., X_n X1,X2,...,Xn是来自总体 X X X的一个样本,求 μ \mu μ σ 2 \sigma^2 σ2的最大似然估计。

  • 似然函数

    L ( μ , σ 2 ) = ∏ i = 1 n 1 2 π σ 2 exp ⁡ ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right) L(μ,σ2)=i=1n2πσ2 1exp(2σ2(xiμ)2)

  • 对数似然函数

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

  • 分别对 μ \mu μ σ 2 \sigma^2 σ2求偏导并令其为0

    • 对于 μ \mu μ

∂ ∂ μ ln ⁡ L ( μ , σ 2 ) = 1 σ 2 ∑ i = 1 n ( x i − μ ) = 0 ⇒ μ = 1 n ∑ i = 1 n x i \frac{\partial}{\partial \mu} \ln L(\mu, \sigma^2) = \frac{1}{\sigma^2} \sum_{i=1}^{n} (x_i - \mu) = 0 \Rightarrow \mu = \frac{1}{n} \sum_{i=1}^{n} x_i μlnL(μ,σ2)=σ21i=1n(xiμ)=0μ=n1i=1nxi

  • 对于 σ 2 \sigma^2 σ2

∂ ∂ σ 2 ln ⁡ L ( μ , σ 2 ) = − n 2 σ 2 + 1 2 σ 4 ∑ i = 1 n ( x i − μ ) 2 = 0 ⇒ σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 \frac{\partial}{\partial \sigma^2} \ln L(\mu, \sigma^2) = -\frac{n}{2\sigma^2} + \frac{1}{2\sigma^4} \sum_{i=1}^{n} (x_i - \mu)^2 = 0 \Rightarrow \sigma^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \mu)^2 σ2lnL(μ,σ2)=2σ2n+2σ41i=1n(xiμ)2=0σ2=n1i=1n(xiμ)2

(注意:在实际应用中,对于 σ 2 \sigma^2 σ2的估计,通常使用样本方差的无偏估计量,即 σ 2 = 1 n − 1 ∑ i = 1 n ( x i − μ ) 2 \sigma^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \mu)^2 σ2=n11i=1n(xiμ)2,但在最大似然估计中,我们直接使用上面的结果)

通过以上例子可以看出,最大似然估计算法是一种非常直观且强大的参数估计方法,广泛应用于统计学、机器学习、信息论、信号处理等领域。

Julia实现

在Julia中实现最大似然估计可能涉及自定义似然函数并使用优化算法。以下是一个简化的示例,仅用于说明目的,并未直接针对上述正态分布的例题:

using Optim# 定义似然函数(以正态分布为例,但这里仅作为演示)
function log_likelihood(θ, x)μ, σ² = θreturn -length(x)/2 * log(2π * σ²) - sum((x .- μ).^2) / (2σ²)
end# 假设数据x已经给定
x = randn(100)  # 生成100个标准正态分布的随机数作为示例数据# 初始参数猜测
initial_θ = [mean(x), var(x)]# 使用优化算法寻找最大似然估计值
result = optimize(θ -> -log_likelihood(θ, x), initial_θ)# 注意:这里我们使用了-log_likelihood,因为optimize函数默认是寻找最小值,而我们需要最大值# 输出结果
estimated_μ, estimated_σ² = Optim.minimizer(result)
println("Estimated μ: $estimated_μ")
println("Estimated σ²: $estimated_σ²")

请注意,上面的Julia代码是一个简化的示例,并未直接针对正态分布的最大似然估计进行优化。在实际应用中,您可能需要根据具体的概率模型和数据进行适当的修改。此外,optimize函数的选择(如上例中的默认优化器)也可能需要根据问题的复杂性进行调整。

参考文献

  1. 文心一言

http://www.ppmy.cn/devtools/114927.html

相关文章

【L1.第六章】Appium 如何定位与页面等待实战

PythonAppiumPytest 自动化测试教程 1、App 自动化应用控制1.1、启动1.2、关闭 2、常见控件定位方法2.1、控件定位方式2.2、控件查找方法 find_elements & find_element2.3、常用定位方式 3、 强制等待与隐式等待3.1、强制等待3.2、隐式等待3.3、显式等待 1、App 自动化应用…

我Github的问题解决了!

看的这篇,解决使用git时遇到Failed to connect to github.com port 443 after 21090 ms: Couldn‘t connect to server_git couldnt connect to server-CSDN博客 之前想推送的能推送了,拉取的也能取了。 一、如果是在挂着梯子的情况下拉取或者推送代码…

北银金科:北京银行“金融操作系统”建设项目

在数字经济的背景下,金融服务体系以数据为关键生产要素、以科技为核心生产工具、以平台生产为主要生产方式,需要一个类似于计算机操作系统的金融操作系统,向下对接大量设备、海量数据,向上支撑金融数字化转型的快速开发与部署,实现数据的可信共享、资源的合理配置、服务的…

黑神话悟空mac可以玩吗

黑神话悟空mac上能不能玩对于苹果玩家来说很重要,那么黑神话悟空mac可以玩吗?目前是玩不了了,没有针对ios系统的版本,只能之后在云平台上找找了,大家可以再观望下看看。 黑神话悟空mac可以玩吗 ‌使用CrossOver‌&…

Vue.js props 子组件可以从父组件接收数据(通过 props)并可以向父组件发送事件(通过 $emit)

父子组件之间可以通过事件和 props 进行通信,但通常是单向的:父组件向子组件传递数据(props),子组件向父组件发送事件($emit)。 方式 父组件传递数据给子组件: 使用 props。 子组件通知父组件…

Python | Leetcode Python题解之第412题Fizz Buzz

题目: 题解: class Solution:def fizzBuzz(self, n: int) -> List[str]:ans []for i in range(1, n 1):s ""if i % 3 0:s "Fizz"if i % 5 0:s "Buzz"if s "":s str(i)ans.append(s)return ans

SSMP+ajax实现广告系统的分页效果

文章目录 1.案例需求2.编程思路3.案例源码4.小结 1.案例需求 使用SSMPajax实现广告系统的分页效果,效果图如下: 2.编程思路 mapper层:定义一个接口,继承自BaseMapper,指定泛型为AdvInfo,这样MyBatis Pl…

Maven版本号管理

背景 A,B项目依赖C项目,开发时候C项目使用快照版本,发布前修改为正式版本号,但是每次都需要ABC项目修改代码,有没有不修改代码的实现方式? 方案1: 打包时动态修改 可以使用 Maven 的 Profiles 和 Proper…