1 线性模型

1.1 线性模型的基本形式

线性模型(linear model)就是试图学得一个通过属性的线性组合来进行预测的函数,即

线性模型的调整 R2_数据集


一般用向量形式写成:

线性模型的调整 R2_线性模型_02


其中的,x1,x2,…,等表示多个属性值;其中的w1,w2,…,等表示对应属性的权值,类似于表示该属性值对应的重要性;其中b表示线性函数的一个偏移量,w和b刚开始都是先赋值一些初始值,然后通过模型训练,逐渐修改w和b的数值,以得到一个较为合适的数值,得到较好的预测效果。

1.2 线性回归

我们首先先介绍一个在只有一个属性的数据集当中,讲解线性回归的原理,然后再介绍多个属性的数据集当中,线性回归的原理,有简单到复杂,一步一步来学习。

单个属性的数据集
数据集D = {(x1, y1),(x2, y2), …,(xm, ym)}
(如果属性值x,为离散属性,就需要进行一定的转换。如果属性值间存在序的关系(可以理解为大可以排列大小的关系),那么就可以通过连续化将其转化为连续的数值,例如“高”和“矮”可以转化为{1.0,0.0},‘高’,‘中’,‘低’可以转化为{1.0,0.5,0.0};如果属性之间不存在序关系,可以对属性进行One-Hot编码,转化为k维的仅有0,1组成的单位向量。)

线性回归模型需要通过训练得到

线性模型的调整 R2_机器学习_03


希望确定w和b的值,从而使预测值f(x)与真实值y之间的误差最小化。在回归任务当中,通常使用均方误差来做模型的性能度量,衡量预测值和真实值之间的差别。

线性模型的调整 R2_线性回归_04


(图中的argmin表示,因变量取得最小值时自变量的值)

均方误差在几何中对应了欧几里得距离(简称“欧氏距离”,Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method)。在线性回归中,最小二乘法就是试图找到一条直线,使得所有的样本到直线的欧式距离之和最小。求解w和b使得均方误差最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter,estimation)。均方误差如下:

线性模型的调整 R2_机器学习_05


E分别对w和b进行求导:

线性模型的调整 R2_线性模型的调整 R2_06


然后令上面两个式子都为零,可以组成一个方程组,进而求解得到w和b的最优解的闭式解

线性模型的调整 R2_数据集_07


线性模型的调整 R2_机器学习_08


对于多属性的数据集

多属性的数据集是更常见的情形,样本有d个属性描述,共有m个样本。此时试图学得:

线性模型的调整 R2_机器学习_09


wx都是加粗,都表示一个向量;下面的计算都是矩阵运算,需要一定的基础。)

类似的,对于多属性的情况,还是根据最小二乘法来对w和b进行估计。为了方便计算,我们把b和w组成一个新的向量

线性模型的调整 R2_线性回归_10


,有原来的(d x 1)向量,编程(d+1 x 1)的向量;我们也把样本的属性数据变成一个m x d的矩阵,然后增加一列1,变成m x (d+1)的矩阵,如下所示:

线性模型的调整 R2_线性模型的调整 R2_11


再把样本的标记值也写成向量形式y,求解w和b的值的式子如下:

线性模型的调整 R2_机器学习_12


线性模型的调整 R2_线性模型的调整 R2_13


矩阵表示的均方误差如下所示:

线性模型的调整 R2_机器学习_14


局方误差E对w和b的组合向量进行求导,结果如下:

线性模型的调整 R2_线性回归_15


令上式等于零可以求得w和b的最优解的闭式解,此处设计腰围复发的矩阵逆的计算,下面做一个简单的讨论。

当XTX为(T表示矩阵转置)满秩矩阵或者正定矩阵时,可以得到:

线性模型的调整 R2_线性回归_16


线性模型的调整 R2_线性模型的调整 R2_17


则最终得到的多元线性回归模型为:

线性模型的调整 R2_线性回归_18


然而,在现实中大多数情况下,XTX不是满秩矩阵,此时可解出多个w和b,他们都可以让局方误差最小化。选择哪一个解作为输出,由学习算法决定,常见的作法就是引入正则化项(regularization)。

1.3 对数几率回归

1.2节讨论了如何使用线性模型进行回归学习,下面我们讨论如何用线性模型进行分类学习。

只需要找到一个单调可微的函数,将分类任务的真实标记y与线性回归模型产生的预测值联系起来。

考虑到二分类任务,我们可以用一个分段函数,将线性回归模型的预测值与二分类0和1联系起来:

线性模型的调整 R2_线性模型的调整 R2_19


即预测值z大于零就判断我正例,小于零就判断为反例,预测值为临界值零则可任意判决,如图所示:

线性模型的调整 R2_线性模型的调整 R2_20


但从图中可以看出,分段函数不连续,因此不能当做连接函数,而对数几率函数(logistic function)正是这样一个常用的函数:

线性模型的调整 R2_线性模型的调整 R2_21


对数几率函数是一种“Sigmoid函数”,它将z值转化为一个接近0或1的y值,并且在输出值在z = 0附近变得很陡峭。将对数几率函数作为预测值和类别之间的连接函数,得到:

线性模型的调整 R2_线性回归_22


可以转变为:

线性模型的调整 R2_线性模型的调整 R2_23


若将y视为样本x作为正例的可能性,则1-y是反例的可能性,两者的比值可以成为“几率”,反映了x作为正例的相对可能性,对几率取对数则得到“对数几率”(logit)。

由此可以看出,线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为“对数几率回归”(logistic regression),名字虽然是回归,但确实一种分类学习方法。

至于对数几率回归的数学原理,由于牵扯到“极大似然法”,而且在求解最优解中,还需要用牛顿法或梯度下降法,过程较为复杂,感兴趣的朋友可以网上搜一搜过程,这个过程我会专门用一篇文章来讲解。

1.4 线性判别分析

线性判别分析(linear discriminant analysis,简称LDA)是一种经典的线性学习方法。

LDA的思想如下:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能的靠近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。如下面二维示意图所示:

线性模型的调整 R2_线性模型_24


当前的任务就是找到一条合适的直线。这条直线需要满足两个条件:

1)欲使同类样例的投影点尽可能的接近,可以让同类样例投影点的协方差C尽可能的小;

2)欲使异类样例的投影点尽可能的远离,可以让类中心之间的距离D尽可能的大;

同时考虑上面两种情况,可以得到一个欲最大化的目标:J = D / C

(为了方面大家快速理解,其中复杂的数学公式我就不展示了,只为解释当中的原理)上面得到的J,称为“类内散度矩阵”(within-class scatter matrix),与之对应的还有一个“类间散度矩阵”(between-class scatter matrix)S,通过S可以将上面得到的J进行相应的公式化简,结果如下:

线性模型的调整 R2_线性回归_25


化简的结果就是LDA想要最大化的目标,后面再利于一些数学方法得到直线的参数w

多分类的LDA也有很多种实现方法,常见的一种方法就是将样本投影到N-1维空间,N-1通常远小于数据原有的属性数。于是,可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此LDA也常被视为一种经典的监督降维技术。