文章目录
- [1 逻辑回归基本概念](#1 逻辑回归基本概念)
- [2 Sigmoid函数:核心转换工具](#2 Sigmoid函数:核心转换工具)
-
- [2.1 Sigmoid函数公式](#2.1 Sigmoid函数公式)
- [2.2 作用解释](#2.2 作用解释)
- [3 逻辑回归模型](#3 逻辑回归模型)
-
- [3.1 预测函数](#3.1 预测函数)
- [3.2 概率解释](#3.2 概率解释)
- [3.3 决策边界](#3.3 决策边界)
- [4 参数估计:最大似然估计](#4 参数估计:最大似然估计)
-
- [4.1 似然函数](#4.1 似然函数)
- [4.2 构建似然函数](#4.2 构建似然函数)
- [4.3 对数似然函数](#4.3 对数似然函数)
- [4.4 损失函数](#4.4 损失函数)
- [5 参数求解:梯度下降](#5 参数求解:梯度下降)
-
- [5.1 梯度计算](#5.1 梯度计算)
- [5.2 参数更新公式](#5.2 参数更新公式)
- [6 多分类扩展:Softmax回归](#6 多分类扩展:Softmax回归)
-
- [6.1 Softmax函数](#6.1 Softmax函数)
- [6.2 另一种策略:OvR](#6.2 另一种策略:OvR)
- [6.3 Softmax特性](#6.3 Softmax特性)
1 逻辑回归基本概念
逻辑回归是一种用于分类问题的统计方法,特别是二分类问题。虽然名字中有"回归",但它解决的是分类任务。
核心区别:
- 线性回归:预测连续数值(如贷款额度)
- 逻辑回归:预测类别概率(如是否批准贷款)
算法选择原则:先尝试逻辑回归,再用复杂算法。简单有效的算法往往是首选。
2 Sigmoid函数:核心转换工具
2.1 Sigmoid函数公式
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1 + e^{-z}} g(z)=1+e−z1
-
z z z是线性组合 θ T x \theta^T x θTx的结果
-
定义域:任意实数( − ∞ -\infty −∞ 到 + ∞ +\infty +∞)
-
值域: [ 0 , 1 ] [0, 1] [0,1]区间
-
形状:S形曲线
- 当 z → + ∞ z → +\infty z→+∞ 时, e − z → 0 e^{-z} → 0 e−z→0,因此 g ( z ) → 1 g(z) → 1 g(z)→1
- 当 z → − ∞ z → -\infty z→−∞ 时, e − z → + ∞ e^{-z} → +\infty e−z→+∞,因此 g ( z ) → 0 g(z) → 0 g(z)→0
- 当 z = 0 z = 0 z=0 时, g ( 0 ) = 1 / ( 1 + 1 ) = 0.5 g(0) = 1/(1+1) = 0.5 g(0)=1/(1+1)=0.5
-
特殊点: g ( 0 ) = 0.5 g(0) = 0.5 g(0)=0.5
2.2 作用解释
将线性回归的输出 θ T x \theta^T x θTx(任意实数)转换为概率值(0到1之间),实现从回归到分类的转换。
3 逻辑回归模型
3.1 预测函数
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_\theta(x) = g(\theta^T x) = \frac{1}{1 + e^{-\theta^T x}} hθ(x)=g(θTx)=1+e−θTx1
其中: θ T x = θ 0 + θ 1 x 1 + ⋯ + θ n x n \theta^T x = \theta_0 + \theta_1 x_1 + \cdots + \theta_n x_n θTx=θ0+θ1x1+⋯+θnxn是特征的线性加权和, θ 0 \theta_0 θ0是偏置项(截距)。
3.2 概率解释
-
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y = 1 | x; \theta) = h_\theta(x) P(y=1∣x;θ)=hθ(x) → 属于正类的概率
-
P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y = 0 | x; \theta) = 1 - h_\theta(x) P(y=0∣x;θ)=1−hθ(x) → 属于负类的概率
3.3 决策边界
-
当 h θ ( x ) ≥ 0.5 h_\theta(x) \geq 0.5 hθ(x)≥0.5时,预测 y = 1 y = 1 y=1
-
当 h θ ( x ) < 0.5 h_\theta(x) < 0.5 hθ(x)<0.5时,预测 y = 0 y = 0 y=0
-
根据Sigmoid函数性质, h θ ( x ) ≥ 0.5 h_\theta(x) \geq 0.5 hθ(x)≥0.5 等价于 θ T x ≥ 0 \theta^T x ≥ 0 θTx≥0。因此,决策边界实际上是由方程 θ T x = 0 \theta^T x = 0 θTx=0定义的一个超平面
-
决策边界可以是非线性的,通过特征变换实现
-
虽然预测函数 h_θ(x)是非线性的(因为Sigmoid是非线性的),但决策边界本身在特征空间中是线性的。这意味着逻辑回归本质上是一个线性分类器。
-
非线性决策边界:可以通过特征工程(如添加多项式特征、交互项)使模型在原始特征空间中学习非线性的决策边界。例如,添加 x 1 2 x_1^2 x12, x 2 2 x_2^2 x22, x 1 x 2 x_1x_2 x1x2 等特征后, θ T x = 0 \theta^T x = 0 θTx=0 在原始 ( x 1 , x 2 ) (x_1, x_2) (x1,x2) 平面上可能表现为圆形或椭圆形。
4 参数估计:最大似然估计
4.1 似然函数
目标是找到一组参数 θ \theta θ,使得在这组参数下,当前观测到的训练数据出现的"可能性"最大。
通俗地说,就是找到让模型"最认可"这批数据的参数。
为了找到最佳参数 θ \theta θ,我们使用最大似然估计。
4.2 构建似然函数
对于单个样本 ( x i , y i ) (x_i, y_i) (xi,yi),模型预测其标签正确的概率为:
- 如果真实标签 y i = 1 y_i = 1 yi=1,则该概率为 h θ ( x i ) h_θ(x_i) hθ(xi)
- 如果真实标签 y i = 0 y_i = 0 yi=0,则该概率为 1 − h θ ( x i ) 1 - h_θ(x_i) 1−hθ(xi)
可以将这两个式子精炼地写为一个表达式:
P ( y i ∣ x i ; θ ) = ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i P(y_i | x_i; \theta) = (h_\theta(x_i))^{y_i} (1 - h_\theta(x_i))^{1 - y_i} P(yi∣xi;θ)=(hθ(xi))yi(1−hθ(xi))1−yi
假设所有m个样本独立同分布,则整个训练集的似然函数是每个样本概率的乘积:
似然函数:
L ( θ ) = ∏ i = 1 m P ( y i ∣ x i ; θ ) = ∏ i = 1 m ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i L(\theta) = \prod_{i=1}^m P(y_i | x_i; \theta) = \prod_{i=1}^m (h_\theta(x_i))^{y_i} (1 - h_\theta(x_i))^{1 - y_i} L(θ)=i=1∏mP(yi∣xi;θ)=i=1∏m(hθ(xi))yi(1−hθ(xi))1−yi
4.3 对数似然函数
连乘运算容易导致数值下溢,且不便求导。我们通常对其取自然对数,将乘积转化为求和,得到对数似然函数:
l ( θ ) = log L ( θ ) = ∑ i = 1 m [ y i log h θ ( x i ) + ( 1 − y i ) log ( 1 − h θ ( x i ) ) ] l(\theta) = \log L(\theta) = \sum_{i=1}^m [y_i \log h_\theta(x_i) + (1 - y_i) \log (1 - h_\theta(x_i))] l(θ)=logL(θ)=i=1∑m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
4.4 损失函数
最大似然估计的目标是最大化 l ( θ ) l(\theta) l(θ)。然而,在机器学习中,习惯将问题表述为最小化一个损失函数。
因此,取对数似然的负值并求平均,就得到了逻辑回归的损失函数:交叉熵损失(Cross-Entropy Loss),实现了将对数似然最大化转换为最小化的问题。
交叉熵损失函数:
J ( θ ) = − 1 m l ( θ ) = − 1 m ∑ i = 1 m [ y i log h θ ( x i ) + ( 1 − y i ) log ( 1 − h θ ( x i ) ) ] J(\theta) = -\frac{1}{m} l(\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] J(θ)=−m1l(θ)=−m1i=1∑m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
5 参数求解:梯度下降
5.1 梯度计算
计算损失函数 J ( θ ) J(θ) J(θ) 关于每个参数 θ j θ_j θj 的偏导数,得到梯度:
∂ ∂ θ j J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j \frac{\partial}{\partial \theta_j} J(\theta) = \frac{1}{m} \sum_{i=1}^m (h_\theta(x_i) - y_i) x_i^j ∂θj∂J(θ)=m1i=1∑m(hθ(xi)−yi)xij
直观理解:第 j j j 个参数的梯度,是所有样本的预测误差 ( h θ ( x i ) − y i ) (h_θ(x_i) - y_i) (hθ(xi)−yi) 与对应第 j j j 个特征值 x i j x_i^j xij 乘积的平均值。
5.2 参数更新公式
θ j = θ j − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j \theta_j = \theta_j - \alpha \frac{1}{m} \sum_{i=1}^m (h_\theta(x_i) - y_i) x_i^j θj=θj−αm1i=1∑m(hθ(xi)−yi)xij
其中:
-
α \alpha α:学习率
-
m m m:样本数量
-
这个形式与线性回归的梯度下降非常相似
6 多分类扩展:Softmax回归
6.1 Softmax函数
在二分类中,我们只需计算 P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x),因为 P ( y = 0 ∣ x ) = 1 − P ( y = 1 ∣ x ) P(y=0|x) = 1 - P(y=1|x) P(y=0∣x)=1−P(y=1∣x)。而在多分类中,我们需要为每一个类别 k k k 都计算一个概率。
首先,为每个类别 k k k 学习一组独立的参数 θ k θₖ θk,并计算其"得分": z k = θ k T x z_k = θₖᵀx zk=θkTx。
然后,使用 Softmax 函数将 k k k 个得分转换为一个概率分布:
P ( y = k ∣ x ; θ ) = e θ k T x ∑ j = 1 K e θ j T x for k = 1 , 2 , . . . , k P(y=k | x; \theta) = \frac{e^{\theta_k^T x}}{\sum_{j=1}^{K} e^{\theta_j^T x}} \quad \text{for } k = 1, 2, ..., k P(y=k∣x;θ)=∑j=1KeθjTxeθkTxfor k=1,2,...,k
这里 θ \theta θ 代表所有 θ k θₖ θk 组成的参数矩阵。
对于k个类别的多分类问题,Softmax回归的假设函数输出一个 k 维向量:
h θ ( x ( i ) ) = [ P ( y ( i ) = 1 ∣ x ( i ) ; θ ) P ( y ( i ) = 2 ∣ x ( i ) ; θ ) ⋮ P ( y ( i ) = k ∣ x ( i ) ; θ ) ] = 1 ∑ j = 1 k e θ j T x ( i ) [ e θ 1 T x ( i ) e θ 2 T x ( i ) ⋮ e θ k T x ( i ) ] h_\theta(x^{(i)}) = \begin{bmatrix} P(y^{(i)} = 1 | x^{(i)}; \theta) \\ P(y^{(i)} = 2 | x^{(i)}; \theta) \\ \vdots \\ P(y^{(i)} = k | x^{(i)}; \theta) \end{bmatrix} = \frac{1}{\sum_{j=1}^k e^{\theta_j^T x^{(i)}}} \begin{bmatrix} e^{\theta_1^T x^{(i)}} \\ e^{\theta_2^T x^{(i)}} \\ \vdots \\ e^{\theta_k^T x^{(i)}} \end{bmatrix} hθ(x(i))= P(y(i)=1∣x(i);θ)P(y(i)=2∣x(i);θ)⋮P(y(i)=k∣x(i);θ) =∑j=1keθjTx(i)1 eθ1Tx(i)eθ2Tx(i)⋮eθkTx(i)
Softmax回归同样使用最大似然估计。其损失函数是多分类交叉熵损失:
J ( θ ) = − 1 m ∑ i = 1 m ∑ k = 1 K 1 { y i = k } log e θ k T x i ∑ j = 1 K e θ j T x i J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \sum_{k=1}^{K} 1\{y_i = k\} \log \frac{e^{\theta_k^T x_i}}{\sum_{j=1}^{K} e^{\theta_j^T x_i}} J(θ)=−m1i=1∑mk=1∑K1{yi=k}log∑j=1KeθjTxieθkTxi
6.2 另一种策略:OvR
除了 Softmax 回归,另一种常用的多分类策略是 "一对多"(One-vs-Rest, OvR):
- 为每一个类别 k 训练一个标准的二分类逻辑回归模型,该模型将类别 k 作为正类,其余所有类别作为负类。
- 在预测时,将样本输入所有 K 个分类器,选择输出概率最高的那个类别作为最终预测。
- 对于许多问题,OvR 是简单有效的选择,并且可以直接利用高度优化的二分类逻辑回归库。
6.3 Softmax特性
-
将多个线性输出的分数转换为概率分布
-
所有类别概率之和为1
-
是Sigmoid函数在多分类上的推广