逻辑回归极大似然估计的本质
时间: 2023-11-21 11:50:43 浏览: 85
逻辑回归是一种二分类模型,其本质是通过极大似然估计来求解模型参数。具体来说,假设样本的标签为 $y_i \in \{0,1\}$,则对于一个输入样本 $x_i$,其属于类别 $1$ 的概率可以表示为:
$$
P(y_i=1|x_i;\theta) = \frac{1}{1+\exp(-\theta^Tx_i)}
$$
其中 $\theta$ 是模型参数。对于一个训练集 $\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}$,我们可以构建其似然函数:
$$
L(\theta) = \prod_{i=1}^n P(y_i|x_i;\theta)^{y_i}(1-P(y_i|x_i;\theta))^{1-y_i}
$$
对似然函数取对数,得到对数似然函数:
$$
l(\theta) = \sum_{i=1}^n [y_i\log P(y_i|x_i;\theta) + (1-y_i)\log(1-P(y_i|x_i;\theta))]
$$
我们的目标是最大化对数似然函数,即:
$$
\max_{\theta} l(\theta)
$$
可以使用梯度上升法或牛顿法等优化算法求解。
相关问题
最大似然估计到交叉熵损失
### 最大似然估计推导交叉熵损失
在机器学习中,最小化交叉熵损失函数本质上是对模型参数进行最大似然估计[^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)
```
逻辑回归分类模型的引入
逻辑回归是一种广泛应用于二分类问题的线性模型,它的名字来源于其输出的概率形式基于sigmoid函数,这是一种S形曲线,用于将连续数值转换到0到1之间的概率估计。在分类模型中,逻辑回归特别适用于变量之间存在线性关系的情况,并且对异常值相对鲁棒。
逻辑回归的引入主要基于以下几个原因:
1. 简单性和解释性:逻辑回归的数学模型直观易懂,它的系数可以直接解读为特征对于预测目标的影响程度。
2. 准确性和效率:对于许多小规模数据集,逻辑回归能够提供较好的预测效果,并且计算速度快。
3. 统计学基础:它本质上是一个广义线性模型,可以扩展到更复杂的链接函数和误差结构。
逻辑回归的主要流程是:
1. 数据准备:收集输入特征和目标变量。
2. 模型设定:假设目标变量是对某个线性组合的函数,加上一个截距项,经过sigmoid函数映射成0到1的概率。
3. 参数估计:通过最大似然估计或梯度下降法找到最优的模型参数,使得模型预测结果最接近实际标签。
4. 验证与评估:使用交叉验证方法评估模型在新数据上的性能,比如准确率、精确率、召回率等指标。
阅读全文
相关推荐
















