何为线性?何为回归

线性

线性,包括可加性和齐次性

可加性,也称叠加性。函数线性回归F值 线性回归f值是什么_拟合若满足下式
线性回归F值 线性回归f值是什么_线性回归_02
则称函数线性回归F值 线性回归f值是什么_拟合具有可加性

齐次性,也称均匀性。若函数线性回归F值 线性回归f值是什么_拟合若满足下式
线性回归F值 线性回归f值是什么_线性回归F值_05
其中,a为与x无关的常数。则称函数线性回归F值 线性回归f值是什么_拟合具有齐次性

我们其实也可以用一个式子来描述这可加性与齐次性,如下
线性回归F值 线性回归f值是什么_最小二乘法_07
当函数线性回归F值 线性回归f值是什么_拟合同时具有可加性与齐次性时,我们则称函数线性回归F值 线性回归f值是什么_拟合线性函数

回归

回归是确定多个变量间相互依赖的定量关系

在机器学习中,回归往往指预测的输出为连续值,而线性回归也确实是解决此类任务的

分类任务则是预测的输出为离散型

损失函数

解决回归任务,实际就是找到一条线/超平面来拟合这些样本点,使他们之间的误差尽可能的小。而不同的线/超平面(其中不同的参数值形成的)在同一个数据集下对应着不同的误差,我们则需要找到让误差最小的线/超平面。

现以形如y=kx+b的一元线性函数为例

线性回归F值 线性回归f值是什么_最小二乘法_10

淡蓝色为样本点,深蓝色和红色的线为生成的两条线。那你们觉得哪条线跟样本点更加符合整体的趋势呢?也就是哪条线更拟合呢?

你:这想都不用想的好吧!那肯定是蓝色那条线效果好啊!

但它为什么好呢?我们要定量得去描述它。此时则需要引入损失函数(又称误差函数)来衡量误差

回归任务中常用的损失函数有:

  1. 均方误差MSE:
    线性回归F值 线性回归f值是什么_线性回归F值_11
  2. 均方根误差RMSE:
    线性回归F值 线性回归f值是什么_最小二乘法_12
  3. 平均绝对误差MAE:
    线性回归F值 线性回归f值是什么_线性回归_13
  4. R-squared:

线性回归F值 线性回归f值是什么_拟合_14

可以这么理解:将TSS理解为全部按平均值预测,RSS理解为按模型预测,这就相当于去比较你模型预测和全部按平均值预测的比例,这个比例越小,则模型越精确。当然该指标存在负数的情况,即模型预测还不如全部按平均值预测。越接近1,模型拟合得就越好

最小化损失函数

再次强调:回归任务是拟合样本点,使误差尽可能的小

最小二乘法(一元线性函数)

我们用一元线性函数为例讲解线性回归,其次再引入多元线性回归

此节以一元线性函数y=kx+b为例,采用均方误差MSE作为损失函数,那么损失函数就是关于变量k,b的函数
线性回归F值 线性回归f值是什么_拟合_15
其中,m为样本个数。此时任务为最小化L(k, b)函数

相信大家在高中或是大学都做过求函数最小值的题,当时是怎么做的呢?求导!让导数=0,求出此时的x,此时的x让函数取得最小值点。但这里是两个变量,那么则求偏导让偏导=0,求出此时的各个参数,此时的各个参数让损失函数取得最小值,也就是误差最小,也就是拟合效果最好!

对b求偏导

此时,我们对L函数求b的偏导,使用链式求导法则
线性回归F值 线性回归f值是什么_线性回归F值_16
第一行到第二行:k跟i无关,乘积项可直接提到连加号外面

第二行到第三行:联想一下求均值的公式线性回归F值 线性回归f值是什么_损失函数_17,实际上把m乘过去就是上面的替换

同时,我们记第三行的式子为①,后续推导有用

对k求偏导

接着,我们对L函数求k的偏导,稍微复杂一些
线性回归F值 线性回归f值是什么_最小二乘法_18
记第三行得式子为②

接下来式子①*线性回归F值 线性回归f值是什么_最小二乘法_19得式子③
线性回归F值 线性回归f值是什么_损失函数_20
接着,②-③得
线性回归F值 线性回归f值是什么_拟合_21
我们现在就求出了使得函数值最小的k, b参数

最小二乘法(多元线性函数)

定义损失函数

如今,我们将一元变量推广到多原变量,设多元函数式为
线性回归F值 线性回归f值是什么_线性回归F值_22
这个式子太长了,我们使用线性代数的向量概念对该式进行整理,为方便,记线性回归F值 线性回归f值是什么_拟合_23(可以把上函数式的b视为b*1,下面会讲这样做的原因)

此时稍微提一下,在线性代数中,见到一个向量,默认均为列向量,上标为T(转置)的才为行向量(至于为什么要这样规定,是因为竖着写很占版面…你知道它本身是竖着写的就好了)

那么此时,我们构造一个权重向量线性回归F值 线性回归f值是什么_最小二乘法_24和特征向量线性回归F值 线性回归f值是什么_线性回归_25
线性回归F值 线性回归f值是什么_损失函数_26
那么此时,我们上述的多元函数式则可以写成线性回归F值 线性回归f值是什么_拟合_27线性回归F值 线性回归f值是什么_线性回归_28,是完全等价的

此时,我们可以损失函数写成如下形式
线性回归F值 线性回归f值是什么_拟合_29
其中,线性回归F值 线性回归f值是什么_最小二乘法_30为第i个真实值,线性回归F值 线性回归f值是什么_线性回归_31为第i个样本的特征向量

注:真实值,标签值,样本值这三个词意思是相同的,后续阐述上可能会混用

进一步化简损失函数

此时,我们觉得还是觉得式子不够简洁,这个连加符号也太影响观感了!

于是,此时可以继续利用线性代数,把连加号去掉,提升观感,同时也方便后续推导

为了化简,我们需要定义两个东西

①标签向量

将m个样本标签值堆叠成一个标签向量线性回归F值 线性回归f值是什么_线性回归_32(再提一遍没有T的是列向量)
线性回归F值 线性回归f值是什么_线性回归_33
②样本矩阵X

定义样本矩阵X,形状为(m, n+1),m个样本,n+1个特征(其中,第1个特征为1)
线性回归F值 线性回归f值是什么_线性回归_34
这里每一行即是一个样本,每一列即是某一个特征

顺便解释一下上下标:上标(i)代表是第i个样本,下标j代表第j个特征(也可以理解成第j个维度)

那么此时,样本矩阵X乘上权重向量w可得预测值向量线性回归F值 线性回归f值是什么_最小二乘法_35,如图

线性回归F值 线性回归f值是什么_拟合_36

我们还需要借助l2范数进行化简,此处简单介绍

l2范数

l2范数:向量各元素的平方和的平方根,即线性回归F值 线性回归f值是什么_线性回归F值_37

|| ||是范数符号,下标2表示其为2范数。

l2范数有以下公式成立
线性回归F值 线性回归f值是什么_拟合_38

再再再化简损失函数

损失函数可写成如下形式
线性回归F值 线性回归f值是什么_最小二乘法_39
(如果不懂的话建议多看几遍)

注意矩阵和向量的大小,X:(m, n+1),w:(n+1, 1),y:(m, 1),开始化简
线性回归F值 线性回归f值是什么_线性回归F值_40
第一行到第二行:利用公式线性回归F值 线性回归f值是什么_最小二乘法_41

第二行到第三行:利用转置的两个运算公式线性回归F值 线性回归f值是什么_损失函数_42线性回归F值 线性回归f值是什么_线性回归F值_43

第三行到第四行:矩阵满足分配律

第四行到第五行:为什么线性回归F值 线性回归f值是什么_最小二乘法_44线性回归F值 线性回归f值是什么_线性回归F值_45可以合并呢?这里就要回归到他们的大小上了

线性回归F值 线性回归f值是什么_线性回归_46:(1, n+1),线性回归F值 线性回归f值是什么_线性回归_47:(n+1, m),线性回归F值 线性回归f值是什么_线性回归_32:(m, 1),他们最终相乘的大小是(1, 1),(1, 1)实际上是一个数

线性回归F值 线性回归f值是什么_线性回归F值_49:(1, m), X:(m, n+1),w:(n+1, 1),最终大小也是(1, 1),也是一个数

线性回归F值 线性回归f值是什么_最小二乘法_44线性回归F值 线性回归f值是什么_线性回归_51,而一个实数的转置本就等于其本身,所以这俩是同一个数

对L(w)求偏导

线性回归F值 线性回归f值是什么_线性回归F值_52

矩阵求导的相关公式参考了该资料:https://zhuanlan.zhihu.com/p/273729929

第二行到第三行的第一个偏导数:

要用到这个公式

线性回归F值 线性回归f值是什么_最小二乘法_53

此时将线性回归F值 线性回归f值是什么_最小二乘法_54视为整体,也就是公式里的A,其大小为(n+1, n+1),是常数方阵,符合公式的形式,于是
线性回归F值 线性回归f值是什么_损失函数_55

第二行到第三行的第二个偏导数:

要用到这个公式

线性回归F值 线性回归f值是什么_线性回归F值_56

线性回归F值 线性回归f值是什么_损失函数_57视为整体,于是
线性回归F值 线性回归f值是什么_线性回归_58
第四行到第五行为逆矩阵的知识

梯度下降法

梯度下降也是线性回归算法的一种求解方式

关于梯度下降,马同学的回答非常直观且详细

https://www.zhihu.com/question/305638940/answer/1639782992

那么,当你看完这个回答后,可以理解,通过求梯度(这里也就是求对每个参数求偏导)和设定一个学习率(步长),经过指定次数迭代后可到达函数取到最小值的点,也就是获取了让误差值最小的权重向量w

关于求L对w的偏导数,最小二乘法时已提及
线性回归F值 线性回归f值是什么_最小二乘法_59
那么只需要经过多次迭代
线性回归F值 线性回归f值是什么_线性回归_60
这就是利用梯度下降的线性回归原理