线性回归是比较简单的机器学习演算法,很多机器学习的书籍介绍的第一种演算法就是线性回归,但大多数的机器学习书籍都是给出线性回归的表达式,然后讲解怎么求参数最优化。但本文主要先介绍线性回归中的三个问题,以此引出线性回归的讲解。本文讲解目录:(1) 线性回归的理论依据 (2) 过拟合意味著什么 (3) 模型优化的方向

(4) 对上述的总结

线性回归的理论依据

泰勒公式

若函数f(x)在包含x0的某个区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x,有下式成立:f(x) = frac{f(x_{0})}{0!} + frac{f^{}(x_{0})}{1!} (x-x_{0}) + frac{f^{}(x_{0})}{2!}(x-x_{0})^{2} + ... + frac{f^{n}(x_{0})}{n!}(x-x_{0})^{n} + o(x-x_{0})^{n}

phi(x) = [phi_{0}(x-x_{0}), phi_{1}(x-x_{0}),phi_{2}(x-x_{0}),...,phi_{n}(x-x_{0})]^{T}

其中 phi_{0}(x) = 1, phi_{n}(x) = (x-x_{0})^{n}

令$ w_{n} = frac{f^{n}(x_{0})}{n!}, w=(w_{0},w_{1},...,w_{n})^{T} $

即:

f(x) = sum_{k=0}^{n} w_{k}phi_{k}(x) +o(x-x_{0})^{n}

f(x) = overrightarrow{w}^{T} * overrightarrow{phi(x)} + o(x-x_{0})^{n}

结论:对于区间[a,b]上任意一点,函数值都可以用两个向量内积的表达式近似,其中 phi_{k}(x) 是基函数(basis function), w_{k} 是相应的系数。高阶表达式 o(x-x_{0})^{n} 表示两者值的误差。

傅里叶级数

对于周期为T的函数,频率 w_{0} = frac{2pi}{T} ,函数f(x)的表达式如下: f(x) = c_{0} + sum_{i=1}^{infty} c_{n} cos(nw_{0}x)

n ge N 时,f(t)收敛,则:

f(x) = c_{0} + sum_{n=1}^{N}c_{n}cos(nw_{0}x)+epsilon ,其中epsilon 
ightarrow 0

phi(x) = [phi_{0}(x),phi_{1}(x), phi_{2}(x), ..., phi_{n}(x)]^{T} ,

其中 phi_{0}(x) = 1, phi_{n}(x) = cos(nw_{0}t)

overrightarrow{c} = (c_{0},c_{1},c_{2},...,c_{n})^{T}

则: f(x) = sum_{n=0}^{N}c_{n}phi_{n}(x) + epsilon

f(x) = overrightarrow{c}^{T} * phi(x) + epsilon

周期函数f(x)可以用内向量内积近似, phi_{n}(x)表示基函数,c_{n}表示相应的系数,epsilon表示误差。

线性回归

由泰勒公式和傅里叶级数可知,当基函数的数量足够多时,向量内积无限接近于函数值。线性回归的向量内积表达式如下:

f(x) = w_{0} + w_{1}phi_{1}(x) + w_{2}phi_{2}(x) + ... + w_{n}phi_{n}(x) + epsilon

f(x) = sum_{j=0}^{n} w_{j}phi_{j} + epsilon , 其中 phi_{0}(x) = 1

f(x) = overrightarrow{w_{j}}^{T} overrightarrow{phi_{j}} + epsilon

其中,overrightarrow{w_{j}} = [w_{0},w_{1},w_{2},...,w_{n}]^{T}

overrightarrow{phi_{j}(x)} = [phi_{0}(x),phi_{1}(x),phi_{2}(x),...,phi_{n}(x)]^{T}, phi_{0}(x) = 1, epsilon为误差

若令 phi_{n}(x) = x^{n}, 除了多了方差 epsilon 这一项,f(x)的表达式就是最为常见的线性回归表达式。

过拟合问题

过拟合定义

构建模型的训练误差很小或为0,测试误差很大,这一现象称为过拟合。

高斯杂讯数据模型

我们采集的样本数据其实包含了杂讯,假设该杂讯的高斯杂讯模型均值为0,方差为 delta^{2} 。若样本数据的标记为y1,理论标记为y,杂讯为 eta ,则有:

y1 = y + eta,(其中,eta 是高斯分布的抽样)

上节的线性回归表达式的方差 epsilon 表示的意义是杂讯高斯分布的随机抽样,书本的线性回归表达式把方差 epsilon 也包含进去了。

过拟合原因

数学术语:当基函数的个数足够大时,线性回归表达式的方程恒相等。

如下图:

f(x) equiv overrightarrow{w_{j}}^{T}overrightarrow{phi_{j}(x)} + epsilon,对于任意的样本数据,等式恒成立

机器学习术语:模型太过复杂以致于把无关紧要的杂讯也学进去了。

当线性回归的系数向量间差异比较大时,则大概率设计的模型处于过拟合了。用数学角度去考虑,若某个系数很大,对于相差很近的x值,结果会有较大的差异,这是明显的过拟合现象。

过拟合的解决办法是降低复杂度。

模型的优化方向

模型的不同主要体现在参数个数,参数大小以及正则化参数 lambda ,优化模型的方法是调节上面三个参数(但不仅限于此,如核函数),目的是找到最优模型。

总结

本文通过泰勒公式和傅里叶级数的例子说明线性回归的合理性,线性回归表达式包含了方差项,该方差是高斯杂讯模型的随机采样,若训练数据在线性回归的表达式恒相等,那么就要考虑过拟合问题了。回归系数间差异比较大也是判断过拟合的一种方式。模型优化的方法有很多种,比较常见的方法是调节参数个数,参数大小以及正则化参数 lambda


推荐阅读:
相关文章