首页 > 编程知识 正文

二元函数的偏导数(中学数学官网)

时间:2023-05-03 09:32:18 阅读:98570 作者:1349

内容:切线、导数、偏导数、梯度、梯度下降算法,从中学、大学数学到人工智能,这些概念一脉相承。本文将这些知识串联起来。

如果你是一名中学生,看完这篇文章,你就会知道人工智能的哪些方面会应用到未来中学所学的数学中。如果你从事人工智能的学习和研究,这篇文章将帮助你系统地回顾人工智能算法的前世今生及其预备知识。

(1)中学数学中的切、切、导数概念。

曲线上A点的切线定义如下:B是曲线上与A相邻的点,A为不动点。当B点沿曲线无限逼近A点时,割线AB的极限位置是曲线在A点的切线,A点称为切点。下面的GIF动画动态演示了这个过程。

我们可以在任何光滑的曲线上画点的切线。下图为圆、抛物线、正弦曲线和复合函数曲线上的切线。

有了切线和切点,我们还可以找到通过切点的法线,它垂直于切线。正弦曲线上任意点的切线及其法线显示在以下动画中。

曲线上某点切线的斜率称为该点处曲线的导数。当然,导数有其严格的定义。函数y=f(x)在x0处的导数定义为:函数y=f(x)在x0处的函数值增量 y与自变量在 x 0处的增量 x之比的极限,如下图所示:

当然,这个导数值等于x0处的切线斜率。

导数或切线斜率的意义是什么?它反映了自变量变化时因变量变化的速度。如下图所示,给出了抛物线上两点A和B的切线。显然,B点的切线更陡,所以在两点上,当自变量X具有相同的变化量 x时,B点的因变量 y更大。理解这一点很重要。

中学学的导数只是单个自变量的函数。事实上,许多函数都有两个或更多的自变量。那么这个时候如何定义导数呢?这需要使用偏导数。

(2)大学里的偏导数概念。

为了简化这个问题,数学家们想出了一个巧妙的方法。比如把2元函数f(x,y)看作常数,那么f(x,y)就变成了一元函数,f(x,y)相对于X在(x0,y0)处的导数就可以按照中学时导数的定义求解。同样,如果把X看作常数,就可以得到f(x,Y)对Y在(x0,y0)处的导数。这个导数叫做X或Y方向的偏导数,如下图所示。

偏导数由以下公式表示。

偏导数反映了f(x,y)随自变量在(x0,y0)某个方向上的变化有多快。

偏导数的概念很容易推广到多元函数。

如果方向加到偏导数上,偏导数就可以转化成向量形式。变换方法是将每个方向的偏导数乘以该方向的单位方向向量,如下图所示:

63938c3e38efef?from=pc">

则该矢量的和称为梯度,如上面的图所示。反过来,梯度矢量在各个坐标轴的投影的大小即为在各个方向的偏导数。

那么梯度有什么意义呢?根据前面的介绍,方向导数反映了函数值在各个方向上的最大变化率,梯度是各个方向梯度分量(偏导数乘以单位方向向量)的合成,则梯度自然反映了函数的最大变化率及其方向。

理解了这一点非常重要。它有什么用呢?

在人工智能的机器学习中,训练各种机器学习模型时,常常构造一个误差函数。为了避免正负误差抵消,常取模型输出与目标输出的误差平方和构造一个误差函数,也称为损失函数,如下图所示。

而这个误差函数中,有一些变量,譬如权重,是模型训练要优化的对象。

机器学习模型的训练,是一个反复迭代更新误差函数中的权重等变量,使误差下降的过程。自然,误差下降的越快,则模型训练用时越少。

联想到函数沿梯度方向的变化量最大,自然而然的想到,每次迭代都沿梯度方向降低误差,会使误差快速下降。看下图,假定它是一个2元变量的误差函数。误差函数存在极小值,则显然沿路径ABCDE误差下降到达最小值的速度最快。

简单的讲,梯度下降算法基本思想是:在当前位置,各个自变量沿各自的梯度方向变化,得到下一个位置。下图是该算法的描述,分别给出了误差函数和参数更新公式。

图中,a是学习步长,用来控制参数更新的快慢。

下图展示了一个1元误差函数梯度下降算法的过程。

总结:切线、导数、偏导数、梯度、梯度下降算法,从中学、大学数学到人工智能,这些概念层层递进,一脉相承。反过来看,人工智能的算法并不复杂,它的基本思想就蕴含在中学、大学学习的数学知识中。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。