何为线性?何为回归?
线性
线性,包括可加性和齐次性
①可加性,也称叠加性。函数若满足下式
则称函数具有可加性
②齐次性,也称均匀性。若函数若满足下式
其中,a为与x无关的常数。则称函数具有齐次性
我们其实也可以用一个式子来描述这可加性与齐次性,如下
当函数同时具有可加性与齐次性时,我们则称函数为线性函数
回归
回归是确定多个变量间相互依赖的定量关系
在机器学习中,回归往往指预测的输出为连续值,而线性回归也确实是解决此类任务的
分类任务则是预测的输出为离散型
损失函数
解决回归任务,实际就是找到一条线/超平面来拟合这些样本点,使他们之间的误差尽可能的小。而不同的线/超平面(其中不同的参数值形成的)在同一个数据集下对应着不同的误差,我们则需要找到让误差最小的线/超平面。
现以形如y=kx+b的一元线性函数为例
淡蓝色为样本点,深蓝色和红色的线为生成的两条线。那你们觉得哪条线跟样本点更加符合整体的趋势呢?也就是哪条线更拟合呢?
你:这想都不用想的好吧!那肯定是蓝色那条线效果好啊!
但它为什么好呢?我们要定量得去描述它。此时则需要引入损失函数(又称误差函数)来衡量误差
回归任务中常用的损失函数有:
- 均方误差MSE:
- 均方根误差RMSE:
- 平均绝对误差MAE:
- R-squared:
可以这么理解:将TSS理解为全部按平均值预测,RSS理解为按模型预测,这就相当于去比较你模型预测和全部按平均值预测的比例,这个比例越小,则模型越精确。当然该指标存在负数的情况,即模型预测还不如全部按平均值预测。越接近1,模型拟合得就越好
最小化损失函数
再次强调:回归任务是拟合样本点,使误差尽可能的小
最小二乘法(一元线性函数)
我们用一元线性函数为例讲解线性回归,其次再引入多元线性回归
此节以一元线性函数y=kx+b为例,采用均方误差MSE作为损失函数,那么损失函数就是关于变量k,b的函数
其中,m为样本个数。此时任务为最小化L(k, b)函数
相信大家在高中或是大学都做过求函数最小值的题,当时是怎么做的呢?求导!让导数=0,求出此时的x,此时的x让函数取得最小值点。但这里是两个变量,那么则求偏导,让偏导=0,求出此时的各个参数,此时的各个参数让损失函数取得最小值,也就是误差最小,也就是拟合效果最好!
对b求偏导
此时,我们对L函数求b的偏导,使用链式求导法则
第一行到第二行:k跟i无关,乘积项可直接提到连加号外面
第二行到第三行:联想一下求均值的公式,实际上把m乘过去就是上面的替换
同时,我们记第三行的式子为①,后续推导有用
对k求偏导
接着,我们对L函数求k的偏导,稍微复杂一些
记第三行得式子为②
接下来式子①*得式子③
接着,②-③得
我们现在就求出了使得函数值最小的k, b参数
最小二乘法(多元线性函数)
定义损失函数
如今,我们将一元变量推广到多原变量,设多元函数式为
这个式子太长了,我们使用线性代数的向量概念对该式进行整理,为方便,记(可以把上函数式的b视为b*1,下面会讲这样做的原因)
此时稍微提一下,在线性代数中,见到一个向量,默认均为列向量,上标为T(转置)的才为行向量(至于为什么要这样规定,是因为竖着写很占版面…你知道它本身是竖着写的就好了)
那么此时,我们构造一个权重向量和特征向量
那么此时,我们上述的多元函数式则可以写成或,是完全等价的
此时,我们可以损失函数写成如下形式
其中,为第i个真实值,为第i个样本的特征向量
注:真实值,标签值,样本值这三个词意思是相同的,后续阐述上可能会混用
进一步化简损失函数
此时,我们觉得还是觉得式子不够简洁,这个连加符号也太影响观感了!
于是,此时可以继续利用线性代数,把连加号去掉,提升观感,同时也方便后续推导
为了化简,我们需要定义两个东西
①标签向量
将m个样本标签值堆叠成一个标签向量(再提一遍没有T的是列向量)
②样本矩阵X
定义样本矩阵X,形状为(m, n+1),m个样本,n+1个特征(其中,第1个特征为1)
这里每一行即是一个样本,每一列即是某一个特征
顺便解释一下上下标:上标(i)代表是第i个样本,下标j代表第j个特征(也可以理解成第j个维度)
那么此时,样本矩阵X乘上权重向量w可得预测值向量,如图
我们还需要借助l2范数进行化简,此处简单介绍
l2范数
l2范数:向量各元素的平方和的平方根,即
|| ||
是范数符号,下标2表示其为2范数。
l2范数有以下公式成立
再再再化简损失函数
损失函数可写成如下形式
(如果不懂的话建议多看几遍)
注意矩阵和向量的大小,X:(m, n+1),w:(n+1, 1),y:(m, 1),开始化简
第一行到第二行:利用公式
第二行到第三行:利用转置的两个运算公式和
第三行到第四行:矩阵满足分配律
第四行到第五行:为什么和可以合并呢?这里就要回归到他们的大小上了
:(1, n+1),:(n+1, m),:(m, 1),他们最终相乘的大小是(1, 1),(1, 1)实际上是一个数
:(1, m), X:(m, n+1),w:(n+1, 1),最终大小也是(1, 1),也是一个数
而,而一个实数的转置本就等于其本身,所以这俩是同一个数
对L(w)求偏导
矩阵求导的相关公式参考了该资料:https://zhuanlan.zhihu.com/p/273729929
第二行到第三行的第一个偏导数:
要用到这个公式
此时将视为整体,也就是公式里的A,其大小为(n+1, n+1),是常数方阵,符合公式的形式,于是
第二行到第三行的第二个偏导数:
要用到这个公式
将视为整体,于是
第四行到第五行为逆矩阵的知识
梯度下降法
梯度下降也是线性回归算法的一种求解方式
关于梯度下降,马同学的回答非常直观且详细
https://www.zhihu.com/question/305638940/answer/1639782992
那么,当你看完这个回答后,可以理解,通过求梯度(这里也就是求对每个参数求偏导)和设定一个学习率(步长),经过指定次数迭代后可到达函数取到最小值的点,也就是获取了让误差值最小的权重向量w
关于求L对w的偏导数,最小二乘法时已提及
那么只需要经过多次迭代
这就是利用梯度下降的线性回归原理