线性模型(linear model)是通过学习一个属性的线性组合来进行预测的函数。线性模型形式简单,可解释性高,蕴含着机器学习中的重要思想,所以将线性模型列为机器学习的第一个模型。
线性模型的基本形式为:
f(x)=wTx+b
其中,w=(w1;w2;…;wd) ,反映了各个属性在预测中的重要性,当 $\boldsymbol{w} $和 b 确定后, 模型随之确定。
介绍的基本内容有:
- 基本线性回归模型
- 对数几率回归模型
- 线性判别分析模型
- 多分类学习模型
给定数据集 D={(x1,y1),(x2,y2),…,(xm,ym)}, 其中 xi=(xi1; xi2;…;xid ), yi∈R. “线性回归” (linear regression)
试图学得一个线性模型以尽可能准确地预测实值输出标记.
回归模型的主要步骤为:建立含参线性模型、构造性能度量、参数估计、参数值代入含参线性模型获取预测输出结果.
为了方便理解模型数学公式表达,先从单属性入手,输入属性的数目只有一个。
单元线性回归试图学得
f(xi)=wxi+b, 使得 f(xi)≃yi.
性能度量用于衡量 f(X) 和 y 之间的差别。这里建立均方误差为性能度量:
(w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(yi−wxi−b)2.
均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧 氏距离”(Euclidean distance).基于均方误差最小化来进行模型求解的方法称 为“最小二乘法”(least square method).在线性回归中,最小二乘法就是试图 找到一条直线,使所有样本到直线上的欧氏距离之和最小.
求解 w 和 b 使 E(w,b)=∑i=1m(yi−wxi−b)2 最小化的过程, 称为线性回归 模型的最小二乘 “参数估计” (parameter estimation)
. 我们可将 E(w,b) 分别对 w 和 b 求导,并令导函数为零。 可得到 w 和 b 最优解的闭式解:
w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)b=m1i=1∑m(yi−wxi)
与单元线性回归不同的是,多元线性回归需要将 w 与 xi 向量化,如本节开头所示数据集 D ,样本有 d 个属性描述,此时,我们试图学得:
f(xi)=wTxi+b, 使得 f(xi)≃yi,
这称为“多元线性回归”(multivariate linear regression)
.
(1)为了便于讨论,这里将 w 和 b 吸收合为一个向量 w^=(w;b) .相应的,把数据集表示为一个矩阵 X ,其中每行对应一个样本,前 d 列对应于每个样本的 d 个属性值,最后一列元素恒为 1,即
X=x11x21⋮xm1x12x22⋮xm2……⋱…x1dx2d⋮xmd11⋮1=x1Tx2T⋮xmT11⋮1
(2)构造性能度量上式的推导
w^∗=w^argmini=1∑m(yi−x^iTw^)2
根据向量内积的定义可知, 上式可以写成如下向量内积的形式
w^∗=w^argmin[y1−x^1Tw^⋯ym−x^mTw^]y1−x^1Tw^⋮ym−x^mTw^
所以
w^∗=w^argmin(y−Xw^)T(y−Xw^)
将上式对 w^ 求导,令导函数为零,即可得到 w^ 最优解的闭式解。
w^∗=(XTX)−1XTy
注意:这里涉及矩阵求导,详情见矩阵微分公式open in new window。
注意:上式解只存在与当 XTX 为满秩矩阵(full-rank matrix) 或正定矩阵 (positive definite matrix)时。其他情况需要选择哪一个解作为输出,这将由学习算法的归纳偏好决定
在上文中,我们希望我们构造的线性模型的预测值逼近真实标记 y ,但为了分类的准确性,我们想让线性预测值处于一定的范围,可以选择构造线性模型,使其预测值逼近 y 的衍生物 g(y) ,例如:
lny=wTx+b.
这就是 “对数线性回归” (log-linear regression)
, 它实际上是在试图让 ewTx+b 逼近 y. 该式在形式上仍是线性回归, 但实质上已是在求取输入空间到输出空间的非线性函数映射, 如下图所示. 这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用.
更一般的,考虑单调可微函数 g(⋅) ,令
g(y)=wTx+b
这样得到的模型称为 “广义线性模型” (generalized linear model)
, 其中函数 g(⋅) 称为 “联系函数” (link function)
. 显然, 对数线性回归是广义线性模型在 g(⋅)=ln(⋅) 时的特例.
上文提到,我们想让输出结果落在一定的范围内,以使得其输出结果更好的反映分类结果大小,为了这个目的,我们找到了一个连续单调可微函数 “对数几率函数(logistic function)”
:
g−1(z)=1+e−z1
对数几率函数是一种 “sigmoid” 函数,它能将输出值转化为一个接近 0 或 1 的 y 值,将对数几率函数作为联系函数,构造对数几率回归模型:
y=1+ewTx+b1ln1−yy=wTx+b
若将 y 视为样本 x 作为正例的可能性, 则 1−y 是其反例可能性, 两者的比值1−yy 称为 “几率” (odds), 反映了 x 作为正例的相对可能性. 对几率取对数则得到 “对数几率” (log odds, 亦称 logit)
ln1−yy
于是, 我们可通过 “极大似然法” (maximum likelihood method)
来估计 w 和 b. 给定数据集 {(xi,yi)}i=1m, 对率回归模型最大化 “对数似然” (log-likelihood)
ℓ(w,b)=i=1∑mlnp(yi∣xi;w,b)
即令每个样本属于其真实标记的概率越大越好. 为便于讨论, 令 β=(w;b), x^=(x;1), 则 wTx+b 可简写为 βTx^.
其中,由所建立的含参线性模型,我们知道:
lnp(y=0∣x)p(y=1∣x)=wTx+b.
显然有
p(y=1∣x)=1+ewTx+bewTx+b,p(y=0∣x)=1+ewTx+b1,
代入上述模型,得到最后的性能度量函数:
ℓ(β)=i=1∑m(−yiβTx^i+ln(1+eβTx^i)).
最大似然法简单介绍:快速理解极大似然法open in new window
这里省略了部分步骤,详情请见南瓜书。
与上述模型不同的是,对数几率模型无法获取闭式解,只能通过牛顿法或梯度下降法求解数值最优解。于是得到:
β∗=βargminℓ(β).
常见的几种最优化方法(梯度下降法、牛顿法、拟牛顿法、共轭梯度法等)open in new window
线性判别分析(Linear Discriminant Analysis, 简称 LDA) 是一种经典的线性学习方法, 在二分类问题上因为最早由Fisher提出, 亦称 “Fisher 判别分析”.
LDA 的思想为: 给定训练样例集, 设法将样例投影到一条直线上, 使得同类样例的投影点尽可能接近、不同类样例的投影点尽可能远离; 在对新样本进行分类时, 将其投影到同样的这条直线上, 再根据投影点的位置来确定新样本的类别. 如下图所示:
给定数据集 {(xi,yi)}i=1m
第 i 类示例的集合 Xi
第 i 类示例的均值向量 μi
第 i 类示例的协方差矩阵 Σi
两类样本的中心在直线上的投影: wTμ0 和 wTμ1
两类样本的协方差: wTΣ0w 和 wTΣ1w
同类样例的投影点尽可能接近 →wTΣ0w+wTΣ1w 尽可能小
异类样例的投影点尽可能远离 →wTμ0−wTμ122 尽可能大
于是, 性能度量可以表示为
J=wTΣ0w+wTΣ1wwTμ0−wTμ122=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw
首先要求解最优化的性能度量来估计参数,需要补充一个知识点:“广义瑞利商”(generalized Rayleigh quotient)
我们首先来看看瑞利商的定义。瑞利商是指这样的函数 R(A,x) :
R(A,x)=xHxxHAx
其中 x 为非零向量,而 A 为 n×n 的Hermitan矩阵。所谓的Hermitan矩阵就是满足共轭转置矩阵和自己相等的矩阵,即 AH=A 。如果我们的矩阵 A 是实矩阵,则满足 AT=A 的矩阵即为Hermitan 阵。
瑞利商 R(A,x) 有一个非常重要的性质,即它的最大值等于矩阵 A 最大的特征值,而最小值等于矩 阵 A 的最小的特征值,也就是满足
λmin≤xHxxHAx≤λmax
具体的证明这里就不给出了。当向量 x 是标准正交基时,即满足 xHx=1 时,瑞利商退化为: R(A,x)=xHAx ,这个形式在谱聚类和PCA中都有出现。
以上就是瑞利商的内容,现在我们再看看广义瑞利商。广义瑞利商是指这样的函数 R(A,B,x) :
R(A,x)=xHBxxHAx
此时我们的 R(A,B,x) 转化为 R(A,B,x′) :
R(A,B,x′)=x′Hx′x′HB−1/2AB−1/2x′
利用前面的瑞利商的性质,我们可以很快的知道, R(A,B,x′) 的最大值为矩阵 B−1/2AB−1/2 的 最大特征值,或者说矩阵 B−1A 的最大特征值,而最小值为矩阵 B−1A 的最小特征值。
详见 瑞利熵和广义瑞利熵open in new window
我们看性能度量的表达式:
J=wTΣ0w+wTΣ1wwTμ0−wTμ122=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw
为了配凑广义瑞利商的形式,我们有如下的定义:
定义 “类内散度矩阵” (within-class scatter matrix)
Sw=Σ0+Σ1=x∈X0∑(x−μ0)(x−μ0)T+x∈X1∑(x−μ1)(x−μ1)T
以及 “类间散度矩阵” (between-class scatter matrix)
Sb=(μ0−μ1)(μ0−μ1)T,
则性能度量可重写为
J=wTSwwwTSbw
这就是 LDA 欲最大化的目标,即 Sb 与 Sw 的广义瑞利商
Sbw=λSww
可以解得估计的参数为:
w=Sw−1(μ0−μ1)
多分类学习问题,通常由多个二分类问题构成,将多分类问题拆解为二分类问题,有三种拆分策略:
- 一对一 (OvO)
- 一对其余 (OvR)
- 多对多 (MvM)
容易看出, OvR 只需训练 N 个分类器, 而 OvO 需训练 N(N−1)/2 个分 类器, 因此, OvO的存储开销和测试时间开销通常比 OvR 更大. 但在训练时, OvR 的每个分类器均使用全部训练样例, 而 OvO 的每个分类器仅用到两个类 的样例, 因此, 在类别很多时, OvO 的训练时间开销通常比 OvR 更小. 至于预 测性能, 则取决于具体的数据分布, 在多数情形下两者差不多.
MvM 是每次将若干个类作为正类, 若干个其他类作为反类. 显然, OvO 和 OvR 是 MvM 的特例. MvM 的正、反类构造必须有特殊的设计, 不能随意选取. 这里我们介绍一种最常用的 MvM 技术: “纠错输出码” (Error Correcting Output Codes, 简称 ECOC)
.
ECOC 是将编码的思想引入类别拆分, 并尽 可能在解码过程中具有容错性. ECOC 工作过程主要分为两步:
- 编码: 对 N 个类别做 M 次划分, 每次划分将一部分类别划为正类, 一部 分划为反类, 从而形成一个二分类训练集; 这样一共产生 M 个训练集, 可 训练出 M 个分类器.
- 解码: M 个分类器分别对测试样本进行预测, 这些预测标记组成一个编 码. 将这个预测编码与每个类别各自的编码进行比较, 返回其中距离最小 的类别作为最终预测结果.
类别划分通过 “编码矩阵” (coding matrix)
指定. 编码矩阵有多种形式, 常见的主要有二元码 和三元码. 前者将每个类别分别指定为正类和反类, 后者在正、反类之外, 还可指定 “停用类” . 图(a) 给出了一个示意图, 分类器 f2 将 C1 类和 C3 类的样例作为正例, C2 类和 C4 类的样例作为反例; 在图 (b) 中, 分类器 f4 将 C1 类和 C4 类的样例作为正例, C3 类的样例作为反例. 在解码阶段, 各分 类器的预测结果联合起来形成了测试示例的编码, 该编码与各类所对应的编码 进行比较, 将距离最小的编码所对应的类别作为预测结果. 例如在图 (a) 中, 若基于欧氏距离, 预测结果将是 C3.