什么是梯度下降(上)?AI技术快速扫盲

117 阅读3分钟

人工智能技术已经开始改变我们的生活,在可预见的未来它将变得像互联网一样无处不再。对于非技术人员来说,了解人工智能技术可以让我们对未来有更准确的预期,看到其下限和上限。本文将介绍人工智能技术的基础之一——梯度下降。

在了解梯度下降之前,我们需要先理解什么是梯度。先抛出概念,梯度就是由偏导数组成的向量。偏导数是多变量函数中,某个变量的导数。向量就是除了大小还有方向的“数”。

以上就是所涉及的所有概念,文章的剩余部分都将用于一点点解释它。

首先要明确的一个概念是函数。函数是一个数学的概念,表示输入和输出之前的关系。举例来说,若有函数y=2xy=2xxx代表输入,yy代表输出,那么其意思就是输入一个数,输出这个数的两倍。这就是一个简单的函数。函数可以变得很复杂,但是其本质都是在描述如何从输入得到输出。

如果一个函数中只有一个未知的输入,即变量,就被称为一元函数。例如y=2xy=2x中只有xx一个变量。显然xx变了,函数的值yy就会变化。那么有没有什么方式来描述yy相对于xx的变化情况(变化率)呢?

答案是函数的导数。假设开车从北京到深圳,车子的速度一定总是在不停变化的。我们可以构造一个速度和时间的函数,时间是输入,速度是输出。对函数求导就是在描述函数的变化率,即选择任意一段非常小的时间,看看这段时间引起了速度多大的变化。这个数值有正负,正代表让速度增大了,负代表让速度减小了。绝对值衡量改变的程度。

明白了导数之后,再看看什么是偏导数。一个变量的函数叫做一元函数,两个变量的函数叫做二元函数,多个变量的函数叫做多元函数。一元函数的求导就是在针对这个变量看它对函数值变化的影响,多元函数求导的时候先选择一个变量作为求导的对象,然后将其他变量都不再视为变量。对每个变量都这样做一次,最终将获得多个求导结果。每个结果就是一个偏导数。

把多元函数的所有偏导数放一起就是梯度。

举例来说,如果一个函数为f(x,y,z)=x3+y2+2zf(x,y,z)=x^3+y^2+2z ,它有三个变量,我们分别对其进行求偏导数的操作,可以获得3x23x^22y2y 和2三个偏到数,它的梯度就是(3x23x^2 , 2y2y, 2)。其代表着在某一个微小时段,函数的变化是如何从三个变量中获得的。

了解了梯度的概念后,再来看看函数的优化问题。优化问题指的是给定一个函数后找到它的最大或者最小值。

我们已经知道,梯度描述的是多元函数的变化率。其中的偏导数代表在特定变量给出的变化贡献,如果数值为正,代表沿着变量的正方向移动会导致函数值变大,如果数值为负,代表沿着变量的正方向会导致函数值变小。

梯度下降的意思就是沿着梯度的反方向来不断更新变量的值,以此不断获得更小的函数值,值到不能更小。沿着梯度的反方向,具体来说就是将梯度中的每个偏导数取反,正变负,负变正。

下篇我们讨论讨论,梯度下降具体是如何进行的。

欢迎点赞关注分享,我们明天见!