在机器学习中,我们一般要处理的问题就是预测问题。对于离散值的预测我们叫分类(classification),而对于连续值的预测我们就叫做回归(regression)。而在所有机器学习模型中,最基础也是最重要的模型就是线性模型,今天我们就说下机器学习中的线性模型。其基本形式如下:
f(x)=w1∗x1+w2∗x2+...+wd∗xd+b(1-1) 将其用向量表示形式如下: f(x)=wT∗x+b(1-2) 其中 w=(w1,w2,...,wd)T , x=(x1,x2,...,xd)T 。在这里 w 和 b 即是线性模型的参数, x 即是我们要预测的数据。而获取线性模型的最终目的即是训练该模型的参数w和 b 。有时候为了表示的方便,我们会将 w 和 b 联合表示成w^=(w1,w2,...,wd,d)T, 而 x^=(x1,x2,...,xd,1)T ,这样的话式(1-2)即可以表示成如下所示的简洁形式: f(x)=w^T∗x^(1-3) 而在线性模型的创建过程中就是从数据中学习到模型的 w^ 参数。前面说过了,回归的任务就是预测连续值。在给定的数据集 D={(x1,y1),(x2,y2),...,(xm,ym)} , 其中 xi=(xi1,xi2,...,xid)T,yi∈R 中, xi 是样本的属性, yi 是样本的标记(因为是回归任务所以这里是连续值),线性模型就是希望针对这组数据可以学到一个模型以能够准确的预测样本的标记。为了叙述的方便,我们考虑二维的情况,即该数据只用一个属性。其数据如图2-1所示: 图2-1 数据集
对于该数据集,我们需要训练出一个线性模型来预测给定 xi 的标签值 yi 。确定 w 和b 的关键在于如何衡量 f(x) 与 y 之间的差别。我们一般通过均方误差去衡量模型的好坏: (w∗,b∗)=argmin(w,b)∑i=1m(f(xi)−yi)2(2-1)
看到这里应该能想到“最小二乘法”可以求解上面的等式。在线性回归中,最小二乘法就是试图找到一条直线使所有样本到直线的欧氏距离和最小。对于式(1-3),令 X 表示样本矩阵 X=(x^1,x^2,...x^m)T 其最小二乘法的解析表达式是
w^∗=(XTX)−1XTy(2-2) 最小二乘法解析式求解方式网上有很多资料,这里就不说了,当然通过矩阵求导可以很容易的求出该表达式。 因此我们最后的模型即是 f(xi)=wTxi(2-3) 图2-1的预测模型如图2-2所示: 图2-1 拟合模型但是要注意的是 XTX 必须满秩才能有逆矩阵,而其满秩就要求样本数量必须要大于属性个数才可以。求解式(2-1)除了用最小二乘法求出其解析式以外,还有可以通过迭代法进行求解,如梯度下降法(gradient descent),不过这里就不介绍梯度下降法了,以后专门写一个博客介绍梯度下降法及其优化算法。
这里介绍的线性模型还可以拓展到“广义线性模型(generalized linear model)”,即
y=g−1(wTx+b)(2-4) 这里的 g() 是个连续且光滑的函数,如 ln() 对数函数。