线性回归的损失和优化

发布于:2022-11-11 ⋅ 阅读:(1136) ⋅ 点赞:(0)

线性回归的损失和优化

学习目标

  1. 了解线性回归中的损失函数
  2. 了解使用正规方程对损失函数优化的过程
  3. 了解梯度下降法对损失函数优化的过程

某个房子的例子

真实关系:
真实房子价格 = 0.02中心区域距离 + 0.04城市一氧化碳浓度 + 0.12自住房平均价格+0.82房子面积

现在我们制定一个关系
指定关系:
真实房子价格 = 0.02中心区域距离 + 0.03城市一氧化碳浓度 + 0.25自住房平均价格+0.70房子面积

这样的话我们的真实结果与我们预测的结果之间是不是存在一定的误差呢?类似这样


既然存在这个误差,那我们就将这个误差衡量出来

1.损失函数

总损失定义为
损失函数公式
手写
如何去减少这个损失,是我们的预测的更准一些?我们可以通过优化方法去优化(其实是数学当中的求导功能)回归的总损失

2.优化算法

如何去求模型当中的W,使得损失最小?(目的是找到最小损失对应的W值)
线性回归经常使用的两种优化算法

  1. 正规方程
  2. 梯度下降法

2.1 正规方程

2.1.1 什么是正规方程

在这里插入图片描述

2.1.2 正规方程举例

在这里插入图片描述

2.1.3 正规方程的推导

推导方式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2梯度下降

2.2.1 什么是梯度下降

梯度下降法(gradient descent)的基本思想可以类比为一个下山过程
假设这样一个场景:
一个人被困在山上,需要从山上下来。但此时山上的浓雾很大,导致可视度很低。
因此,下山的路径就无法确定,当他必须利用周围的信息找到下山的路径。这时候,他就可以利用梯度下降算法来帮助自己下山。
具体来说就是,以他当前的所处的位置为基准,寻找这位置最陡峭的地方,然后朝着山的高度下降的地方走,(同理,如果我们的目标是上山,也就是爬到山顶,那么此时应该是朝着最陡峭的地方往上走)。然后每走一段距离,都采用同一种方法,最后就能成功的抵达山谷。
在这里插入图片描述
梯度下降的基本过程就和下山的场景类似
首先,我们有一个可微分的函数。这个函数就代表着一座山。我们的目标找到这个函数的最小值,也就是山底。
根据之前场景假设,最快的下山方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走下去,对应到函数中,就是找到给定点的梯度,然后朝着梯度相反的方向,就能让函数值下降得最快!因为重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就类似于我们下山的过程。而求取梯度就确定了最陡峭的方向,也就是场景中测量方向的手段。

2.2.2梯度的概念

梯度是微积分中一个很重要的概念

  1. 单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
  2. 多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在定点的上升最快的方向

在微积分里面,对多元函数的参数求导,把求得的各个参数的偏导数以向量的形式写出来,就是梯度
这也就说明了王大毛我们需要千方百计的求取梯度!我们需要到达山底,就需要在每一步观测到此时最陡峭的地方,梯度就恰巧告诉了我们这个方向。梯度的方向是函数在给定点上升最快的方向,那么梯度的方向就是函数在给定点下降最快的方向,这正是我们需要的。

2.2.3梯度下降举例

  1. 单变量函数的梯度下降
    在这里插入图片描述
    在这里插入图片描述
  2. 多变量函数的梯度下降
    在这里插入图片描述

在这里插入图片描述

2.2.4梯度下降公式

在这里插入图片描述
1. α是什么含义?

α在梯度下降算法中被称为学习率或者步长,意味着我们可通过α来控制每一步走的距离,以保证不要跨的太大错过了最低点。同时也要保证不要走得太慢,导致太阳下山了,还没有到山下。所以α的选择在梯度下降法中往往是很重要的!
在这里插入图片描述
2. 为什么梯度要乘以一个负号?
梯度前加一个负号,就意味着朝着相反的方向前进!我们在前文提到,梯度方向实际上就是在此点上升最快的方向!而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号
我们通过两个图更好的理解梯度下降的过程
在这里插入图片描述
在这里插入图片描述

所以有了梯度下降这样一个优化算法,回归就有了“自动学习”的能力
在这里插入图片描述
这个图我也没太看懂

3.梯度下降和正规方程的对比

3.1 两种方法对比

表格格式还不会弄
表格格式还不会弄

经过前面的介绍,我们发现最小二乘法适用简洁高效,比梯度下降这样的迭代法似乎方便很多。但是我们这里就聊聊最小二乘法的局限性。

  • 首先,最小二乘法需要计算X^TX的逆矩阵,有可能他的逆矩阵不存在,这样就没有办法直接使用最小二乘法了。
    此时就需要使用梯度下降法。当然,我们可以通过对样本数据进行整理,去掉冗余特征。然X^TX的行列式不为0,然后继续使用最小二乘法。
  • 第二,当样本特征n非常的大时候,计算X^TX的逆矩阵是一个非常耗时的工作(n*n的矩阵求逆),甚至不可行。
    此时以梯度下降为代表的迭代法仍然可以使用
    那这个n到底多大就不合适最小二乘法呢?如果你没有很多的分布式大数据计算资源,建议超过10000个特征就用迭代吧。或者通过主成分分析降低特征的维度后再用最小二乘法。
  • 第三,如果拟合函数不是线性的,这时无法使用最小二乘法,需要通过一些技巧转化线性才能使用,此时梯度下降仍然可以使用
  • 第四,以下特殊情况
    当样本量m很少,小于特征数n的时候,这时拟合方程是欠定的,常用的优化方法都无法去拟合数据。
    当样本量m等于特征数n的时候,用方程组求解就可以了
    当m大于n时,拟合方程是超定的也就是我们常用与最小二乘法的场景了

3.2 算法选择依据

  • 小规模数据:
    • 正规方程:Linear Regression(不能解决拟合问题)
    • 岭回归
  • 大规模数据
    • 梯度下降法SGDRegressor

4 小结

  • 损失函数
    最小二乘法
  • 线性回归优化方法
    正规方程
    梯度下降法
  • 正规方程
    利用矩阵的逆,转置进行一步求解
    只是适合样本和特征比较少的情况
  • 梯度下降法
    • 梯度的概念
      • 单变量 – 切线
      • 多变量 – 向量
    • 梯度下降法中关注的两个参数
      • α – 就是步⻓
        • 步长太小 – 下山太慢
        • 步长太长 – 容易跳过极小值点
      • 为什么梯度要加负号
        • 梯度方向是上升最快的方向,负号就是下降最快方向
  • 梯度下降法和正规⽅程选择依据
    • 小规模数据:
      • 正规方程:Linear Regression(不能解决拟合问题)
      • 岭回归
    • 大规模数据
      • 梯度下降法SGDRegressor

在这里插入图片描述

这几天一概会把架构师的笔记放上来,激情期待

参考资料:

  1. 黑马系统课
  2. https://zhuanlan.zhihu.com/p/50431187
  3. https://blog.csdn.net/CharlieTang123/article/details/107976998
本文含有隐藏内容,请 开通VIP 后查看