线性模型

说明:本博客是学习线性模型的笔记,参考了周志华的《机器学习》,华校专、王正林的《Python大战机器学习》,孙亮、黄倩的《实用机器学习》,截图也来自上述书中,在此对他们表示感谢。

1.1概述

线性模型形式简单、易于建模,但却蕴含着机器学习中一些重要的基本思想,许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得。

1.2普通线性回归

给定数据集D=线性模型样本有m个特征,Xi表示样本的第i个特征,线性模型。我们需要建立的模型为:
线性模型其中W=(W1,W2,…,Wm)^T为每一个特征对应的权重生成的权重向量,称为权重向量,权重向量直观地表达了各个特征在预测中的重要性。

“线性回归”试图学得一个线性模型使得预测值尽可能接近标签值。对于给定的样本xi,即:
线性模型。采用平方损失函数,则对于数据集D,模型的损失函数为:
L(f) = 线性模型=线性模型
对于模型的建立,目前我们要做的是确定W和b,即根据已知的数据集D来计算参数W和b,使得上述的损失函数最小化。即:
线性模型式子1

其中线性模型

对于上述最优化问题的数值解,可以采用最小二乘法和使用梯度下降法求解。

在使用梯度下降法求解时,要注意特征的归一化(Feature Scaling),这也是许多机器学习模型都需要注意的问题。

特征归一化有两个好处。(1) 提升收敛速度,比如两个特征x1和x2,x1的取值为0~200,x2为1~5,假如只有这两个特征,对其优化时,会得到一个窄长的椭圆形,导致在梯度下降是,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢。相比之下,归一化后,是一个圆形,梯度的方向直接指向圆心,迭代会很快,大大地减少寻找最优解的时间。(2) 提升模型精度。这在设计距离计算的算法时效果显著,比如要计算欧式距离,上述x2的取值范围比较小,涉及距离计算时其对结果的影响远比x1带来的小,会造成精度的损失。总的来说,归一化后,使得每个特征值在距离计算时的贡献是一样的。

回过头来,上述最优化问题实际上是有解析的,可以用最小二乘法求解,该问题称为多元线性回归(multivariate linear regression)。

为便于讨论,把w和吧吸收入向量形式线性模型,相应的,把数据集D表示为一个m*(d+1)大小的矩阵X,即:
线性模型
则对于w的解:
线性模型
线性模型

上面式子的计算详细过程如下:
首先得知道一些求导的公式:
线性模型
对E(w)展开:
线性模型
对参考上面的求导公式对w求导:
线性模型

令w求导后的结果为0,即Xw-y = 0,得到解析解。

由于涉及到矩阵的计算,比单变量情形要复杂,下面将做一些简单的讨论。

当X^TX为满秩矩阵或者正定矩阵时,可得:
线性模型
线性模型则最终学得的多元线性回归模型为
线性模型

当X^TX不是满秩矩阵时。比如N < m(样本数量小于特征种类的数量),根据x的秩小于等于(N,m)中的最小值,即小于等于N(矩阵的秩一定小于等于矩阵的函数和列数);而矩阵X^TX是m*m大小的,它的秩一定小于等于N,因此不是满秩矩阵。此时存在多个解析解。常见的做法是引入正则化项,如L1正则化或L2正则化。以L2正则化为例:
线性模型

2、广义线性模型

我们把线性回归模型简写为y=W^TX + b。可否令模型预测值逼近y的衍生物呢?譬如说,假设我们认为所对应的输出标记是在指数尺度上变化,那就可将输出标记的对数作为线性模型逼近的目标,即线性模型这就是“对数线性回归”,它实际上是在试图让线性模型逼近y。上式在形式上仍是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射,如下图所示
线性模型
这样的模型也称作“广义线性模型”(generalized linear model)。

3、逻辑回归

线性模型

3.1 sigmoid函数的性质

线性模型
线性模型

先到这里,以后再写。