由极大似然估计推导损失函数——线性回归

一般的线性回归是由 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn)预测 y y y,损失函数采用均方差函数
M S E = 1 m ∑ i = 1 n ∥ y ^ 2 − y 2 ∥ 2 MSE=\frac{1}{m}\sum_{i=1}^{n}\left\|\hat{y} ^2-y^2\right\|^2 MSE=m1i=1ny^2y22

利用极大似然估计进行推导

想象输入同样的X,预测值 y ^ 2 \hat{y} ^2 y^2有很多个。输入同样的X,普通线性回归的预测值只有一个,这里假设预测值服从某个分布。这里采用 p ( y ∣ X ) p(y|X) p(yX)表示 y y y出现的概率。
线性回归函数为
y = θ T x + ϵ y=\theta^Tx+\epsilon y=θTx+ϵ
假设 p ( y ∣ X ) p(y|X) p(yX)服从正态分布,即
p ( y ∣ X ) = N ( y ; 0 , σ 2 ) p(y|X)=N(y;0,\sigma^2) p(yX)=N(y;0,σ2)
也即
ϵ ∼ N ( y ; 0 , σ 2 ) \epsilon\sim{N(y;0,\sigma^2)} ϵN(y;0,σ2)
似然函数为
L ( θ ) = ∏ i = 1 m p ( ϵ ) = ∏ i = 1 m 1 2 π σ e − ϵ 2 2 σ 2 L(\theta)=\prod_{i=1}^{m}p(\epsilon) =\prod_{i=1}^{m}\frac{1}{\sqrt {2\pi}\sigma}e^{-\frac{\epsilon^2}{2\sigma^2}} L(θ)=i=1mp(ϵ)=i=1m2π σ1e2σ2ϵ2
= ( 1 2 π σ ) m e − ∑ i = 1 m ϵ 2 2 σ 2 =(\frac{1}{\sqrt{2\pi}\sigma})^{m}e^{-\sum{_{i=1}^{m}\frac{\epsilon^2}{2\sigma^2}}} =(2π σ1)mei=1m2σ2ϵ2
取对数可以得到
l n L ( θ ) = − m l n ( 2 π ) − m l n ( σ ) − ∑ i = 1 m ϵ 2 2 σ 2 lnL(\theta)=-mln(\sqrt{2\pi})-mln(\sigma)-\sum_{i=1}^{m}\frac{\epsilon^2}{2\sigma^2} lnL(θ)=mln(2π )mln(σ)i=1m2σ2ϵ2

= − m 2 l n ( 2 π ) − m l n ( σ ) − 1 2 σ 2 ∑ i = 1 m ( y − θ T X ) =-\frac{m}{2}ln(2\pi)-mln(\sigma)-\frac{1}{2\sigma^2}\sum_{i=1}^{m}(y-\theta^{T}X) =2mln(2π)mln(σ)2σ21i=1m(yθTX)
所以有
l o s s = min ⁡ θ − l n L ( θ ) = 1 2 ∑ i = 1 m ( y − θ T X ) loss=\min\limits_{\theta}{-lnL(\theta)}\\ =\frac{1}{2}\sum_{i=1}^{m}(y-\theta^{T}X) loss=θminlnL(θ)=21i=1m(yθTX)
由上式可以看出,利用极大似然估计得出的对数似然函数与均方差相似,最大化对数似然与最小化均方差会得到相同的参数。

结论

线性回归:假定误差项 ϵ ∼ N ( y ; 0 , σ 2 ) \epsilon\sim{N(y;0,\sigma^2)} ϵN(y;0,σ2),或者预测项 y ∼ N ( y ; μ , σ 2 ) y\sim{N(y;\mu,\sigma^2)} yN(y;μ,σ2)
最小化负的对数似然等价于最小化均方误差。

### 最大估计推导交叉熵损失 在机器学习中,最小化交叉熵损失函数本质上是对模型参数进行最大估计[^1]。为了理解这一过程,考虑一个简单的二分类问题,在该场景下应用逻辑回归。 #### 逻辑回归的最大估计 假设有一个数据集 \(\{(x^{(i)}, y^{(i)})\}_{i=1}^m\) ,其中 \(x^{(i)}\) 是输入特征向量而 \(y^{(i)}\) 表示对应的标签 (0 或者 1),那么对于给定的权重参数 \(\theta\) 和偏置项 \(b\) 的线性组合: \[ z = w^\top x + b \] 通过 Sigmoid 函数转换成预测概率: \[ h_\theta(x) = g(z)=\frac{1}{1+\exp(-z)} \] 这里 \(g(z)\) 就是Sigmoid激活函数。此时,如果把 \(h_\theta(x)\) 当作事件发生的条件概率,则有: 当 \(y=1\) 时, \[ P(y|x;\theta )=h_{\theta}(x)^{y}=h_{\theta}(x) \] 当 \(y=0\) 时, \[ P(y|x;θ)=(1−h_{θ}(x))^{1-y}=(1-h_{θ}(x)) \] 因此联合起来可得单个样本的函数为: \[ L(h_{\theta}(x),y)=h_{\theta}(x)^{y}\cdot(1-h_{\theta}(x))^{1-y} \] 整个训练集中所有样例的函数即为各个独立同分布样本值相乘的结果,取自对数后成为对数函数: \[ l(\theta)=\sum_{i=1}^{n}[y^{(i)}\log(h_{\theta}(x^{(i)}))+(1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))] \] 最大化上述表达式的目的是找到最佳拟合的数据生成机制所对应的最佳参数设置;而实践中更常做的是求解其负形式——也就是最小化负对数(NLL): \[ J(\theta)=-l(\theta)=-\left[\sum_{i=1}^{n}y^{(i)}\log(h_{\theta}(x^{(i)}))+(1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))\right] \] 注意到这里的 NLL 形式实际上已经非常接近于常见的二元交叉熵定义了。事实上这就是所谓的“交叉熵损失”。 #### 交叉熵损失的形式 对于二分类情况下的交叉熵损失可以写作如下形式: \[ H(p,q)=-p\log(q)-(1-p)\log(1-q) \] 对比之前提到过的NLL公式可以看出二者几乎是完全一致的,只是符号稍有不同而已。具体来说,如果我们令真实的标签分布 p 对应于实际观测到的目标变量 yi 而 q 则表示由当前模型给出的预测输出 hi(xi),那么上面两个公式就变得一模一样了。 综上所述,最小化交叉熵损失就是在执行最大估计的操作,因为这样做相当于试图让我们的模型尽可能好地重现观察到的数据模式,从而达到优化的目的[^3]。 ```python import numpy as np def sigmoid(z): return 1 / (1 + np.exp(-z)) def binary_cross_entropy_loss(y_true, y_pred): epsilon = 1e-15 # 防止 log(0) y_pred_clipped = np.clip(y_pred, epsilon, 1 - epsilon) loss = -(y_true * np.log(y_pred_clipped) + (1 - y_true) * np.log(1 - y_pred_clipped)) return np.mean(loss) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值