王东
Published on 2025-03-02 / 6 Visits

【AI100问(127)】什么是梯度下降算法?

很多人工智能算法可以被归结为一个优化任务。以识别红绿灯为例,我们可以设计一个识别器,在看到红灯时输出较小的分数,而在看到绿灯时输出大的分数。基于这样的设计,我们可以根据识别器输出的分数来判断是红灯还是绿灯了。

我们通过计算红灯得分减去绿灯得分,并定义这个差值为目标函数F。显然,一个优秀的识别器将使得这个目标函数尽可能小,而一个不好的识别器将使得这个目标函数相对较大。

基于这个思路,我们向这个识别器“投喂”一批红绿灯图片,并调整识别器的参数,以使得在这些图片上的目标函数F的数值尽可能小。这样,我们就能够“驯化”一个优秀的红绿灯识别系统。然而,问题在于如何调整识别器的参数,以使目标函数F最小呢?


一种简单的方法是不停地尝试各种参数,并测试哪个参数更好。虽然可行,但是这种方法太慢了,我们想寻求一种更高效的算法。

梯度下降法是一种更聪明的办法。这一方法将目标函数F想象成山的高度,并把F的优化过程想象成下山过程。初始位置的F值较高,而山谷处的F值较低。当到达某一山谷时,也就完成了F的优化。

那么,如何才能到达山谷呢?


通常我们可以这样做:在某个位置,首先找到下坡最大的方向,然后试着往这个方向走一步。走完一步后,在新的位置上继续探索,然后再走一步。这样一步一步探索下去,最终总会走到某个山谷。这里提到的下坡最大的方向”也被称为梯度方向,因此这种方法也称为梯度下降算法。

梯度下降法的问题在于当存在多个山谷时,到达哪个山谷是不确定的,也不能保证找到的山谷是最低的。尽管如此,由于其简单清晰,梯度下降法仍然是人工智能领域中应用最广泛的优化方法,在人脸识别、语音识别和自然语言处理等领域表现出色。

By清华大学  王东