zoukankan      html  css  js  c++  java
  • 机器学习与深度学习:微积分知识汇总

    微积分是现代数学的基础,线性代数,矩阵论,概率论,信息论,最优化方法等数学课程都需要用到微积分的知识。单就机器学习和深度学习来说,更多用到的是微分。积分基本上只在概率论中被使用,概率密度函数、分布函数等概念和计算都要借助于积分来定义或计算。


    几乎所有的机器学习算法在训练或者预测时都是求解最优化问题,因此需要依赖于微积分来求解函数的极值,而模型中某些函数的选取,也有数学性质上的考量。对于机器学习而言,微积分的主要作用是:

    1.求解函数的极值

    2.分析函数的性质

    下面列出机器学习和深度学习中所需的微积分知识点,显然,不是课本里所讲的所有内容都是需要的,我们只列出所必须的!

    极限:极限是高等数学和初等数学的分水岭,也是微积分这座大厦的基石,是导数、微分、积分等概念的基础。虽然在机器学习里不直接用到极限的知识,但要理解导数和积分,它是必须的。

    上确界与下确界:这一对概念对工科的微积分来说是陌生的,但在机器学习中会经常用到,不要看到论文或书里的sup和inf不知道什么意思。

    导数:其重要性众所周知,求函数的极值需要它,分析函数的性质需要它。典型的如梯度下降法的推导,logistic函数导数的计算。熟练地计算函数的导数是基本功。


    Lipschitz连续性:这一概念在工科教材中同样没有提及,但对分析算法的性质却很有用,在GAN,深度学习算法的稳定性、泛化性能分析中都有用武之地。

    导数与函数的单调性:某些算法的推导,如神经网络的激活函数,AdaBoost算法,都需要研究函数的单调性。

    导数与函数的极值:这个在机器学习中处于中心地位,大部分优化问题都是连续优化问题,因此可以通过求导数为0的点而求函数的极值,以实现最小化损失函数,最大化似然函数等目标。


    导数与函数的凹凸性:在凸优化,Jensen不等式的证明中都有它的应用。

    泰勒公式:又一个核心知识点。在优化算法中广泛使用,从梯度下降法,牛顿法,拟牛顿法,到AdaBoost算法,梯度提升算法,XGBoost的推导都离不开它。

    不定积分:积分在机器学习中使用的相对较少,主要用于概率的计算中,它是定积分的基础。

    定积分:包括广义积分,被用于概率论的计算中。机器学习中很大一类算法是概率型算法,如贝叶斯分类器,概率图模型,变分推断等。这些地方都涉及到对概率密度函数进行积分。


    变上限积分:分布函数是典型的变上线积分函数,同样主要用于概率计算中。

    牛顿-莱布尼兹公式:在机器学习中很少直接使用,但它是微积分中最重要的公式之一,为定积分的计算提供了依据。

    常微分方程:在某些论文中会使用,但一般算法用不到。

    偏导数:重要性不用多说,机器学习里绝大部分函数都是多元函数,要求其极值,偏导数是绕不开的。


    梯度:决定了多元函数的单调性和极值,梯度下降法的推导离不开它。几乎所有连续优化算法都需要计算函数的梯度值,且以寻找梯度为0的点作为目标。

    高阶偏导数:确定函数的极值离不开它,光有梯度值还无法确定函数的极值。

    链式法则:同样使用广泛,各种神经网络的反向传播算法都依赖于链式法则。

    Hessian矩阵:决定了函数的极值和凹凸性,对使用工科教材的同学可能是陌生的。


    多元函数的极值判别法则:虽然不直接使用,但对理解最优化方法至关重要。

    多元函数的凹凸性判别法则:证明一个问题是凸优化问题是离不开它的。

    Jacobian矩阵:工科教材一般没有介绍这一概念,但和Hessian矩阵一样,并不难理解,使用它可以简化多元复合函数的求导公式,在反向传播算法中广泛使用。


    向量与矩阵求导:常见的一次函数,二次函数的梯度,Hessian矩阵的计算公式要烂熟于心,推导并不复杂。

    泰勒公式:理解梯度下降法,牛顿法的优化算法的基石。

    多重积分:主要用于概率论中,计算随机向量的积分,如正态分布。

    偏微分方程:在某些理论推导中可能会使用,如变分法中的欧拉-拉格朗日方程。

  • 相关阅读:
    嵌入式Linux学习笔记 NAND Flash控制器
    (嵌入式开发)自己写bootloader之编写第一阶段
    C_C++指针指针应用详解
    数据结构笔记-----二叉排序树和哈希表
    map方法和filter方法
    nginx服务器卡住了 解决办法
    vue-devtoools 调试工具安装
    web 本地存储(localStorage、sessionStorage)
    vux使用教程
    一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
  • 原文地址:https://www.cnblogs.com/julyedu/p/11543312.html
Copyright © 2011-2022 走看看