1. 简介

逻辑回归(Logistic Regression)是分类任务中最常用的模型之一,尤其是二分类问题。它通过 Sigmoid 函数将线性输出映射到 [0, 1] 区间,从而表示样本属于某一类别的概率。

在训练逻辑回归模型时,我们需要定义一个成本函数(Cost Function)来衡量模型预测值与真实标签之间的差距。然后使用梯度下降(Gradient Descent)算法来最小化这个成本函数,从而找到最优的模型参数。

本文将从逻辑回归的基本原理出发,推导其成本函数和梯度下降的更新规则,并解释为何不能直接使用线性回归中的均方误差(MSE)。


2. 逻辑回归原理

逻辑回归用于解决离散输出变量的分类问题,最常见的场景是二分类(Binary Classification),输出只有 0 或 1。

我们使用Sigmoid 函数(又称 Logistic 函数)来进行映射:

$$ g(z) = \frac{1}{1 + e^{-z}} = \frac{e^z}{1 + e^z} $$

这个函数将任意实数压缩到 (0, 1) 区间,非常适合用于表示概率。例如:

  • 输入为 0 时,输出为 0.5;
  • 输入趋近于正无穷时,输出趋近于 1;
  • 输入趋近于负无穷时,输出趋近于 0。

在逻辑回归中,我们定义假设函数(Hypothesis)为:

$$ h_{\theta}(x) = \frac{1}{1 + e^{-\theta^T x}} $$

其中,$\theta$ 是参数向量,$x$ 是输入特征向量。这个函数的输出值可以理解为:

$$ P(y=1|\theta, x) = h_{\theta}(x) $$

即在给定 $\theta$ 和 $x$ 的条件下,输出为 1 的概率。


3. 成本函数(Cost Function)

为了训练模型,我们需要一个衡量模型预测准确度的函数,这就是成本函数

线性回归中,我们通常使用均方误差(MSE)作为成本函数。但逻辑回归如果也使用 MSE,会导致成本函数非凸(non-convex),存在多个局部最小值,无法使用梯度下降找到全局最优解。

因此,我们使用对数损失函数(Log Loss)来定义逻辑回归的成本函数。

成本函数定义如下:

对于单个样本 $(x^{(i)}, y^{(i)})$,定义成本函数为:

$$ cost(h_{\theta}(x^{(i)}), y^{(i)}) = \begin{cases}

  • \log(h_{\theta}(x^{(i)})) & \text{if } y^{(i)} = 1 \
  • \log(1 - h_{\theta}(x^{(i)})) & \text{if } y^{(i)} = 0 \end{cases} $$

可以合并为一个公式:

$$ cost(h_{\theta}(x^{(i)}), y^{(i)}) = - y^{(i)} \log(h_{\theta}(x^{(i)})) - (1 - y^{(i)}) \log(1 - h_{\theta}(x^{(i)})) $$

对于整个训练集(共 $m$ 个样本),成本函数为:

$$ J(\theta) = - \frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_{\theta}(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_{\theta}(x^{(i)})) \right] $$

⚠️ 这个函数是凸函数,保证只有一个全局最小值,非常适合使用梯度下降进行优化。


4. 使用梯度下降最小化成本函数

梯度下降是一种迭代优化算法,通过不断调整参数 $\theta$ 来最小化成本函数 $J(\theta)$。

梯度下降更新规则:

$$ \theta_j \gets \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta) $$

其中,$\alpha$ 是学习率(Learning Rate),控制每次更新的步长。

成本函数对 $\theta_j$ 的偏导数为:

$$ \frac{\partial}{\partial \theta_j} J(\theta) = \frac{1}{m} \sum_{i=1}^{m} \left( h_{\theta}(x^{(i)}) - y^{(i)} \right) x_j^{(i)} $$

代入梯度下降公式,得到最终的参数更新规则:

$$ \theta_j \gets \theta_j - \alpha \cdot \frac{1}{m} \sum_{i=1}^{m} \left( h_{\theta}(x^{(i)}) - y^{(i)} \right) x_j^{(i)} $$

✅ 这个更新规则和线性回归中使用 MSE 时的梯度下降更新公式形式上是一样的。

⚠️ 区别在于: 逻辑回归中的 $h_{\theta}(x)$ 是 Sigmoid 函数,而非线性函数。


5. 总结

  • 逻辑回归是用于二分类的经典模型,使用 Sigmoid 函数将线性结果映射为概率。
  • 成本函数使用对数损失函数(Log Loss),避免非凸问题,确保梯度下降能找到全局最优。
  • 梯度下降更新规则与线性回归类似,但模型输出不同。
  • 训练过程需要迭代更新参数,直到成本函数收敛。

逻辑回归虽然简单,但在分类任务中非常实用,理解其数学推导对掌握更复杂的模型(如神经网络)也有很大帮助。


原始标题:Gradient Descent Equation in Logistic Regression