我们在初中学习线性方程的时候就已经接触过回归的相关概念,在这里简单介绍一下机器学习中的“回归”,机器学习的目的有两个:回归和分类,回归是解决连续数据的预测问题,而分类是为了解决离散数据的预测问题。线性回归是机器学习算法中最简单的算法之一,它是监督学习的一种算法,主要思想是在给定训练集上学习得到一个线性函数,在损失函数的约束下,求解相关系数,最终在测试集上测试模型的回归效果。线性模型的形式如下
写成向量形式就是
其中x可以看成特征,看成是权重。我们的目标就是找出所有的
值,进而出现新的x值时,可以对函数的输出进行估计。那我们如何求得使函数输出最接近样本的
值呢?函数输出最接近样本值就意味着二者之差尽可能的小。我们假设输入的特征为
,对应的样本值为
,我们用模型估计出的值为
,估计值与真实值之间的误差表示为
成为损失函数,损失函数的自变量为
,所以我们需要找到
最小时
的取值。
在机器学习中我们采用梯度下降算法求解该方程,将向量表达形式转为矩阵表达形式,则有,其中X为m行n列的矩阵(m为样本个数,n为特征个数),
为n行1列的矩阵,Y为m行n列的矩阵,对
进行如下变换
接下来对求偏导,需要用到以下几个矩阵的求导法则
(*)
对于(*)式可以假设X为一行一列,,其导数为2AX,方便记忆
所以有
令
则有
这是在可逆的前提下得到的,事实上存在
不可逆的情况,我们在之后的ridge和lasso回归会针对这样的情况进行讨论,在此我们默认其是可逆的。
可以根据公式直接求得的值,但是当X维度很高时矩阵求逆计算量非常大,所以我们在实际应用中往往采用梯度下降的算法更新
,方法如下
其中为学习率。算法部分主要着重公式推导,梯度下降算法在对应的机器学习项目实践中会详细介绍。
到此为止,线性回归模型的公式推导已经结束,下一节我们将探讨线性回归与广义线性模型之间的关系以及对损失函数的一些思考。