机器学习 二:回归问题 之 普通最小二乘 Ordinary Least Squares(OLS) 与 闭式解

回归问题将分为四部分讲解:

1、普通最小二乘 OLS

2、二项式回归 Poly

3、岭回归,Lasso回归

4、最大似然估计、最大后验概率、贝叶斯公式与上述各类回归模型间的联系

 

本节介绍:普通最小二乘OLS

一、背景知识

1、前情回顾

 

机器学习的四大要素:

输入数据:输入数据D = {X,y},X为输入的n维特征,y为目标值(真值)

某个未知的最佳映射模型:y = f(X)

假设模型:y' = h(X),这是我们实际训练得到的模型

损失函数:计算y与y'之间的差距

2、特征向量扩张 expend feature vector

首先,什么是特征向量?

答:就是输入数据D = {X,y} 中X的具体某一行。

为什么要扩张?怎么扩张?

答:为方便理解,假设特征向量为1*1的向量(即只有一个输入值),有n组数据,模型为线性回归模型(若对线性回归的概念有疑问,此处不多赘述了。可跳转我另一个专栏中的文章链接https://blog.csdn.net/qq_46380784/article/details/125821540?spm=1001.2014.3001.5502则 具体某一次输入的特征向量可以表示为eq?x%20%3D%20%5Bx_1%5D,预测模型可以表示为 eq?y%27%20%3D%20h%28x_1%29%20%3D%20w_0+w_1x_1

将模型转变为矩阵/向量乘法的形式,则

eq?y%27%20%3D%20h%28x%29%20%3D%20%5Cbegin%7Bpmatrix%7D1%20%26%20x_1%20%5Cend%7Bpmatrix%7D%5Cbegin%7Bpmatrix%7Dw_0%20%5C%5C%20w_1%20%5Cend%7Bpmatrix%7D

显然,特征向量的维度从原来的1*1变为了1*2。由于在实操中,统一使用矩阵运算能够很好的描述各类函数,所以将各项数据都转换为矩阵的形式。因此,将原本的特征向量左侧扩张一列,添加数字1。

换个例子,若特征向量为1*k的向量,有n组数据,模型为线性回归模型。则某一次的输入向量在扩张后应为

eq?x_i%20%3D%20%5B1%2Cx_%7Bi1%7D%2Cx_%7Bi2%7D%2Cx_%7Bi3%7D%2C...%2Cx_%7Bik%7D%5D    i∈[1,n]

预测模型为

eq?y_i%27%20%3D%20h%28x_i%29%20%3D%20w_0+w_1x_%7Bi1%7D+w_2x_%7Bi2%7D+...+w_kx_%7Bik%7D

推广到整个模型,输入的特征矩阵

eq?X%3D%5Bx_1%2Cx_2%2C..%2Cx_n%5D%5ET%3D%5Cbegin%7Bpmatrix%7D%201%20%26x_%7B11%7D%20%26%20...%20%26x_%7B1k%7D%20%5C%5C%201%20%26x_%7B21%7D%20%26%20...%20%26x_%7B2k%7D%20%5C%5C%20...%26%20...%20%26...%20%26...%20%5C%5C%201%26x_%7Bn1%7D%20%26...%20%26%20x_%7Bnk%7D%20%5Cend%7Bpmatrix%7D

eq?y%27%20%3D%20%5By_1%27%2C%20y_2%27%2C...%2Cy_n%27%5D%5ET

eq?w%3D%5Bw_0%2Cw_1%2Cw_2%2C...%2Cw_k%5D%5ET

即,预测模型可表示为:

eq?y%27%20%3D%20Xw

OK, 接下来进入正题。

 

二、普通最小二乘 OLS

上一篇文章中提到,可以使用预测方差和SSE(sum of square error)来描述模型的损失函数,即:

eq?L%28w%29%20%3D%20%5Cbegin%7BVmatrix%7D%20Xw-y%20%5Cend%7BVmatrix%7D%5E2

我们的目标就是要找到w*使得L(w)的值最小。即最小二乘

那么有两种方法可以得到,(1)梯度下降算法,(2)求导/剃度,求驻点

我们现在关注第二种方法:求梯度。

对L(w)做基本展开:

eq?L%28w%29%20%3D%20%7C%7CXw-y%7C%7C%5E2%3D%28Xw-y%29%5ET%28Xw-y%29%3D%28Xw%29%5ETXw-%20%28Xw%29%5ETy-y%5ETXw+y%5ETy%20%3D%20w%5ETX%5ETXw-2w%5ETX%5ETy+y%5ETy

对矩阵求梯度时,会用到以下两条公式:

eq?%5Ctriangledown%20%28a%5ETx%29%20%3D%20a

eq?%5Ctriangledown%20%28x%5ETAx%29%20%3D%20%28A+A%5ET%29x

接下来,对损失函数求梯度:

eq?%5Ctriangledown%20L%28w%29%20%3D%202X%5ETXw-2X%5ETy

求驻点:

eq?%5Ctriangledown%20L%28w%29%3D0

得到:eq?X%5ETXw%3DX%5ETy

若X为n*k阶矩阵,即有n条数据,每条数据k个输入特征。假设n≥k,则X一定为列满秩矩阵,R(X)=k。则eq?X%5ETX为满秩,则eq?X%5ETX可逆。

在这个条件下,我们可以得到局部最小点w*:

eq?w%5E*%20%3D%20%28X%5ETX%29%5E%7B-1%7DX%5ETy

此公式称为最小二乘法的闭式解。

接下来判断w*是不是全局最小点。

求L(w)的黑塞矩阵:

eq?H%28L%28w%29%29%20%3D%202X%5ETX

求黑塞矩阵的二次型,得到二次型非负:

eq?%5Cforall%20w%2C%20w%5ET%282X%5ETX%29w%20%3D%202%7C%7CXw%7C%7C%5E2%5Csucceq%200

显然黑塞矩阵半正定,因而L(w)为凸函数,则驻点w*一定为全局最小点。

 

综述:通过使用SSE作为损失函数,假定X为列满秩矩阵,则可以得到w的闭式解w*。w*为全局最小点。但需要注意:若X不满足列满秩,则X^TX不可逆,则不能得到闭式解。在这种情况下,只能通过如梯度下降等的其他方法逼近全局最小点。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三头猪等于一头大猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值