逻辑回归的损失函数(或称为代价函数)是用于衡量模型预测结果和真实结果之间差距的一个函数。它通常采用对数似然损失函数(Log-Loss),也称为交叉熵损失函数(Cross-Entropy Loss)。我们通过最大化似然函数来推导它,并将其转化为最小化损失函数的形式。
1. 逻辑回归的目标
逻辑回归是一种用于二分类任务的线性模型,它的目标是估计给定输入特征 $x$ 属于类 1 的概率 P(y=1∣x)P(y=1 |x)P(y=1∣x)。
给定一个输入xxx,逻辑回归模型的输出是一个概率值,表示属于类 1 的概率:
hθ(x)=P(y=1∣x)=11+e−θTxh_{\theta}(\mathbf{x}) = P(y=1 | \mathbf{x}) = \frac{1}{1 + e^{-\theta^T \mathbf{x}}}hθ(x)=P(y=1∣x)=1+e−θTx1
其中,θ\thetaθ 是模型的参数向量,θTx\theta^T \mathbf{x}θTx 是输入特征的线性组合。
2. 似然函数
在逻辑回归中,我们希望通过最大化似然函数来找到最优参数 θ\thetaθ。对于一组训练数据 { (xi,yi)}\{ (\mathbf{x}_i, y_i) \}{(xi,yi)},每个样本 xi\mathbf{x}_ixi 对应的真实标签 yiy_iyi 是 0 或 1。
假设所有样本是独立同分布的,整个数据集的似然函数可以表示为:
L(θ)=∏i=1mP(yi∣xi;θ)L(\theta) = \prod_{i=1}^m P(y_i | \mathbf{x}_i; \theta)L(θ)=∏i=1mP(yi∣xi;θ)
根据yiy_iyi 的取值(0 或 1),我们可以写成:
L(θ)=∏i=1mhθ(xi)yi(1−hθ(xi))1−yiL(\theta) = \prod_{i=1}^m h_{\theta}(\mathbf{x}_i)^{y_i} (1 - h_{\theta}(\mathbf{x}_i))^{1 - y_i}L(θ)=∏i=1mhθ(xi)yi(1−hθ(xi))1−yi
这个公式表示,当 yi=1y_i = 1yi=1 时,选择 hθ(xi)h_{\theta}(\mathbf{x}_i)hθ(xi),而当 yi=0y_i = 0yi=0 时,选择 1−hθ(xi)1 - h_{\theta}(\mathbf{x}_i)1−hθ(xi)。
3. 对数似然函数
由于似然函数是多个概率的连乘,直接求解比较困难。为简化计算,我们取对数(因为对数函数是单调递增的,最大化对数似然等价于最大化似然函数本身):
ℓ(θ)=logL(θ)=∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]\ell(\theta) = \log L(\theta) = \sum_{i=1}^m \left[ y_i \log h_{\theta}(\mathbf{x}_i) + (1 - y_i) \log (1 - h_{\theta}(\mathbf{x}_i)) \right]ℓ(θ)=logL(θ)=∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
这就是对数似然函数。我们的目标是最大化它,即: maxθℓ(θ)\max_{\theta} \ell(\theta)maxθℓ(θ)
为了方便,我们可以将最大化对数似然函数转化为最小化它的负对数似然函数,这样问题就转化为一个最小化问题:
J(θ)=−ℓ(θ)=−∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]J(\theta) = - \ell(\theta) = - \sum_{i=1}^m \left[ y_i \log h_{\theta}(\mathbf{x}_i) + (1 - y_i) \log (1 - h_{\theta}(\mathbf{x}_i)) \right]J(θ)=−ℓ(θ)=−∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
这个 J(θ)J(\theta)J(θ) 就是逻辑回归的损失函数。
4. 我们来详细推导:
ℓ(θ)=logL(θ)=∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]\ell(\theta) = \log L(\theta) = \sum_{i=1}^m \left[ y_i \log h_{\theta}(\mathbf{x}_i) + (1 - y_i) \log (1 - h_{\theta}(\mathbf{x}_i)) \right]ℓ(θ)=logL(θ)=∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
1. 取对数
由于似然函数是多个概率的连乘形式,直接优化这种乘法形式的函数在计算上比较复杂。我们可以通过对数变换将乘法转换为加法,使得优化问题更容易处理。具体来说,对似然函数 ( L(\theta) ) 取对数,得到对数似然函数(log-likelihood function):
ℓ(θ)=logL(θ)\ell(\theta) = \log L(\theta)ℓ(θ)=logL(θ)
将似然函数代入,取对数:
ℓ(θ)=log(∏i=1mhθ(xi)yi⋅(1−hθ(xi))1−yi)\ell(\theta) = \log \left( \prod_{i=1}^{m} h_{\theta}(\mathbf{x}_i)^{y_i} \cdot (1 - h_{\theta}(\mathbf{x}_i))^{1 - y_i} \right)ℓ(θ)=log(∏i=1mh