【机器学习】02_线性模型

一、 线性回归 (Linear Regression) ------ 基础中的基础

1. 核心公式(必背)
  • 模型定义 : f(x)=wTx+bf(x) = w^T x + bf(x)=wTx+b 向量形式为 f(x)=wTxf(x) = w^T xf(x)=wTx(通常将 bbb 吸收进 www,即 xxx 增加一维常数1),。
  • 优化目标(损失函数) : 通常使用均方误差 (MSE, Mean Squared Error) 。目标是最小化 EEE: E(w)=∑i=1m(yi−wTxi)2E(w) = \sum_{i=1}^{m} (y_i - w^T x_i)^2E(w)=i=1∑m(yi−wTxi)2 向量形式:E(w)=(y−Xw)T(y−Xw)E(w) = (y - Xw)^T (y - Xw)E(w)=(y−Xw)T(y−Xw),。
2. 求解方法(计算题考点)
  • 最小二乘法 (Least Squares) - 闭式解 : 令损失函数对 www 的导数为 0,解得: w∗=(XTX)−1XTyw^* = (X^T X)^{-1} X^T yw∗=(XTX)−1XTy 考点提示 :
    • 这个解存在的条件是 XTXX^T XXTX 是满秩(可逆)的。
    • 如果特征数 ddd 大于样本数 mmm(d>md > md>m),或者特征之间存在多重共线性,XTXX^T XXTX 往往不可逆,此时需要使用正则化。
  • 梯度下降法 (Gradient Descent) : 当无法直接求逆或计算量太大时使用。 迭代公式:w←w−η∂E∂ww \leftarrow w - \eta \frac{\partial E}{\partial w}w←w−η∂w∂E。
3. 正则化 (Regularization) ------ 难点与重点

这是防止过拟合的核心手段,也是概念辨析题常客。

特性 岭回归 (Ridge / L2) Lasso 回归 (L1)
公式 E+λE + \lambdaE+λ w
几何意义 下降等高线与圆形约束区域相切 下降等高线与菱形约束区域相切
核心作用 限制参数大小,防止过拟合,但参数不会变为0 易获得稀疏解 (即让某些参数直接为0),可用于特征选择
闭式解 w∗=(XTX+λI)−1XTyw^* = (X^T X + \lambda I)^{-1} X^T yw∗=(XTX+λI)−1XTy 无直接闭式解,需用近端梯度下降等方法

考试金句 :L1正则化更容易产生稀疏解(Feature Selection),L2正则化主要用于防止模型参数过大(Weight Decay)。

简单来说,岭回归就是带 L2L2L2 正则化的线性回归 。它的核心目标是通过牺牲一点点偏差,来大幅度降低模型的方差,从而解决过拟合问题。


1. 为什么要用岭回归?

在标准的线性回归(最小二乘法)中,如果特征之间存在高度相关性(多重共线性),或者特征数量很多,模型为了拟合每一个训练数据点,权重系数 www 可能会变得非常大。

  • 问题: 权重越大,模型对输入数据的微小扰动就越敏感。
  • 后果: 导致模型方差(Variance)极大,在训练集上表现完美,但在测试集上表现糟糕(过拟合)。
    岭回归通过在损失函数中添加一个"惩罚项",强制让权重 www 保持在较小的数值范围内。

2. 数学定义

岭回归的损失函数由两部分组成:均方误差(MSE) 和 L2L2L2 惩罚项 。
J(w)=∑i=1n(yi−y^i)2+λ∑j=1mwj2J(w) = \sum_{i=1}^{n} (y_i - \hat{y}i)^2 + \lambda \sum{j=1}^{m} w_j^2J(w)=i=1∑n(yi−y^i)2+λj=1∑mwj2

  • 第一部分: 传统的平方误差,希望模型预测得准。
  • 第二部分(λ∑w2\lambda \sum w^2λ∑w2): L2L2L2 正则化项。λ\lambdaλ(Lambda)是一个超参数,用来控制惩罚的力度。
    • 当 λ=0\lambda = 0λ=0 时:岭回归退化为普通的线性回归。
    • 当 λ\lambdaλ 非常大时:为了让总损失最小,模型会倾向于让所有的 www 都接近于 0,导致模型变简单(偏差变大,方差变小)。

3. 几何直观理解

我们可以把正则化看作是对参数空间的限制。

在图中,左侧圆形的区域代表了岭回归对权重 www 的约束范围。

  • 线性回归的目标是找到椭圆的中心(误差最小点)。
  • 岭回归则要求解必须落在圆圈内或圆圈边缘。
  • 最终的解是圆圈与椭圆相切的地方。由于圆形没有"尖角",岭回归倾向于把 www 缩小到接近 0,但很难让它精确等于 0。

4. 岭回归的主要特点

特点 说明
权重收缩 (Shrinkage) 它会将模型的参数推向 0,但不会像 Lasso 那样直接变为 0。
处理多重共线性 当特征高度相关时,普通回归的解会变得极不稳定,岭回归能有效稳定参数。
降低方差 它是解决过拟合的利器,特别是在特征维度 ppp 接近或大于样本量 nnn 时。
不具备特征选择功能 因为参数不会变为 0,所以所有特征都会保留在模型中。

二、 对数几率回归 (Logistic Regression, LR) ------ 分类任务的核心

注意 :虽然叫"回归",但它是分类算法!用于解决二分类问题(0或1)。

1. 模型推导
  • Sigmoid 函数(激活函数) : 将线性输出 z=wTx+bz = w^T x + bz=wTx+b 压缩到 (0,1)(0, 1)(0,1) 区间,表示概率。 y=11+e−zy = \frac{1}{1 + e^{-z}}y=1+e−z1
  • 物理意义(对数几率) : 模型实际上是在拟合"对数几率"(Log-odds): ln⁡y1−y=wTx+b\ln \frac{y}{1-y} = w^T x + bln1−yy=wTx+b 其中 y1−y\frac{y}{1-y}1−yy 称为几率(odds),即正例概率与反例概率的比值。
2. 损失函数:为什么不用 MSE?(高频简答题)
  • 最大似然估计 (MLE):LR 的目标是最大化样本属于其真实标记的概率。
  • 交叉熵损失 (Cross-Entropy Loss) :推导出的损失函数为: L(w)=∑i=1m(−yiln⁡y^i−(1−yi)ln⁡(1−y^i))L(w) = \sum_{i=1}^{m} \left( -y_i \ln \hat{y}_i - (1-y_i) \ln (1-\hat{y}_i) \right)L(w)=i=1∑m(−yilny^i−(1−yi)ln(1−y^i))
  • 不用 MSE 的原因 :如果用 MSE(平方误差),在 Sigmoid 函数作用下,损失函数关于 www 非凸 (Non-convex),包含多个局部极小值,难以用梯度下降求解。而交叉熵损失是凸函数,保证能找到全局最优解。

三、 线性判别分析 (LDA) ------ 既分类又降维

核心思想 (Fisher准则):"类内尽可能紧凑,类间尽可能远离"。

1. 两个关键矩阵(需记忆定义)
  • 类内散度矩阵 (SwS_wSw) :衡量每一类内部样本的离散程度(越小越好)。 Sw=Σ0+Σ1S_w = \Sigma_0 + \Sigma_1Sw=Σ0+Σ1
  • 类间散度矩阵 (SbS_bSb) :衡量不同类别中心点之间的距离(越大越好)。 Sb=(μ0−μ1)(μ0−μ1)TS_b = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^TSb=(μ0−μ1)(μ0−μ1)T
2. 优化目标

最大化广义瑞利商: J=wTSbwwTSwwJ = \frac{w^T S_b w}{w^T S_w w}J=wTSwwwTSbw

3. 最终解(计算结论)

不需要做复杂的特征值分解,对于二分类,投影方向 www 直接正比于: w=Sw−1(μ0−μ1)w = S_w^{-1} (\mu_0 - \mu_1)w=Sw−1(μ0−μ1) 即:最优投影方向 = 类内散度矩阵的逆 ×\times× 两类均值之差,。


四、 多分类与类别不平衡 (Extensions)

  1. 多分类策略:

    • OvO (一对一) :训练 N(N−1)/2N(N-1)/2N(N−1)/2 个分类器,投票决定。
    • OvR (一对其余) :训练 NNN 个分类器,取置信度最高的。
    • MvM (多对多):如纠错输出码 (ECOC)。
  2. 类别不平衡 (Class Imbalance): 当正负样本比例严重失调(如 1:99)时,标准学习器往往会失效(倾向于预测大类)。

    • 欠采样 (Undersampling):扔掉一些大类样本(EasyEnsemble)。
    • 过采样 (Oversampling) :增加小类样本(SMOTE算法,不是简单复制,而是插值生成新样本)。
    • 阈值移动 (Threshold Moving):调整分类阈值,不再以 0.5 为界。

考试通关 CheckList:

  1. 计算 :给几个数据点,能列出 XXX 和 yyy,写出线性回归的 www 计算公式。
  2. 推导:能简单说明 LR 为什么要用交叉熵而不是 MSE。
  3. 画图:能画出 L1(菱形)和 L2(圆形)正则化的约束示意图,并解释为何 L1 产生稀疏解。
  4. LDA :记住口诀"类内小、类间大",并记住 www 的最终公式。

这一讲的内容非常硬核,特别是公式部分。如果您对某个具体的推导(比如 LR 的梯度或 LDA 的瑞利商)感到困惑,我们可以单独展开讲。如果没有问题,我们随时可以进入"第4讲:贝叶斯分类器"。

思考题

1.

证明∂αTA∂α=A\frac{\partial \boldsymbol{\alpha}^T \mathbf{A}}{\partial \boldsymbol{\alpha}} = \mathbf{A}∂α∂αTA=A

这是一个在线性回归(尤其是推导正规方程时)非常基础且重要的**矩阵微积分(Matrix Calculus)**恒等式。

为了证明这个等式,我们通常采用分量分析法(Element-wise analysis)。这种方法最直观,能让你看清矩阵运算背后的本质。


1. 定义符号与维度

首先,为了使运算有意义,我们假设:

  • α\boldsymbol{\alpha}α 是一个 n×1n \times 1n×1 的列向量 :α=α1,α2,...,αnT\boldsymbol{\alpha} = \\alpha_1, \\alpha_2, \\dots, \\alpha_n^Tα=α1,α2,...,αnT。

  • A\mathbf{A}A 是一个 n×mn \times mn×m 的矩阵。

  • 那么 αTA\boldsymbol{\alpha}^T \mathbf{A}αTA 是一个 1×m1 \times m1×m 的行向量。

设 y=αTA\mathbf{y} = \boldsymbol{\alpha}^T \mathbf{A}y=αTA,则 y\mathbf{y}y 是一个包含 mmm 个元素的行向量,记为 y=y1,y2,...,ym\mathbf{y} = y_1, y_2, \\dots, y_my=y1,y2,...,ym。

2. 展开分量

我们来看向量 y\mathbf{y}y 中的第 jjj 个元素 yjy_jyj 是如何计算的。根据矩阵乘法定义:

yj=∑k=1nαkAkjy_j = \sum_{k=1}^n \alpha_k A_{kj}yj=k=1∑nαkAkj

这里 AkjA_{kj}Akj 表示矩阵 A\mathbf{A}A 中第 kkk 行、第 jjj 列的元素。

3. 求偏导

根据矩阵对向量求导的定义(通常在机器学习中使用的是分母布局,即求导结果的行数与自变量 α\boldsymbol{\alpha}α 的维数一致):

结果矩阵中的第 iii 行、第 jjj 列的元素,等于 y\mathbf{y}y 的第 jjj 个分量对 α\boldsymbol{\alpha}α 的第 iii 个分量求导:

(∂y∂α)ij=∂yj∂αi\left( \frac{\partial \mathbf{y}}{\partial \boldsymbol{\alpha}} \right)_{ij} = \frac{\partial y_j}{\partial \alpha_i}(∂α∂y)ij=∂αi∂yj

我们将第 2 步得到的求和式带入:

∂yj∂αi=∂∂αi(∑k=1nαkAkj)\frac{\partial y_j}{\partial \alpha_i} = \frac{\partial}{\partial \alpha_i} \left( \sum_{k=1}^n \alpha_k A_{kj} \right)∂αi∂yj=∂αi∂(k=1∑nαkAkj)

在这个求和式中,只有当 k=ik=ik=i 时,αk\alpha_kαk 对 αi\alpha_iαi 的导数才为 111;当 k≠ik \neq ik=i 时,导数均为 000。因此:

∂yj∂αi=Aij\frac{\partial y_j}{\partial \alpha_i} = A_{ij}∂αi∂yj=Aij

4. 结论

既然结果矩阵中每一个位置 (i,j)(i, j)(i,j) 的元素都恰好等于矩阵 A\mathbf{A}A 中对应位置的元素 AijA_{ij}Aij,那么:

∂αTA∂α=A\frac{\partial \boldsymbol{\alpha}^T \mathbf{A}}{\partial \boldsymbol{\alpha}} = \mathbf{A}∂α∂αTA=A

证明完毕。


💡 学习小贴士

在学习线性回归时,你可能很快就会遇到更复杂的求导,比如对平方损失函数 J(θ)=(Xθ−y)T(Xθ−y)J(\theta) = (\mathbf{X}\theta - \mathbf{y})^T(\mathbf{X}\theta - \mathbf{y})J(θ)=(Xθ−y)T(Xθ−y) 求导。

掌握了上面这个简单的例子,你可以试着记住以下两个常用的"大招":

  1. ∂(aTx)∂x=a\frac{\partial (\mathbf{a}^T \mathbf{x})}{\partial \mathbf{x}} = \mathbf{a}∂x∂(aTx)=a (这是上面公式在 m=1m=1m=1 时的特例)

  2. ∂(xTAx)∂x=(A+AT)x\frac{\partial (\mathbf{x}^T \mathbf{A} \mathbf{x})}{\partial \mathbf{x}} = (\mathbf{A} + \mathbf{A}^T)\mathbf{x}∂x∂(xTAx)=(A+AT)x (如果是对称阵,结果就是 2Ax2\mathbf{Ax}2Ax)

2. 既然岭回归有闭式解,为什么还要用梯度下降法求参数?

这是一个非常棒的问题。在线性代数层面,闭式解(Normal Equation)看起来非常完美:一步到位,没有调参烦恼,直接给到最优值。

但在实际的工程实践和机器学习中,梯度下降法(Gradient Descent) 往往比闭式解更受欢迎,原因主要集中在以下四个维度:

1. 计算复杂度:当特征数量 ddd 爆炸时

闭式解公式如下:
θ^=(XTX+λI)−1XTy\hat{\theta} = (\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^T\mathbf{y}θ^=(XTX+λI)−1XTy

  • 闭式解的瓶颈: 最核心的一步是矩阵求逆 。对于一个有 ddd 个特征的矩阵,(XTX)(\mathbf{X}^T\mathbf{X})(XTX) 的维度是 d×dd \times dd×d。求逆运算的时间复杂度大约是 O(d3)O(d^3)O(d3)。
    • 如果 d=1,000d=1,000d=1,000,计算机算起来很快。
    • 如果 d=100,000d=100,000d=100,000(这在推荐系统或图像处理中很常见),d3d^3d3 达到了 101510^{15}1015 量级,现代计算机的单机算力根本无法在合理时间内完成。
  • 梯度下降的优势: 梯度下降每一轮迭代的复杂度仅为 O(nd)O(nd)O(nd)(nnn 是样本数)。只要迭代次数 kkk 不太大,它的总开销远小于 O(d3)O(d^3)O(d3)。

2. 内存限制:存不下整个矩阵

  • 闭式解: 计算 XTX\mathbf{X}^T\mathbf{X}XTX 需要一次性将数据加载到内存中。如果数据集非常巨大(TB级别),普通服务器的内存(RAM)会直接崩溃。
  • 梯度下降(特别是 SGD): 随机梯度下降(SGD)或小批量梯度下降(Mini-batch GD)一次只需要读取一小部分数据。这意味着你可以处理远超内存容量的"大数据"。

3. 算法的通用性与扩展性

  • 闭式解: 它是"量身定做"的。线性回归和岭回归有闭式解,是因为它们的损失函数是二次的(凸函数且导数是一阶线性的)。但如果你稍微改一下损失函数(比如变成 L1L_1L1 正则化的 Lasso 回归,或者逻辑回归),闭式解就消失了。
  • 梯度下降: 它是"万能钥匙"。学会了梯度下降处理岭回归,你就学会了处理深度学习中的神经元更新。在 Andrew Ng 的深度学习课程中,你会发现一切皆可梯度下降。

4. 在线学习(Online Learning)

  • 闭式解: 如果此时又有 1000 条新数据进来了,你必须把旧数据和新数据合在一起,重新进行昂贵的矩阵求逆。
  • 梯度下降: 模型不需要重新训练。你只需要用这 1000 条新数据对现有的参数 θ\thetaθ 再进行几次梯度更新即可。这种"增量更新"的能力在实时推荐系统中至关重要。

总结对比

特性 闭式解 (Normal Equation) 梯度下降 (Gradient Descent)
计算速度 小规模数据极快 大规模数据(d>104d > 10^4d>104)更优
超参数 无需设置学习率 α\alphaα 需要细心调校 α\alphaα 和迭代次数
内存占用 高(需存储 XTX\mathbf{X}^T\mathbf{X}XTX) 低(可按批次加载数据)
适用范围 仅限线性回归等极少数模型 几乎适用于所有机器学习模型

直观理解:

闭式解就像是**"瞬移",虽然快,但对身体(计算资源)要求极高,且只能去特定的目的地。

梯度下降就像是"走路"**,虽然慢点,但只要方向对,你可以走到任何你想去的地方(各种复杂的模型),而且对身体要求很低。

**

相关推荐
YOLO数据集集合21 分钟前
小麦穗检测数据集 | 小麦穗检测 植物表型 密集目标检测 农业AI9182期
人工智能·yolo·目标检测·机器学习·目标跟踪·小麦穗
Keep_Trying_Go35 分钟前
MobileSAMv2分割算法详解
图像处理·人工智能·计算机视觉
java资料站6 小时前
十一、Spring AI Alibaba · 高级 · 多智能体(Multi-agent)
人工智能·spring·microsoft
2601_955662467 小时前
情感解说视频如何提升感染力?配音细节很关键
人工智能·音视频·语音识别·视频
苏醒的人生7 小时前
电商品牌物料AI生图工具推荐:让品牌调性一套到底
人工智能
lank_M7 小时前
截图OCR预处理在普通屏上翻车,Retina截图却没事
图像处理·人工智能·计算机视觉·ocr
Aloudata7 小时前
LookML 语义模型 vs 企业级独立语义层:BI 建模语言能否承担企业语义底座?
数据库·人工智能·数据分析·数据资产·dataagent
龙亘川7 小时前
AI 协同赋能城市治理:支撑政协数字化履职的技术路径探析
大数据·人工智能·智慧城市·开源软件·数据可视化
通信大模型7 小时前
IEEE TCCN | 面向低空经济网络的Agentic AI驱动多无人机轨迹优化
网络·人工智能·无人机