梯度下降算法_从中学数学到AI算法01:切线、导数、偏导数、梯度、梯度下降算法...

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

如果你是个中学生,读完本篇文章,你将会了解到,中学里学习的数学将来会在人工智能的哪些方面应用。如果你正在从事人工智能的学习研究,本文将有助于你系统地重温人工智能算法及其预备知识的前世今生。

(1)中学数学里的相切、切线、导数等概念。

曲线上某点A的切线是这样定义的:B是曲线上邻近A的点,以A为定点,当B点沿着曲线无限地接近A点时,割线AB的极限位置就是曲线在点A的切线,A点叫做切点。下面的GIF动画动态演示了这一过程。

519b47d6655d6f4312c2aa2cfca53963.gif

我们可以绘制任意光滑曲线上的点的切线。下面几幅动图展示了圆、抛物线、正弦曲线、复合函数曲线上的切线。

4b2ce2400245722b5006fe358628c9b7.gif
6323c3c0d9e982041537d19fd21230bd.gif
cda9d3d82625deff648ee04578d2cf6b.gif

有了切线和切点,我们还可以求出经过切点的法线,它与切线垂直。正弦曲线上任何一点的切线及其法线如下面的动图所示。

761313483a191428ff42d5d772da89e5.gif

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

1ac945e3974bcd1ce0bc0b9d8385699f.png

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

导数或者切线斜率有什么意义?它反映了当自变量变化时,因变量变化的快慢程度。如下图所示,图中给出了抛物线上两点A,B的切线,显然B点的切线更陡峭,则在两点处,当自变量x有相同的变化量Δx时,B点的因变量Δy更大。明白这一点很重要。

e7bf431860f2696f4cdfb6eba495b0ad.png

在中学里学习的导数,仅限于单个自变量的函数。事实上,许多函数有2个或者更多自变量。那么此时导数该怎么定义呢?这就要用到偏导数。

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

为了简化问题,数学家们想了一个巧妙的方法。例如对2元函数f(x,y),把y看作常数,则f(x,y)变成了一元函数,就可以按照中学里导数的定义求解出f(x,y)在(x0,y0)处对x的导数。同理,将x看作常数,可以求出f(x,y)在(x0,y0)处对y的导数。这个导数叫作对x或y方向的偏导数,如下图所示。

2f30a0ea45c4d5e01cfbcff3e3403e67.png

偏导数用下面的公式来表示。

129ab7a7539c460fba2c9be0795284ec.png

偏导数反映了在(x0,y0)处,f(x,y)在某个方向上随该自变量变化而发生变化的快慢程度。

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

如果给偏导数添加方向,可以将偏导数变换为矢量形式。其变换方法为将各个方向的偏导数乘以该方向的单位方向向量,如下图所示:

faf18d3b06ecd9015026ea5d5a1ed969.png

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

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

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

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

e99acbbeb4aa8b7bca3d755a93ba568c.png

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

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

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

a985d8c40ce995c88c405849f0baa67b.png

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

146529fc828e7e7a951826d1d7b807ca.png

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

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

5dfb0670cc4d86b636880d422c2fc516.gif

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值