第3章 线性模型

第3章 线性模型

3.1 基本形式

3.2 线性回归

  1. 离散属性表示:

    • 若属性间存在“序”关系:
      • 通过连续化将其转化为连续值。
    • 若属性间不存在“序”关系:
      • 转化为\(k\)维向量。
      • 若将无序属性连续化,则会不恰当地引入序关系,对后续处理如距离计算等造成误导。
  2. 均方误差是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method)。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小,求解参数最小化的过程成为“参数估计”。

  3. 在机器学习中,闭式解也被称为解析解(analytical solution),是指可以通过严格的数学公式或方程直接求解出模型参数的解析解。

  4. 如果样本有\(d\)个属性描述,试图学得:

    • \[f(\boldsymbol{x}_i)=\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b,\text{ 使得 }f(\boldsymbol{x}_i)\simeq y_i, \]

    • 这称为“多元线性回归”。

  5. 现实任务中\(X^TX\)往往不满秩,例如变量数大于样例数,导致\(X\)的列数多于行数,此时可以解出多个\(\hat{w}\),类似解线性方程组有多组解,选择哪一个解作为输出将由学习算法的归纳偏好决定,常见的做法是引入正则化项。

  6. 一般地,考虑单调可微函数\(g(·)\),令:

    • \[y=g^{-1}(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}+b), \]

    • 这样得到的模型称为“广义线性模型”,其中函数\(g(·)\)被称为“联系函数”。

    • 广义线性模型的参数估计常通过加权最小二乘法或极大似然法进行。

3.3 对数几率回归

  1. 对于分类任务,只需找一个单调可微函数将分类任务的真实标记\(y\)与线性回归模型的预测值联系起来。

  2. 单位阶跃函数

    • \[y=\left\{\begin{array}{cl} 0, & z<0 \\ 0.5, & z=0 \\ 1, & z>0 \end{array}\right. \]

    • 若预测值大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别。

  3. 用对数几率函数(简称对率函数)作为单位阶跃函数的近似替代函数,满足连续的性质:

    • \[y=\frac{1}{1+e^{-z}} . \]

    • 对数几率函数是一种“Sigmoid”函数,即形似S的函数。

  4. \(y\)视为样本\(x\)作为正例的可能性,则\(1 - y\)是其反例可能性,两者的比值取对数则得到对数几率:

    • \[\ln \left( \frac{y}{1 - y} \right) = w^{\mathrm{T}} x + b \]

  5. 用此线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为“对数几率回归”,或者“逻辑回归”(logistic regression,亦称logit regression)。特别需注意到,虽然它的名字是“回归”,但实际却是一种分类学习方法。

  6. 根据凸优化理论,经典的数值优化算法如梯度下降法牛顿法等都可求得其最优解。

3.4 线性判别分析

  1. 线性判别分析(Linear Discriminant Analysis,简称LDA)的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上, 使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。

  2. 给定数据集\(D=\left\{\left(\boldsymbol{x}_i,y_i\right)\right\}_{i=1}^m,y_i\in\{0,1\}\),令\(X_i\)\(\mu_i\)\(\Sigma_i\)、分别表示第\(i\in\{0,1\}\)类示例的集合、均值向量、协方差矩阵。若将数据投影到直线\(w\)上,则两类样本的中心在直线上的投影分别为\(w^{T}\mu_{0}\)\(w^{T}\mu_{1}\);若将所有样本点都投影到直线上,则两类样本的协方差分别为\(w^{T}\Sigma_{0}w\)\(w^{T}\Sigma_{1}w\)。由于直线是一维空间,因此\(w^{T}\mu_{0}\)\(w^{T}\mu_{1}\)\(w^{T}\Sigma_{0}w\)\(w^{T}\Sigma_{1}w\)均为实数。

  3. 定义“类内散度矩阵”(within-class scatter matrix)

    • \[\begin{aligned} \mathbf{S}_{w} & =\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1} \\ & =\sum_{\boldsymbol{x} \in X_{0}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)^{\mathrm{T}}+\sum_{\boldsymbol{x} \in X_{1}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \end{aligned} \]

  4. 定义“类间散度矩阵”(between-class scatter matrix)

    • \[S_{b}=(\mu_{0}-\mu_{1})(\mu_{0}-\mu_{1})^{T} \]

  5. 欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小;而欲使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大。同时考虑二者,则可得到欲最大化的目标:

    • \[\begin{aligned} J & =\frac{\left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2}}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}} \\ & =\frac{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1}\right) \boldsymbol{w}}\\ & =\frac{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_b \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_w \boldsymbol{w}}. \end{aligned} \]

    • 这就是是LDA欲最大化的目标,即\(S_b\)\(S_w\)的“广义瑞利商”(generalized Rayleigh quotient)。

  6. LDA可从贝叶斯决策理论的角度来阐释,并可证明,当两类数据同先验、满足高斯分布且协方差相等时,LDA可达到最优分类。

  7. 可以将LDA推广到多分类任务中,假定存在\(N\)个类,且第\(i\)类示例数为\(m_i\)。定义“全局散度矩阵”:

    • \[\begin{aligned} \mathbf{S}_t & =\mathbf{S}_b+\mathbf{S}_w \\ & =\sum_{i=1}^m\left(\boldsymbol{x}_i-\boldsymbol{\mu}\right)\left(\boldsymbol{x}_i-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned} \]

  8. 多分类LDA可以有多种实现方法:使用\(S_b\)\(S_w\)\(S_t\)三者中的任何两个即可。常见的一种实现是采用优化目标:

    • \[\max _{\mathbf{W}} \frac{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_b \mathbf{W}\right)}{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_w \mathbf{W}\right)} \]

    • 其中\(\mathbf{W}\in\mathbb{R}^{d\times(N-1)},\operatorname{tr}(\cdot)\)表示矩阵的迹(trace)。

  9. 若将\(\mathbf{W}\)视为一个投影矩阵,则多分类LDA将样本投影到\(N-1\)维空间,\(N\)-1通常远小于数据原有的属性数。于是,可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此LDA也常被视为一种经典的监督降维技术。

  10. 线性判别分析仅在线性可分数据上能获得理想结果,当我们用核函数\(k(x,y)\)替换原始空间中的内积\(x·y\)时,相当于在不改变算法结构的情况下,将计算“搬到”了高维特征空间中。

3.5 多分类学习

  1. 通常称分类学习器为“分类器”(classifier)。
  2. 考虑\(N\)个类别\(C_1\)\(C_2\),…,\(C_N\),多分类学习的基本思路是“拆解法”,即将多分类任务拆为若干个二分类任务求解。
  3. 最经典的拆分策略有三种:“一对一”(One vs. One,简称OvO)、“一对其余“(One vs. Res,简称OvR)和"多对多"(Many vs. Many,简称MvM)。
  4. MvM是每次将若干个类作为正类,若干个其他类作为反类。显然,OvO和OvR是MvM的特例。
  5. 纠错输出码"(Error Correcting Output Codes,简称ECOC)是一种最常用的MvM技术,在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。
  6. ECOC的工作过程主要分为两步:
    • 编码:对\(N\)个类别做\(M\)次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生\(M\)个训练集,可训练出\(M\)个分类器。
    • 解码:\(M\)个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
  7. 类别划分通过“编码矩阵”(coding matrix)指定。编码矩阵有多种形式,常见的主要有二元码三元码,前者将每个类别分别指定为正类和反类,后者在正、反类之外,还可指定“停用类”(用0表示)。
  8. 海明距离:不同位个数。
  9. 欧式距离\(\sqrt{\sum_{i=1}^{n}\left(a_i-b_i\right)^2}\)

3.6 类别不平衡问题

  1. 类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况。

  2. 对OvR、MvM来说,由于对每个类进行了相同的处理,其拆解出的二分类任务中类别不平衡的影响会相互抵消,因此通常不需专门处理。

  3. 当我们对样本进行分类时,事实上是在用预测出的\(y\)值与一个阈值进行比较,几率\(\frac{y}{1-y}\)则反映了正例可能性与反例可能性之比值。当训练集中正、反例的数目不同时,令\(m^+\)表示正例数目,\(m^-\)表示反例数目,则观测几率是\(\frac{m^+}{m^-}\),由于我们通常假设训练集是真实样本总体的无偏采样,因此观测几率就代表了真实几率。于是,只要分类器的预测几率高于观测几率就应判定为正例:

    • \[若\frac{y}{1-y}>\frac{m^{+}}{m^{-}}则预测为正例 \]

    • 通过阈值的调整进行预测值的调整是类别不平衡学习的一个基本策略—“再缩放”(rescaling),亦称“再平衡”(rebalance)。

  4. 再缩放的思想虽简单,但实际操作却并不平凡,主要因为“训练集是真实样本总体的无偏采样”这个假设往往并不成立,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率。现有技术大体上有三类做法:

    • 欠采样(undersampling),亦称“下采样”(downsampling),即去除一些反例使得正、反例数目接近,然后再进行学习。
      • 欠采样法的时间开销通常远小于过采样法,因为前者丢弃了很多反例。
      • 欠采样法若随机丢弃反例,可能丢失一些重要信息。
      • 代表性算法EasyEnsemble,利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要信息。
    • 过采样(oversampling),亦称“上采样”(upsampling),即增加一些正例使得正、反例数目接近,然后再进行学习。
      • 过采样法不能简单地对初始正例样本进行重复采样,否则会招致严重的过拟合。
      • 代表性算法SMOTE,通过对训练集里的正例进行插值来产生额外的正例。
    • 阈值移动(threshold-moving),直接基于原始训练集进行学习,但在用训练好的分类器进行预测时进行再缩放。
  5. 代价敏感学习(cost-sensitive learning)研究非均等代价下的学习,“再缩放”也是“代价敏感学习”,在代价敏感学习中将\(m^+/m^-\)\(cost^+/cost^-\)代替即可,其中\(cost^+\)是将正例误分为反例的代价,\(cost^-\)是将反例误分为正例的代价。

  6. 类别不平衡学习中通常是较小类的代价更高,否则无需进行特殊处理。

3.7 阅读材料

  1. 稀疏性:向量中大部分元素为零或接近零,只有少数元素显著。
    • 稀疏性问题本质上对应了\(L_0\)范数的优化,这在通常条件下是NP难问题。LASSO通过\(L_1\)范数来近似\(L_0\)范数,是求取稀疏解的重要技术。
  2. \(L_0\)范数:表示向量\(x\)中非零元素的数量,\(\|x\|_0=\#\{i\mid x(i) \neq 0\}\),其中\(\#\)表示计数,对后面集合中元素个数统计。
  3. \(L_1\)范数:表示向量\(x\)中非零元素的绝对值之和,\(\|x\|_1=\sum_{i=1}^{n}|x_i|\)
  4. \(L_2\)范数:表示向量\(x\)中元素的平方和再开平方,\(\|x\|_2 = \sqrt{\sum_{i=1}^{n} x_{i}^{2}}\)
  5. 可以证明,OvO和OvR都是ECOC的特例。
  6. MvM除了ECOC还可有其他实现方式,例如DAG(Directed Acyclic Graph)拆分法,将类别划分表达成树形结构,每个结点对应于一个二类分类器。
  7. 多分类学习中虽然有多个类别,但每个样本仅属于一个类别。如果希望为一个样本同时预测出多个类别标记,这样的任务就不再是多分类学习,而是“多标记学习”(multi-label learning)。
posted @ 2025-04-05 13:24  微风吹兰杜  阅读(11)  评论(0)    收藏  举报