极大似然估计与机器学习

复习概统的时候突然发现好像极大似然估计MLE与机器学习的数据驱动非常相似,都是采样样本然后估计模型参数。貌似,后知后觉的才意识到极大似然估计就是机器学习有效的数学保证

下面以拟合线性分布的最小二乘与分类问题为例推到以下如何从似然函数推导出MSE损失与交叉熵损失

一、线性回归的最小二乘法

1. 概率模型设定

假设数据由线性模型生成,且观测噪声服从 正态分布:
y = w T x + ϵ , ϵ ∼ N ( 0 , σ 2 ) y = \mathbf{w}^T \mathbf{x} + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma^2) y=wTx+ϵ,ϵ∼N(0,σ2)

则给定输入 x \mathbf{x} x 时, y y y 的条件概率密度为:
p ( y ∣ x ; w ) = 1 2 π σ 2 exp ⁡ ( − ( y − w T x ) 2 2 σ 2 ) p(y | \mathbf{x}; \mathbf{w}) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(y - \mathbf{w}^T \mathbf{x})^2}{2\sigma^2} \right) p(y∣x;w)=2πσ2 1exp(−2σ2(y−wTx)2)

均值即为 ( y − w T x ) 2 (y - \mathbf{w}^T \mathbf{x})^2 (y−wTx)2

2. 似然函数与对数似然

对于独立同分布的 N N N 个样本 { ( x i , y i ) } i = 1 N \{(\mathbf{x}i, y_i)\}{i=1}^N {(xi,yi)}i=1N,似然函数为:
L ( w ) = ∏ i = 1 N p ( y i ∣ x i ; w ) L(\mathbf{w}) = \prod_{i=1}^N p(y_i | \mathbf{x}_i; \mathbf{w}) L(w)=i=1∏Np(yi∣xi;w)

取对数得 对数似然函数:
ln ⁡ L ( w ) = − N 2 ln ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 \ln L(\mathbf{w}) = -\frac{N}{2} \ln(2\pi\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^N (y_i - \mathbf{w}^T \mathbf{x}_i)^2 lnL(w)=−2Nln(2πσ2)−2σ21i=1∑N(yi−wTxi)2

3. 极大似然估计等价于最小二乘法

• 最大化对数似然等价于最小化 负对数似然。

• 忽略与 w \mathbf{w} w 无关的常数项,优化目标简化为:

min ⁡ w ∑ i = 1 N ( y i − w T x i ) 2 \min_{\mathbf{w}} \sum_{i=1}^N (y_i - \mathbf{w}^T \mathbf{x}_i)^2 wmini=1∑N(yi−wTxi)2

结论:最小二乘法的损失函数是高斯噪声假设下的极大似然估计结果。


二、分类问题的交叉熵损失

1. 概率模型设定(以二分类为例)

假设标签 y ∈ { 0 , 1 } y \in \{0,1\} y∈{0,1}服从 伯努利分布,其概率由逻辑函数(sigmoid)给出:
p ( y ∣ x ; w ) = y ^ y ( 1 − y ^ ) 1 − y , y ^ = σ ( w T x ) = 1 1 + e − w T x p(y | \mathbf{x}; \mathbf{w}) = \hat{y}^y (1 - \hat{y})^{1-y}, \quad \hat{y} = \sigma(\mathbf{w}^T \mathbf{x}) = \frac{1}{1 + e^{-\mathbf{w}^T \mathbf{x}}} p(y∣x;w)=y^y(1−y^)1−y,y^=σ(wTx)=1+e−wTx1

其中 y ^ \hat{y} y^ 是模型预测的 y = 1 y=1 y=1 的概率。

2. 似然函数与对数似然

对于 N N N个独立样本,似然函数为:
L ( w ) = ∏ i = 1 N y ^ i y i ( 1 − y ^ i ) 1 − y i L(\mathbf{w}) = \prod_{i=1}^N \hat{y}_i^{y_i} (1 - \hat{y}_i)^{1-y_i} L(w)=i=1∏Ny^iyi(1−y^i)1−yi

取对数得 对数似然函数:
ln ⁡ L ( w ) = ∑ i = 1 N [ y i ln ⁡ y ^ i + ( 1 − y i ) ln ⁡ ( 1 − y ^ i ) ] \ln L(\mathbf{w}) = \sum_{i=1}^N \left[ y_i \ln \hat{y}_i + (1-y_i) \ln (1 - \hat{y}_i) \right] lnL(w)=i=1∑N[yilny^i+(1−yi)ln(1−y^i)]

3. 极大似然估计等价于最小化交叉熵

• 最大化对数似然等价于最小化 负对数似然:

min ⁡ w − ∑ i = 1 N [ y i ln ⁡ y ^ i + ( 1 − y i ) ln ⁡ ( 1 − y ^ i ) ] \min_{\mathbf{w}} -\sum_{i=1}^N \left[ y_i \ln \hat{y}_i + (1-y_i) \ln (1 - \hat{y}_i) \right] wmin−i=1∑N[yilny^i+(1−yi)ln(1−y^i)]

• 这正是 二元交叉熵损失(Binary Cross-Entropy Loss)。

结论:交叉熵损失是伯努利分布假设下的极大似然估计结果。


三、通用框架与扩展

1. 核心思想

• 概率建模:根据问题类型选择合适的概率分布:

• 回归问题 → 高斯分布(连续输出)。

• 分类问题 → 伯努利/多项分布(离散输出)。

• 损失函数 = 负对数似然:

L ( w ) = − ln ⁡ L ( w ) \mathcal{L}(\mathbf{w}) = -\ln L(\mathbf{w}) L(w)=−lnL(w)

2. 其他常见例子

问题类型 分布假设 损失函数
多分类(K类) 多项分布(Softmax) 交叉熵损失
泊松回归 泊松分布 负对数泊松似然
鲁棒回归 拉普拉斯分布 绝对误差(L1损失)

3. 代码实现示例

(1) 最小二乘法(PyTorch)

python 复制代码
import torch

# 定义模型和损失
model = torch.nn.Linear(in_features=2, out_features=1)
criterion = torch.nn.MSELoss()  # 等价于高斯MLE

# 前向计算
y_pred = model(X)
loss = criterion(y_pred, y)

(2) 交叉熵损失(逻辑回归)

python 复制代码
import torch

# 定义模型和损失
model = torch.nn.Linear(in_features=2, out_features=1)
criterion = torch.nn.BCEWithLogitsLoss()  # 等价于伯努利MLE

# 前向计算
logits = model(X)
loss = criterion(logits, y)

四、总结

• 最小二乘法和交叉熵损失的本质:

它们都是通过假设数据的生成分布(高斯/伯努利),然后对参数进行极大似然估计导出的。

• 机器学习与概率论的桥梁:

损失函数的设计可以统一理解为对数据分布假设的统计推断,这使得概率论成为理解算法背后原理的有力工具。

理解这一框架后,你可以轻松推广到其他分布假设(如泊松回归、鲁棒回归等),并设计新的损失函数来匹配具体问题。

相关推荐
搏博13 分钟前
无人机集成毫米波雷达与双目视觉的融合感知系统深度解析
python·深度学习·学习·机器学习·动态规划·无人机
IT古董26 分钟前
【漫话机器学习系列】269.K-Means聚类算法(K-Means Clustering)
算法·机器学习·kmeans
兔兔爱学习兔兔爱学习29 分钟前
什么是 Agent 的 Message
人工智能·python
兔兔爱学习兔兔爱学习31 分钟前
Memory模块是agent的一个关键组件
人工智能·python
A林玖1 小时前
【机器学习】支持向量机(SVM)
人工智能·机器学习·支持向量机
heart000_11 小时前
从0到1打造AI Copilot:用SpringBoot + ChatGPT API实现智能开发助手
人工智能·spring boot·copilot
Oliverro2 小时前
AI智能分析网关V4玩手机检测算法精准管控人员手机行为,搭建智慧化安防监管体系
网络·人工智能
山顶听风2 小时前
分类算法 Kmeans、KNN、Meanshift 实战
机器学习·分类·kmeans
Robot2512 小时前
「华为」持续加码人形机器人赛道!
大数据·人工智能·科技·华为·机器人·自动驾驶
水花花花花花2 小时前
目标检测:YOLO 模型详解
人工智能·计算机视觉·目标跟踪