逻辑回归通俗理解:从线性回归到梯度下降

115 阅读3分钟

概念

线性回归方程:

即找一条直线来预测连续的数值(例如温度、房价)

简单的一元线性回归方程:y=kx+by=kx+b (特征 × 权重 + 偏置)


逻辑回归:

本质仍为二分类,如判断样本为哪个类别、判断肿瘤是良性还是恶性

逻辑回归内部也计算一个类似的线性加权和:z=w1x1+w2x2+...+bz = w₁x₁ + w₂x₂ + ... + b

关键区别:线性回归直接把 z 当预测值输出。但分类问题需要输出是概率(0到1之间)

解决办法:我们把线性回归的输出丢进一个“压缩函数”,保证输出永远在 0 到 1 之间。


Sigmoid 函数(S型的曲线):

b7a662b3a23b511705917721bd4d144e.pngimage.png

这个函数把任何实数 z 映射到了 (0, 1) 区间内

  • 输入很大(正数很大) → 输出接近 1

  • 输入很小(负数很大) → 输出接近 0

  • 输入等于 0 → 输出正好是 0.5


损失函数:

有了预测值(概率),我们就需要衡量“预测的好坏”。
这就需要一个打分标准 → 这就是损失函数(Loss Function)

逻辑回归常用的损失函数是交叉熵损失image.png

真实标签 y

  • 在监督学习里,训练数据都会给定“答案”。

  • 在逻辑回归的二分类场景下,答案通常是 0 或 1:

    • y=1y=1:表示属于正类(比如“垃圾邮件”)
    • y=0y=0:表示属于负类(比如“正常邮件”)

损失函数如何比较?

损失函数就是把“模型预测的 y^ 和真实标签 y 进行对比,算出一个数值,表示预测好坏:

image.png

  • 如果 y=1,损失就是:−log⁡(y^)

    • y^越接近 1 → 损失越小(预测正确)
    • y^越接近 0 → 损失越大(预测错误)
  • 如果 y=0,损失就是:−log⁡(1−y^)

    • y^越接近 0 → 损失越小
    • y^越接近 1 → 损失越大

损失函数就是量化“预测和真实之间的差距”。

调整 w,b 的意义

  • w,b会影响线性部分 z=wTx+bz=wTx+b
  • z会影响概率 y^=σ(z);
  • y^会决定损失值 Loss;
  • 梯度下降会根据 Loss 的大小和方向来不断更新 w,b让 Loss 逐步变小。

这就是逻辑回归训练的闭环。


梯度下降

我们有了损失函数 Loss(y,y^)它表示“预测和真实的差距”。

  • 我们希望 Loss 越小越好。
  • 但是 Loss 是一个关于参数 (w,b)的复杂函数。

换句话说:我们要找到一组最优的 w,b,使得 Loss 最小。

一维情况(直线)

比如函数 f(x),它的导数 f′(x)就表示在某点的斜率。

  • 如果斜率 > 0,函数在增大。
  • 如果斜率 < 0,函数在减小。

所以在一维中,我们可以顺着斜率的反方向(负方向)走,来减小函数值。

而沿负梯度方向调整参数,就是让每个参数沿着能 让整体损失最快下降 的方向更新,梯度下降的目标是找到一个损失函数的局部最小值。当参数的梯度趋近于零时,算法收敛,表明找到了一个临界点。对于逻辑回归(其损失函数通常是凸的),这个临界点就是全局最小值。

  • 梯度就是“对所有自变量求偏导的集合” 。 
  • 梯度方向:函数在该点 增长最快 的方向。
  • 负梯度方向:函数在该点 下降最快 的方向。 

这就是梯度下降的核心:沿着负梯度方向更新参数,让损失函数最小化。