机器学习之逻辑回归

文章目录

  • [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函数在多分类上的推广

相关推荐
爱吃羊的老虎2 小时前
【大模型开发】学习笔记一:RAG & LangChain 实战核心笔记
人工智能·笔记·语言模型·langchain
春日见2 小时前
window wsl环境: autoware有日志,没有rviz界面/ autoware起不来
linux·人工智能·算法·机器学习·自动驾驶
新新学长搞科研2 小时前
【智慧城市专题IEEE会议】第六届物联网与智慧城市国际学术会议(IoTSC 2026)
人工智能·分布式·科技·物联网·云计算·智慧城市·学术会议
❀͜͡傀儡师2 小时前
基于大语言模型的简历分析和模拟面试系统
人工智能·语言模型·面试
是小蟹呀^2 小时前
Focal Loss:解决长尾图像分类中“多数类太强势”的损失函数
人工智能·机器学习·分类
马拉AI2 小时前
VAE不再必要?北大PixelGen:像素扩散反超Latent Diffusion,重塑生成新范式
人工智能·计算机视觉
量子-Alex2 小时前
【大模型技术报告】Seed-Thinking-v1.5深度解读
人工智能·算法
愚者游世2 小时前
Opencv知识点大纲
人工智能·opencv·计算机视觉
波动几何2 小时前
Skill 构建指南:从零打造 AI 智能体扩展包
人工智能