机器学习中的数学笔记:微分学与梯度下降法

机器学习中的数学笔记:微分学与梯度下降法

    • 1.简介:数学在机器学习中的应用
    • 2.微分学基本思想和方法
      • 2.1 微分学的核心思想:函数逼近
      • 2.2 微积分的基础语言:极限论
        • 2.2.1 极限的表述方式
        • 2.2.2无穷小
        • 2.2.3两边夹定理
        • 2.2.4 重要极限
      • 2.3 微分学的基本手法:求导数
      • 2.4 从线性逼近到多项式逼近:泰勒级数
      • 2.5 从低维到高维:多元函数的梯度
    • 3.梯度下降法和牛顿法
      • 3.1 随机梯度下降
      • 3.2 随机梯度下降的问题与挑战
      • 3.3 随机梯度下降的优化算法选讲

1.简介:数学在机器学习中的应用

模型建立与选择:对工程问题进行抽象和量化
• 涉及数学知识:综合运用微积分,线性代数,概率
统计以及组合数学的知识
• 例如:
o 各类深度模型中的网络结构与损失函数
o 支持向量机中的向量空间与度量
模型训练:
• 优化算法:高效稳定的对各类损失函数求极值
• 涉及数学知识:微积分以及优化理论

机器学习基本流程:

统计/清理数据
微积分/线性代数/概率论/组合数学
优化过程,选择参数,使损失函数min
观察数据
选择模型
训练调参
应用

2.微分学基本思想和方法

2.1 微分学的核心思想:函数逼近

1.逼近是人类探讨复杂问题时经常使用的一种手段,比如:
• 人均GDP:使用常数函数来逼近收入分布函数
• 平均速度:使用线性函数来逼近实际运动轨迹
• 年化收益率:使用指数函数来逼近收益函数

2.微分学的核心思想:用熟悉且简单的函数对复杂函数进行局部逼近

3.常用作逼近的简单函数包括:
• 线性函数:函数的一阶导数 y=kx+b
•多项式函数:泰勒级数 y=ax*x+bx+c

2.2 微积分的基础语言:极限论

2.2.1 极限的表述方式

机器学习中的数学笔记:微分学与梯度下降法_第1张图片

2.2.2无穷小

机器学习中的数学笔记:微分学与梯度下降法_第2张图片

2.2.3两边夹定理

机器学习中的数学笔记:微分学与梯度下降法_第3张图片
由两边夹定理推导重要极限:
在一个圆中:存在sinx 同时除以x:
得到sinx/x < 1 < sinx/x*1/cosx
得到cosx< sinx/x <1
同时除以cosx:
得到1<=lim sinx/x <=1
得到重要极限:

2.2.4 重要极限

机器学习中的数学笔记:微分学与梯度下降法_第4张图片

2.3 微分学的基本手法:求导数

机器学习中的数学笔记:微分学与梯度下降法_第5张图片
机器学习中的数学笔记:微分学与梯度下降法_第6张图片
机器学习中的数学笔记:微分学与梯度下降法_第7张图片

2.4 从线性逼近到多项式逼近:泰勒级数

机器学习中的数学笔记:微分学与梯度下降法_第8张图片
机器学习中的数学笔记:微分学与梯度下降法_第9张图片
机器学习中的数学笔记:微分学与梯度下降法_第10张图片

2.5 从低维到高维:多元函数的梯度

机器学习中的数学笔记:微分学与梯度下降法_第11张图片机器学习中的数学笔记:微分学与梯度下降法_第12张图片机器学习中的数学笔记:微分学与梯度下降法_第13张图片

3.梯度下降法和牛顿法

3.1 随机梯度下降

机器学习中的数学笔记:微分学与梯度下降法_第14张图片
机器学习中的数学笔记:微分学与梯度下降法_第15张图片
梯度下降法:找到梯度为0的点(极小值点、极大值点鞍点),不论值的大小。

3.2 随机梯度下降的问题与挑战

机器学习中的数学笔记:微分学与梯度下降法_第16张图片
引入:随机梯度下降法–解决梯度计算
梯度计算由于随机梯度下降法的引入,我们通常将梯度下降法分为三种类型:

  1. 批梯度下降法(GD)
    原始的梯度下降法
  2. 随机梯度下降法(SGD)
    每次梯度计算只使用一个样本
    • 避免在类似样本上计算梯度造成的冗余计算
    • 增加了跳出当前的局部最小值的潜力
    • 缺点:在逐渐缩小学习率的情况下,有与批梯度下降法类似的收敛速度
  3. 小批量随机梯度下降法(Mini Batch SGD)
    每次梯度计算使用一个小批量样本
    • 梯度计算比单样本更加稳定
    • 可以很好的利用现成的高度优化的矩阵运算工具

注意:神经网络训练的文献中经常把 Mini Batch SGD 称为 SGD

随机梯度下降法的困难:学习率的选取

  1. 局部梯度的反方向不一定是函数整体下降的方向
    • 对图像比较崎岖的函数,尤其是隧道型曲面,梯度下降表现不佳。
  2. 预定学习率衰减法的问题
    • 学习率衰减法很难根据当前数据进行自适应
  3. 对不同参数采取不同的学习率的问题
    • 在数据有一定稀疏性时,希望对不同特征采取不同的学习率
  4. 神经网络训练中梯度下降法容易被困在鞍点附近的问题
    • 比起局部极小值,鞍点更加可怕

3.3 随机梯度下降的优化算法选讲

为什么不用牛顿法?
• 牛顿法要求计算目标函数的二阶导数(Hessian matrix),在高维特征情形下这个矩阵非常巨大,计算和存储都成问题
• 在使用小批量情形下,牛顿法对于二阶导数的估计噪音太大
• 在目标函数非凸时,牛顿法更容易收到鞍点甚至最大值点的吸引动量法(Momentum)(适用于隧道型曲面)

梯度下降法在狭长的隧道型函数上表现不佳,如下图所示:
• 函数主体缓缓向右方下降
• 在主体方向两侧各有一面高墙,导致垂直于主体方向有更大的梯度
• 梯度下降法会在隧道两侧频繁震荡。
机器学习中的数学笔记:微分学与梯度下降法_第17张图片
究竟如何选择算法呢?
• 动量法与Nesterov的改进方法着重解决目标函数图像崎岖的问题
• Adagrad与Adadelta主要解决学习率更新的问题
• Adam集中了前述两种做法的主要优点目前为止 Adam 可能是几种算法中综合表现最好的

动量法:
机器学习中的数学笔记:微分学与梯度下降法_第18张图片
Nesterov的改进方法:
机器学习中的数学笔记:微分学与梯度下降法_第19张图片

==Adagrad ==(自动调整学习率,适用于稀疏数据)
梯度下降法在每一步对每一个参数使用相同的学习率,这种一刀切的做法不能有效的利用每一个数据集自身的特点。
Adagrad 是一种自动调整学习率的方法:
• 随着模型的训练,学习率自动衰减
• 对于更新频繁的参数,采取较小的学习率
• 对于更新不频繁的参数,采取较大的学习率
机器学习中的数学笔记:微分学与梯度下降法_第20张图片
机器学习中的数学笔记:微分学与梯度下降法_第21张图片
注意:Adadelta 的第一个版本也叫做 RMSprop,是Geoff Hinton独立于 Adadelta提出来的。

Adam:目前最好的算法
机器学习中的数学笔记:微分学与梯度下降法_第22张图片

你可能感兴趣的:(机器学习与深度学习AI,机器学习,数学)