前一节我们曾描述了线性回归的数学表示,最终得出结论,线性回归的机器学习过程就是一个使得损失函数最小的最优化问题求解过程。
Normal Equation
对于损失函数,可以使其导数为零,寻找损失函数的极值点。
一元线性回归
假设我们的模型只有一维数据,模型是一条直线
,我们共有
条训练数据,损失函数为误差平方和的平均数:
可以对
和
分别求导,导数为0时,损失函数最小。
上面两个公式是损失函数
对
和
进行求偏导。当导数为0时,可以求得损失函数的最小值,即由上面两个公式可以得到最优解
和
。
最优解为:
其中,
,即为
的均值。
以上就是一元线性回归的最小二乘法求解过程。很多机器学习模型中都需要经历上述过程:确定损失函数,求使损失函数最小的参数。求解过程会用到一些简单的微积分,因此复习一下微积分中偏导数部分,有助于理解机器学习的数学原理。
多元线性回归
更为一般的情形下,特征是多维的:
上面的公式中,我们其实是使用
来表示参数中的
,将
添加到特征向量中,将
维特征扩展成
维,也就是在每个
中添加一个值为1的项。各个向量和矩阵形状如下面公式所示。
其中,向量
表示模型中各个特征的权重;矩阵
的每一行是一条样本,每条样本中有
个特征值,分别为该样本在不同维度上的取值;向量
为真实值。可以用内积的形式来表示求和项:
。用矩阵乘法的形式可以表示为:
。
一般机器学习领域更喜欢使用矩阵乘法的形式来表示一个模型,这不仅因为这样表示起来更简单,也是因为现代计算机对向量计算做了大量优化,无论是CPU还是GPU都喜欢向量计算,并行地处理数据,可以得到成百上千倍的加速比。
注意,公式中不加粗的表示标量,加粗的表示向量或矩阵。
比一元线性回归更为复杂的是,多元线性回归最优解不是一条直线,是一个多维空间中的超平面,训练数据散