线性回归中的最小二乘法和梯度下降法比较

为什么要比较这两种方法呢?很多人可能不知道,我先简单的介绍一下

机器学习有两种,一种是监督学习,另一种是非监督学习。监督学习就是我告诉计算机你把班上同学分个类,分类标准是按照性别,男生和女生;非监督分类就是告诉计算机你自己去把班上同学分个类吧,我不告诉你分类标准。

在监督学习中,如果我们面对的变量是连续型的变量就要用到回归

在这里插入图片描述

回归其实是非常容易理解,也非常实用的一种方法,很多经济类的学生在写论文的时候都会用到回归的方法。比方说,距离市中心的距离越近(距离为x),房价就越高(房价是y),可以得到一个y=kx+b的式子来大概的表示x和y之间的关系

不过,大部分的情况下是很多条件一起制约y的,不仅有离市中心的距离x₁,还有房子的新旧程度x₂等等条件,那么可以用到多元回归,一般式如下:

y ^ ( θ , x ) = θ 0 + θ 1 x 1 + . . . + θ p x p \hat{y}(\theta, x) = \theta_0 + \theta_1 x_1 + ... + \theta_p x_p y^(θ,x)=θ0+θ1x1+...+θpxp

其中
y ^ \hat{y} y^:是预测值
θ 0 , θ 1 , . . . θ p \theta_0 , \theta_1 ,... \theta_p θ0,θ1,...θp:是系数
x 0 , x 1 , . . . x p x_0 , x_1 ,... x_p x0,x1,...xp:是自变量

我们想要让这个方程拟合的非常好,那么就要使误差尽量小,评价误差小的方法就是所有误差的平方和最小

计算误差平方和最小的方法最常见的就是最小二乘法和梯度下降法
在这里插入图片描述

最小二乘法

最小二乘法是所有有数学思维的人面对这个问题第一想到的方法,最直接最不拐弯抹角的方法。就是求多元函数极值,这就是最小二乘法的思想!其实根本不用把最小二乘法想的多么高大上,不就是求极值嘛~

学过大学高等数学的人应该都知道求极值的方法:就是求偏导,然后使偏导为0,这就是最小二乘法整个的方法了,so easy啊~

∵ e i = y i − y ^ ∵e_i=y_i-\hat{y} ei=yiy^

y ^ = ( θ , x ) = θ 0 + θ 1 x 1 + . . . + θ p x p \hat{y}=(\theta, x) = \theta_0 + \theta_1 x_1 + ... + \theta_p x_p y^=(θ,x)=θ0+θ1x1+...+θpxp

∴ e i = y i − ( θ 0 ^ + θ 1 ^ x 1 + . . . + θ p ^ x p ) ∴e_i=y_i-(\hat{\theta_0} + \hat{\theta_1} x_1 + ... + \hat{\theta_p} x_p) ei=yi(θ0^+θ1^x1+...+θp^xp)

Q = Σ i = 1 n e i 2 = Σ i = 1 n ( y i − ( θ 0 ^ + θ 1 ^ x 1 + . . . + θ p ^ x p ) ) 2 Q=\Sigma_{i=1}^ne_i^2=\Sigma_{i=1}^n(y_i-(\hat{\theta_0} + \hat{\theta_1} x_1 + ... + \hat{\theta_p} x_p))^2 Q=Σi=1nei2=Σi=1n(yi(θ0^+θ1^x1+...+θp^xp))2

最后使所有的偏导等于0
∂ Q ∂ θ 0 ^ = 0 \frac{\partial{Q}}{\partial{\hat{\theta_0}}}=0 θ0^Q=0
∂ Q ∂ θ 1 ^ = 0 \frac{\partial{Q}}{\partial{\hat{\theta_1}}}=0 θ1^Q=0
∂ Q ∂ θ 2 ^ = 0 \frac{\partial{Q}}{\partial{\hat{\theta_2}}}=0 θ2^Q=0
. . . . .... ....

然后解这个方程组就可以得到各个系数的值了

梯度下降法

我们注意到最小二乘法最后一步要求p个方程组,是非常大的计算量,其实计算起来很难,因此我们就有了一种新的计算方法,就是梯度下降法,梯度下降法可以看作是 更简单的一种 求最小二乘法最后一步解方程 的方法

虽然只是针对最后一步的改变,不过为了计算简便,仍然要对前面的步骤做出一些改变:

recall上面的最小二乘法,我们有一个这样子的式子,就是所有误差的平方和:
Q = Σ i = 1 n e i 2 = Σ i = 1 n ( y i − y ^ i ) 2 Q=\Sigma_{i=1}^ne_i^2=\Sigma_{i=1}^n(y_i-\hat{ y }_i)^2 Q=Σi=1nei2=Σi=1n(yiy^i)2

假设有m个数据,2个系数(θ₀和θ₁),我们要对最小二乘法的Q稍加改变,变成代价函数J,虽然用不同的字母表示了,但是他们的含义是一模一样的啦~

前面的1/2m系数只是为了后面求导的时候,那个平方一求导不是要乘一个2嘛,然后和1/2m的2抵消就没了,变成如下:

J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( y ^ i − y i ) 2 J(\theta_0, \theta_1) = \frac{ 1 }{ 2m } \displaystyle \sum_{ i = 1 }^{ m } (\hat{ y }_i - y_i)^2 J(θ0,θ1)=2m1i=1m(y^iyi)2

然后θ₀和θ₁分别是这样子被计算出来的(其中:=为赋值的意思):

θ 0 : = θ 0 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 0 \theta_0:=\theta_0-\alpha\frac{\partial{J(\theta_0, \theta_1) }}{\partial{\theta_0}} θ0:=θ0αθ0J(θ0,θ1)

θ 1 : = θ 1 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 1 \theta_1:=\theta_1-\alpha\frac{\partial{J(\theta_0, \theta_1) }}{\partial{\theta_1}} θ1:=θ1αθ1J(θ0,θ1)

这个计算方法其实理解起来比较难,那么我们先来看看这个J函数的图像吧,J函数是关于θ₀和θ₁的函数,因此是三维的,为了使J的值最小,也就是高度最。相当于一个人要下山,下到海平面最低的地方,在图中就是蓝色部分,那就是最低的地方

在这里插入图片描述

再想象这个人,要下到海平面最低的地方有很多条路啊,他可以绕着山头一圈一圈的下,像盘山公路一样(但没有人这样下山的,要走的距离也太长了8),最省力的方法就是按照梯度的方向下山,如图所示:

梯度:梯度是一个向量,梯度的方向就是最快下山,或者说沿着变化率最大的那个方向

在这里插入图片描述

我们再来看一下
θ 0 : = θ 0 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 0 \theta_0:=\theta_0-\alpha\frac{\partial{J(\theta_0, \theta_1) }}{\partial{\theta_0}} θ0:=θ0αθ0J(θ0,θ1)

θ 1 : = θ 1 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 1 \theta_1:=\theta_1-\alpha\frac{\partial{J(\theta_0, \theta_1) }}{\partial{\theta_1}} θ1:=θ1αθ1J(θ0,θ1)

这个一个反复迭代的式子,就是初始的时候,先找一个点(θ₀,θ₁)(可以随便找),然后在这个点沿着梯度下降的方向,即这个向量的方向:

( ∂ J ( θ 0 , θ 1 ) ∂ θ 0 , ∂ J ( θ 0 , θ 1 ) ∂ θ 1 ) (\frac{\partial{J(\theta_0, \theta_1) }}{\partial{\theta_0}},\frac{\partial{J(\theta_0, \theta_1) }}{\partial{\theta_1}}) (θ0J(θ0,θ1),θ1J(θ0,θ1))

然后α的意思就是下山的跨步,比方说我知道了我接下来哪个方下是最快下山的方向了,我一步子跨多大,跨的小容易娘炮,跨的大容易扯着蛋(开玩笑),跨的小容易走了很多步才到山脚下,跨的大容易把最地点那个坑?给一下子跨过去,因此要确定合适的α

每跨一步,就到了一个新的点,然后在这个点的基础上继续跨步,直到下到最低点(此时再想走的话就是上坡了,即偏导为正了),这就是一个反复迭代的过程

完毕

如果你觉得写的很好不要吝惜赞哦

如果你想看其他的关于机器学习的一些知识,可以关注我的知乎专栏,我是一个机器学习小白,因此写的文章都是非常细致非常易懂的哦~

欢迎关注公众号【阿肉爱学习】

  • 52
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值