前言
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 多元函数微分学,读之前建议先看:程序员的数学【微积分基础】,本文涵盖了一些计算的问题并使用代码进行了实现,安装代码运行环境见博客:最详细的Anaconda Installers 的安装【numpy,jupyter】(图+文),如果你只是想要简单的了解有关线代的内容,那么只需要学习一下博文:NumPy从入门到高级,如果你是跟着博主学习AIoT的小伙伴,建议先看博文:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解),如果你没有Python基础,那么还需先修博文:Python的进阶之道【AIoT阶段一(上)】(十五万字博文 保姆级讲解)
一、多元函数的定义
二、偏导数
偏导数,可以看作是导数的推广,对于多元函数来说,我们把其它的自变量固定不动,看成是常量,我们对其中的某一个变量求导数的话,那就是偏导数了,只对一个变量求导数!
几何意义上面来说就是在某个方向上对原函数来切一下,再去求导,就是偏导数。举例说明:
对变量 x 求偏导数,其中 y 是常量
对变量 y 求偏导数,则 x 是常量
三、高阶偏导数
🚩有高阶导数,同样也有高阶偏导数,它的情况比高阶导数要复杂一些,因为它的求导变量有多个,比如说:
它对 x , y 求高阶偏导数的话,就是先对 x 求偏导,再对 求偏导,其实跟一元函数的高阶导数是一样的,依次对每个变量反复求导即可,我们还是以上面的公式为例:
二元函数的二阶偏导数有四个:
有个重要的结论,就是高阶导数和求导次序无关:
四、梯度
🚩机器学习中的梯度下降法,和牛顿法很多地方都会用到梯度这个概念。
梯度可以看成一元函数的导数,对于多元函数来说就是偏导数而已。
对于多元函数如果它的自变量有N个:x1,x2,...xn。它的梯度是个向量,是由对x1,x2,...xn变量。
求偏导数构成的这样一个向量,称之为梯度。梯度我们用倒三角这个符号来表示,对f(x)求梯度得到上面所示的向量ᐁf(x)
五、雅可比矩阵
5.1 雅克比矩阵定义
🚩这个可能很多同学学高等数学的时候可能没有学过,但是这个也比较好理解,就是由一阶偏导数构成的矩阵,发明它的目的主要是为了简化求导公式,对多元的复合函数求导,如果我们用雅可比矩阵来计算的话,它会写起来非常简洁,这在我们的人工神经网络反向推导的过程中往往会看到的。
5.2 雅克比矩阵示例