第三章学习笔记
第3章 线性模型
3.1 基本形式
给定由d个属性描述的示例x = (x1;x2;…;xd),其中xi是x的第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:
一般用向量写成:
线性模型形式简单、易于建模,具有很好的可解释性(comprehensibility)。
3.2 线性回归
给定数据集D = {(x1,y1),(x2,y2),…,(xm,ym)},其中xi = (xi1;xi1;…;xid),线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。即线性回归试图学得:
确定w和b,关键在于衡量f(x)与y之间的差别。2.3中介绍过均方误差是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即:
均方误差有非常好的几何意义,它对应了常用的欧几里得距离。基于均方误差最小化求解模型的方法被称为最小二乘法,在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。
求解w和b使得最小化的过程,被称为线性回归模型的最小二乘“参数估计”(parameter estimation)。我们可将上式(记为E(w,b))分别对w和b求导,得到:
令上面两式为零可得到w和b的最优解的闭式(closed-form)解。
更一般的情形如开头的数据集D,样本由d个属性描述,试图学得:
此时被称为多元线性回归。
用最小二乘法来求解,把w和b吸收入向量形式定义为,把数据集D表示为一个m×(d+1)大小的矩阵X,每行对应一个示例,则有如下:
同理把标记也写成向量模式,则有:
上式为零即可得到最优解的闭式解。
如果XTX为满秩矩阵或者正定矩阵,那么令上式为零可有:
令,得到多元线性回归模型为
现实中XTX往往不是满秩矩阵,许多任务中会遇到变量的数目超过样例数的情况,导致X的列数多于行数,显然不满秩,此时会解出多个满足均方误差最小的条件,选择哪一个作为输出就是问题,常见的做法是引入正则化项。
假设我们认为示例所对应的输出标记是在指数尺度上变化的,那就可以将输出标记的对数作为线性模型逼近的目标,即:
这就是对数线性回归(log-linear regression),在形式上虽然仍然是线性回归,但实质是在求取输入空间到输出空间的非线性函数映射。如图所示:
对数线性回归是让y=ln y,而如果令y变换为其他的形式,可以得到更多的线性回归函数。我们统称为“广义线性模型”。
3.3 对数几率回归
上一节讨论了如何使用线性模型进行回归学习,但若要做的是分类任务该怎么办?只需找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
考虑二分类任务,输出标记为y∈{0,1},而线性回归模型产生的预测值z = wTx+b是实值,故需将z转换为0/1值,最理想的是“单位阶跃函数”:
即若预测值z 大于零就判为正例;小于零则判为反例;预测值为临界值零则可任意判别。具体图示如下图所示:
由于阶跃函数不连续,故不能用作广义线性模型,故我们找到一个对数几率函数来在一定程度上近似单位阶跃函数,可以看到,对数几率函数是常见的Sigmoid函数。将对数几率函数代入之前所讲y中,有:
由此看出,实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率
因此,其对应的模型称为“对数几率回归”(logistic regression)。
注意:虽然名字是回归,但实际上是一种分类学习的方法。
如何确定w和b?
若将y视为后延概率估计,则上式可以重写为:
显然可以得到:
于是,我们可以利用最大似然法(maximum likelihood method)来估计w和b。
此时对率回归模型最大化“对数似然”(log-likelihood):
即令每个样本属于其真实标记的概率越大越好。
3.4 线性判别分析
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,由于其最早被Fisher提出,故又名“Fisher判别分析”。
LDA 的思想非常朴素: 给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
若将数据投影到直线w上,则两类样本的中心在直线上的投影分别为wTμ0和wTμ1;若将所有样本点都投影到直线上,则两类样本的协方差分别为wT∑0w和wT∑1w。
于是,要让同类样例投影点尽可能接近,可以让同类样例投影点的协方差尽可能小;而欲使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大。于是我们得到了一个欲最大化的目标:
定义“类内散度矩阵”(within-class scatter matrix)
和“类间散度矩阵”(between-class scatter matrix)
则上式个重写为:
这就是LDA欲最大化的目标,即Sb和Sw的“广义瑞利商”。
那么关键就在于w的确定。由于上式分子与分母都是关于w的二次项,故其的解与w的长度无关,只与其方向有关,令,则上式等价于:
由拉格朗日乘子法,得到:
λ是拉格朗日乘子。由于Sbw的方向恒为μ0-μ1,故不妨令
代入中可以得到:
将LDA推广到多分类任务时,假定存在N个类,且第i类示例数为mi,先定义一个“全局散度矩阵”:
可见使用以上三个散度矩阵的任意两个,都可以多分类实现LDA。
对于多分类任务,常见的一种实现时采用优化目标:
上式可以用下式求解:
可见W的闭式解其实是N-1个最大广义特征值所对应的特征向量组成的矩阵。
若将W视为一个投影矩阵,则LDA将样本投影到了N-1维空间上,N-1往往远小于数据原有的属性数,因此,LDA也常被视为一种经典的监督降维技术。
3.5 多分类学习
在现实中,我们所遇到的大多数问题其实是多分类学习任务。
考虑N个类别C1…CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆为若干个二分类任务求解。
最经典的拆分策略有三种:“一对一”(one vs. one ,OvO),“一对其余”(One vs. Rest, OvR),和“多对多”(Many vs. Many, MvM)。
一对一的基本思想如下:将数据集中的N个类别两两配对,产生N(N-1)/2个二分类任务。在测试时,把新样本同时交给所有分类器,于是得到N(N-1)/2个分类结果,最终结果可以通过投票产生;即把被预测的最多的类别别作为最终结果。
一对其余的思想如下:每次将一个类的样例作为正类,其他都作为反类来训练N个分类器。在测试时若只有一个分类器预测为正类,则对应的类别标记为最终结果,若有多个分类器预测为正类,则考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
下图为简单的示意图:
容易看出,OvR 只需训练N 个分类器,而OvO需训练N(N - 1)/2个分类器,因此,OvO的存储开销和测试时间开销通常比OvR 更大. 但在训练时,OvR 的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例,因此,在类别很多时。OvO 的训练时间开销通常比OvR 更小,至于预测性能,则取决于具体的数据分布,在多数情形下两者差不多。
MvM是每次将若干个类作为正类,若干个其他类作为反类.显然,OvO和OvR是MvM的例.MvM的正、反类构造必须有特殊的设计,不能随意选取.接下来,介绍一种最常用的MvM技术:“纠错输出码”(Error CorrectingOutput Codes,简称ECOC)。
ECOC是将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性.ECOC工作过程主要分为两步:
●编码:对N个类别做M次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可训练出M个分类器.
●解码: M个分类器分别对测试样本进行预测,这些预测标记组成一个编码.将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果.
3.6 类别不平衡问题
前面所述分类学习方法都有一个共同的基本假设:不同类别的训练样例数目相同。
类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况。本文假设反例数目远大于正例。
介绍类别不平衡学习的一个基本策略——“再缩放”(rescaling)。
目前有三类做法:
- 直接对训练集的反类样例进行“欠采样”,即去除一些反例使得正反例数目接近。
- 对训练集的正例进行“过采样”,即增加一些正例使得正反例数目相似。
- 则是基于原始训练集进行学习,在用训练好的分类器进行预测时再进行其他操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】