flydreamforever 2019-04-22
线性回归可以说是机器学习中最简单,最基础的机器学习算法,它是一种监督学习方法,可以被用来解决回归问题。它用一条直线(或者高维空间中的平面)来拟合训练数据,进而对未知数据进行预测。
基本套路
机器学习方法,无外乎三点:模型,代价函数,优化算法。
首先找到一个模型用于预测未知世界,然后针对该模型确定代价函数,以度量预测错误的程度,最后使用优化算法在已有的样本数据上不断地优化模型参数,来最小化代价函数。
通常来说,用的最多的优化算法主要是梯度下降或拟牛顿法(L-BFGS或OWL-QN),计算过程都需要计算参数梯度值,下面仅从模型、代价函数以及参数梯度来描述一种机器学习算法。
基本模型
代价函数
参数梯度
上述描述是按照常规的机器学习方法来描述线性回归,模型参数一般是通过梯度下降或拟牛顿法优化迭代得到。
其实线性回归问题是可解的,只是在样本维度较大时很难求解才使用优化迭代的方法来逼近,如果样本维度并不是很大的情况下,是可以解方程一次性得到样本参数。
最小二乘
加权最小二乘
应用套路
在实际应用时,基于上述基本套路可能会有些小变化,下面首先还是从模型、代价函数以及参数梯度来描述。
正则化
为了防止过拟合,一般会在代价函数上增加正则项,常见的正则方法有:
加上正则项后,代价函数变成如下形式:
由于L1正则项不可导,如果 α 不为0,那么不能简单的套用梯度下降或 L-BFGS,需要采用借助软阈值(Soft Thresholding)函数解决,如果是使用拟牛顿法,可以采用OWL-QN,它是基于L-BFGS算法的可用于求解L1正则的算法。基于上述代价函数,下面仅列出包含L2正则项时的参数梯度:
实际上,使用L2正则,是将前面所述的最小二乘方程改成如下形式:
标准化
一般来说,一个特征的值可能在区间 (0,1)之间,另一特征的值可能在区间(−∞,∞),这就是所谓的样本特征之间量纲不同,这样会导致优化迭代过程中的不稳定。
当参数有不同初始值时,其收敛速度差异性较大,得到的结果可能也有较大的差异性,如下图所示,可以看到X和Y这两个变量的变化幅度不一致,如果直接使用梯度下降来优化迭代,那么量纲较大的特征信息量会被放大,量纲较小的特征信息量会被缩小。
所以一般要对数据作无量纲化处理,通常会采用标准化方法 (x−u)/σ ,得到如下数据分布,这样无论从哪个点开始,其迭代方向的抖动都不会太大,每个特征的信息也不至于被放大和缩小。
总结
虽然线性回归现在可能很少用于解决实际问题,但是因为其简单易懂,学习它有助于对机器学习有个入门级的初步掌握,了解机器学习的套路等。