ML——最小二乘与梯度下降

本文持续更新,主要总结各种与最小二乘和梯度下降相关的优化方法


最小二乘与最小均方误差的区别

最小二乘法

  • 二乘也就是平方的意思,故又称最小平方法(英文全称Least Square Method, LSM或者LS)
  • 是一种数学优化技术
  • 通过最小化误差的平方和寻找数据的最佳函数匹配
    • 为什么最小化误差平方和可以得到最佳函数匹配呢?
      • 可以证明,只要误差是服从正太分布的,最小化误差平法和就能匹配到最佳函数(这个高斯证明过)
      • 可以证明,误差的确是服从正太分布的,细节可以参考为什么正太分布如此常见
      • 中心极限定理说了,在适当的条件下,大量相互独立随机变量的均值经适当标准化后依分布收敛于正态分布
        • 适当的条件包括三个要素:
          • 独立
          • 随机
          • 相加
        • 误差满足上面三个要素
      • 综上所述,最小二乘法(最小化误差平法和)可以的到最佳函数匹配
  • 最小二乘法通过求导,并令导数为0,直接求得误差平方和(损失函数的一种)取最小值时的参数
  • 公式:
    $$\theta^{\star} = \arg\min_\theta L(x) = \sum_i^{m}(y_i-f(x_i;\theta))^2$$

加权最小二乘法

  • 加权最小二乘中每个样本的误差前面会乘上相应的权重,然后再求和
    $$\theta^{\star} = \arg\min_\theta L(x) = \sum_i^{m}w_i(y_i-f(x_i;\theta))^2$$

最小化均方误差

  • 最小二乘(Least Square, LS)问题是这样一类优化问题,目标函数是若干项的平方和
  • LS的一种更复杂也更灵活的变形: 加权最小二乘根据实际问题考虑每个求和项的重要程度,即为每一项加权值w
  • 均方误(Mean Square Error, MSE)是一种加权最小二乘,它的权值是对应项的概率
    $$\theta^{\star} = \arg\min_\theta L(x) = \sum_i^{m}\frac{1}{m}(y_i-f(x_i;\theta))^2 = \frac{1}{m}\sum_i^{m}(y_i-f(x_i;\theta))^2$$

周志华的解释

  • 基于均方误差最小化来进行模型求解的方法称为最小二乘法 ——《机器学习》(周志华著)
    • 理解:周志华的意思应该是把均方误差与误差平方和视为一个东西,也就是说各项的权重相同,所以感觉这里定义其实是比较模糊的,不用太在意最小二乘法与最小化均方误差法的定义

总结

  • 三者可以理解为相同的表达式,其中
    • 最小二乘法(LSM), 权重为1, 每个样本相同
    • 最小均方误差(MSE), 权重为\(\frac{1}{m}\), 每个样本相同
    • 加权最小二乘, 权重为自定义的值, 每个样本可以不同
  • 最小均方误差(MSE) 是一种 加权最小二乘, 他的权重为样本的概率, 每个样本出现的概率相等, 就都乘以 \(\frac{1}{m}\) 即可

梯度下降与梯度上升

意义

为什么需要梯度下降或者梯度上升,而不是用直接对目标函数求导得到最优解?

几点说明
  • 对于凸函数而言:
    • 通过函数(损失函数等)对参数求导,令其导数为0,的确可以解得损失函数的最小(最大)值点对应的参数
  • 对于非凸函数而言:
    • 相同的方法可能只能得到极值点,而不是最小(最大)值点
    • 但此时梯度下降法也不能找到最优点
  • 无论是梯度下降函数直接推到求解目标函数最优解,我们都需要求目标函数的导数,并且需要确保目标函数可导,不然是不能用这些方法的
几点原因
  • 有时候目标方程(令导数为0后得到的方程)很复杂,求导数为0的参数的解(根)很难
    • 包括时间和空间两方面可能面临困难
    • 比如大矩阵的乘法,大矩阵的逆等
    • 求某一点的梯度一般是比较容易的(只要求出导数后将对应点的数值带入即可)
      • 这里与求导数为0的解难度不一样,在求出函数导数后,求某一点的梯度仅仅需要带入该点的值,而求导数为0的解需要的是很难的解题过程,甚至可能找不到解
  • 有时候目标方程很奇怪,之前我们没见过,需要我们写新的代码教会计算机如何直接求解函数的根
    • 直接使用梯度下降的话是计算机可以理解的
    • 梯度下降法不用重新写代码来教给计算机

梯度下降

  • 梯度下降是最小化目标函数
    • \(\theta=\theta-\lambda\frac{\partial L(\theta)}{\partial\theta}\)
    • \(\lambda\)为步长
    • 每轮迭代沿着负梯度方向移动

梯度上升

  • 梯度上升是最大化目标函数
    • \(\theta=\theta+\lambda\frac{\partial L(\theta)}{\partial\theta}\)
    • \(\lambda\)为步长
    • 每轮迭代验证正梯度方向移动

梯度下降(上升)法与最小二乘法

最小二乘法

  • 最小二乘法是一种通过最小化误差的平方和寻找数据的最佳函数匹配数学优化技术
  • 与最小二乘法并列的是最小话误差的三次方或者四次方等方法
    • 这里的三次方和四次方和只是为了和二次方和作对比,实践中很少遇到这样的优化技术

梯度下降(上升)法

  • 梯度下降(上升)法的目标是通过迭代(每次朝着最优方向,即梯度下降最快方向前进)不断逼近能使得目标函数最小(最大)时的最优参数值的方法
  • 梯度下降(上升)是一种迭代法,也就是通过更新参数不停的逼近最优点,可以用来解决各种各样的问题(包括最小二乘问题,最小化误差三次方和等)
    • 这里最小二乘问题可以理解为用最小二乘法(最小化误差平法和)来寻找最佳函数的问题

总结

  • 最小二乘法与梯度下降(上升)法不在一个维度,不能对比
最小二乘法
  • 目标:找到(或者逼近)最优函数,使得该函数能最拟合已知数据
  • 方法:最小化误差平方和
梯度下降(上升)法
  • 目标:找到(或者逼近)最优参数,使得该参数能最小化(最大化)目标函数
  • 方法:是通过沿梯度方向迭代更新参数