这一章也是本书基本理论的一章,我对这章后面有些公式看的比较模糊,这一会章涉及线性代数和概率论基础知识,讲了几种经典的线性模型,回归,分类(二分类和多分类)任务。
3.1 基本形式
给定由d个属性描述的示例 x =(x1;x2;… ;xd),其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即:
f(x) = w1x1 + w2x2 + … + wdxd + b
一般用向量形式写成:
f(x) = wTx + b
其中x =(x1;x2;… ;xd),w和d学得之后,模型就得以确定。
线性模型,形式简单、易于建模,蕴含着机器学习中一些重要的基本思想,许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得,此外,由于w直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性(comprehensibility)。例如在西瓜问题中学得“f好瓜(x) = 0.2*x色泽 + 0.5*x根蒂 + 0.3*x敲声 + 1”。
3.2 线性回归
给定数据集 D = {(x1, y1), (x2, y2), … , (xm, ym)},其中xi = (xi1;xi2;… ;xid),yi ∈ R。“线性回归(linear regression)”试图学得一个线性模型尽可能地预测实值输出标记。
线性回归试图学得
我们要去确定w和b,在2.3节介绍过,均方误差(2.2)是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即:
w*, b* 表示w和b的解。
均方误差,有非常好的几何意义,对应了常用的欧几里得距离或简称“欧氏距离(Euclidean method)”,在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。
求解w和b使最小化的过程,叫做线性回归模型的最小二乘“参数估计(parameter estimate)”,然后E(w, b)分别对w和b求导,得到:
然后令上面两个式子为零,求得w和b最优解的闭式(closed-form)解:
其中 为x的均值。
更一般的,数据集D,样本由d个属性描述,此时我们试图学得:
这称为“多元线性回归(multivariate linear regression)”(这部分涉及公式教繁,线性代数知识具体推导书上)
我们希望线性模型的预测值逼近真实标记y时,就得到了线性回归模型,为便于观察,写作:
我们要让输出标记y在指数尺度上变化,可做变化:
这就是“对数线性回归(log-linear regression)”,它实际上是在试图让逼近y,下图很明了:
更一般的,考虑单调可微函数g(*),令:
这样得到的模型称为“广义线性模型(generalized linear model)”,其中函数g(*),称为“联系函数(link function)”。显然,对数线性回归是广义线性模型在g(*) = ln(*)时的特例。
3.3 对数线性回归
考虑二分类任务,其输出标记y∈{0, 1},而线性回归模型产生的预测值 是实值,于是,我们需将实值转换为0/1值,最理想是“单位阶跃函数(unit-step function)”
即若预测值z大于零就判为正例,小于零就判为反例,预测值为临界值零则可任意判别,如下图:
对数几率函数(logistic function)是这样一个常用的替代函数:
将对数几率函数作为g-(*)带入,得:
整理一下:
若将y视为样本x作为正例的可能性,则1-y是其反例可能性,两者比值:
称为“几率(odds)”,反映了样本x作为正例的相对可能性,然后对几率取对数得“对数几率(log odds,也称logit)”:
由此看出,实际上面在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为“对数几率回归(logistic regression,也称logit regression)”。要注意的是,虽然它的名字是“回归”,但实际上确实一种分类学习方法。
3.4 线性判别分析
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上最早由[Fisher, 1936]提出,所以也叫做“Fisher判别分析”。
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离,下面这个图就一目了然:
后续推导过程在书上。
3.5 多分类学习
现实中常见遇到多分类任务。有些二分类学习方法可直接推广到多分类。但多数情况下,要基于一些基本策略,利用二分类学习器来解决多分类问题。
不失一般性,考虑N个类别C1, C2, … , CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆分为若干个二分类任务求解。最经典的拆分策略有三种:“一对一(One vs. One,简称OvO)”、“一对余(One vs. Rest,简称OvR)”和“多对多(Many vs. Many,简称MvM)”。
3.6 类别不平衡问题
(阅读后续章节,待续)