学习笔记三十:极大似然估计

1. 参数估计与极大似然

1.1 从类条件概率到参数估计

  • 任务背景 :在分类问题中,我们需要估计类条件概率分布 P(x∣c)P(x\mid c)P(x∣c)。
  • 参数化假设 :先假定 P(x∣c)P(x\mid c)P(x∣c) 具有某种确定的概率分布形式,其形状由一个参数向量 θc\theta_cθc 决定,记作 P(x∣θc)P(x\mid\theta_c)P(x∣θc)。
  • 训练目标 :利用训练集 DDD 来估计未知的参数 θc\theta_cθc,这个过程称为参数估计

1.2 频率派与贝叶斯派的视角

  • 频率主义:认为参数虽然未知,但客观存在,可以通过优化某个准则来"确定"它的取值;极大似然估计属于这一派的经典方法。
  • 贝叶斯派 :把参数看成随机变量,对其假设一个先验分布,然后基于观测数据计算参数的后验分布

2. 极大似然估计方法

2.1 基本思想

令 DcD_cDc 表示训练集 DDD 中属于第 ccc 类的样本集合,假设这些样本是独立同分布的。

似然函数 :给定参数 θc\theta_cθc,观测到数据集 DcD_cDc 的概率,等于所有样本概率的乘积。

极大似然估计的思想 :在所有可能的 θc\theta_cθc 中,选择那个能使"已经观测到的这批数据 DcD_cDc"出现的概率最大的参数。

2.2 对数似然

直接对大量小概率相乘容易造成数值下溢,因此通常对似然取对数,得到对数似然。由于对数函数是单调递增的,最大化对数似然与最大化似然等价。

参数的极大似然估计为:

θ^c=arg⁡max⁡θcLL(θc)\hat{\theta}c = \arg\max{\theta_c} LL(\theta_c)θ^c=argθcmaxLL(θc)

求解步骤

  1. 在给定的概率分布假设下写出对数似然函数;
  2. 对参数求偏导并令导数为 0,解出候选解;
  3. 检查该解是否对应对数似然的最大值点。

3. 正态分布下的极大似然估计

3.1 模型假设

在连续属性情形下,若假设类条件概率密度服从正态分布 N(μc,σc2)\mathcal{N}(\mu_c,\sigma_c^2)N(μc,σc2),则需要估计的参数为均值 μc\mu_cμc 和方差 σc2\sigma_c^2σc2。

3.2 MLE 结果

对属于第 ccc 类的样本集合 DcD_cDc,极大似然估计得到:

  • 均值参数 :就是该类样本的样本均值(所有样本的平均值)
  • 方差参数 :就是样本关于均值的平方偏差的平均值(样本方差)

在离散属性情形下,采用类似思路:每个取值的概率的极大似然估计就是"该取值出现的频数 / 样本总数"。

4. 方法特点与注意事项

  • 优点:给定分布形式后,通过优化明确的目标函数即可得到参数,计算相对简单。
  • 局限:估计结果高度依赖于事先假定的概率分布形式;如果假设与真实数据分布相差较大,估计结果可能偏离真实值。
  • 实践启示:需要在建模之前充分利用对任务本身的经验知识来选择分布形式,而不是完全凭"猜测"。

5. 小结

  • 本质:频率主义框架下的参数估计方法,通过最大化观测数据的似然(或对数似然)来选取参数。
  • 操作:写出似然 → 取对数 → 对参数求导并令导数为 0 → 得到极大似然解。
  • 直观结果:在正态分布等常见模型中,极大似然给出样本均值、样本方差等统计量。
  • 关键前提:分布形式假设是否合理,往往比后续求解过程本身更重要。
相关推荐
renhongxia12 分钟前
如何基于知识图谱进行故障原因、事故原因推理,需要用到哪些算法
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·知识图谱
●VON19 分钟前
React Native for OpenHarmony:2048 小游戏的开发与跨平台适配实践
javascript·学习·react native·react.js·von
CV@CV24 分钟前
2026自动驾驶商业化提速——从智驾平权到Robotaxi规模化落地
人工智能·机器学习·自动驾驶
山岚的运维笔记25 分钟前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
ZH154558913128 分钟前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter
xcLeigh1 小时前
Python入门:Python3 requests模块全面学习教程
开发语言·python·学习·模块·python3·requests
xcLeigh1 小时前
Python入门:Python3 statistics模块全面学习教程
开发语言·python·学习·模块·python3·statistics
GHL2842710901 小时前
分析式AI学习
人工智能·学习·ai编程
lpruoyu2 小时前
【Android第一行代码学习笔记】Android架构_四大组件_权限_持久化_通知_异步_服务
android·笔记·学习
野犬寒鸦2 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法