极大似然估计与机器学习

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

四、总结

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

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

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

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

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

相关推荐
小白狮ww3 分钟前
RStudio 教程:以抑郁量表测评数据分析为例
人工智能·算法·机器学习
沧海一粟青草喂马24 分钟前
抖音批量上传视频怎么弄?抖音矩阵账号管理的专业指南
大数据·人工智能·矩阵
demaichuandong26 分钟前
详细讲解锥齿轮丝杆升降机的加工制造工艺
人工智能·自动化·制造
理智的煎蛋1 小时前
CentOS/Ubuntu安装显卡驱动与GPU压力测试
大数据·人工智能·ubuntu·centos·gpu算力
知来者逆1 小时前
视觉语言模型应用开发——Qwen 2.5 VL模型视频理解与定位能力深度解析及实践指南
人工智能·语言模型·自然语言处理·音视频·视觉语言模型·qwen 2.5 vl
IT_陈寒1 小时前
Java性能优化:10个让你的Spring Boot应用提速300%的隐藏技巧
前端·人工智能·后端
Android出海1 小时前
Android 15重磅升级:16KB内存页机制详解与适配指南
android·人工智能·新媒体运营·产品运营·内容运营
cyyt1 小时前
深度学习周报(9.1~9.7)
人工智能·深度学习
聚客AI1 小时前
🌸万字解析:大规模语言模型(LLM)推理中的Prefill与Decode分离方案
人工智能·llm·掘金·日新计划
max5006001 小时前
图像处理:实现多图点重叠效果
开发语言·图像处理·人工智能·python·深度学习·音视频