极大似然估计与机器学习

复习概统的时候突然发现好像极大似然估计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)

四、总结

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

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

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

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

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

相关推荐
chenquan31 分钟前
ArkFlow 流处理引擎 0.4.0-rc1 发布
人工智能·后端·github
Se7en25838 分钟前
使用 Higress AI 网关代理 vLLM 推理服务
人工智能
AI大模型技术社42 分钟前
PyTorch手撕CNN:可视化卷积过程+ResNet18训练代码详解
人工智能·神经网络
CSTechEi1 小时前
【IEEE/EI/Scopus检索】2025年第六届模式识别与数据挖掘国际会议 (PRDM 2025)
人工智能·数据挖掘·模式识别·ei学术会议
明明跟你说过2 小时前
FastChat 架构拆解:打造类 ChatGPT 私有化部署解决方案的基石
人工智能·语言模型·chatgpt·openai
Listennnn2 小时前
Text2SQL、Text2API基础
数据库·人工智能
钒星物联网3 小时前
256bps!卫星物联网极低码率语音压缩算法V3.0发布!
人工智能·语音识别
Listennnn3 小时前
迁移学习基础
人工智能·迁移学习
Ven%3 小时前
语言模型进化论:从“健忘侦探”到“超级大脑”的破案之旅
人工智能·语言模型·自然语言处理
tryCbest3 小时前
MoneyPrinterTurbo根据关键词自动生成视频
人工智能·ai