机器学习中的经典算法「梯度下降法」(不同斜率的线中选择相切的,找最低点)

一、什么样的损失函数比较容易求得最优解呢

没错,如果损失函数「就像这个碗,它又大又圆」,那么我们很容易就能发现,这个损失函数的最低点有且只有一个,就是碗底。这是 Deeplearning.ai 课程中出现的碗,其中 J(w, b) 是逻辑回归的损失函数,这里假设只有两个参数 w 和 b,纵轴是 J(w, b) 的值。很容易发现,这个碗的最优解就在碗底。

粗略的说,这种长得像碗的函数就是凸函数。
机器学习中的经典算法「梯度下降法」(不同斜率的线中选择相切的,找最低点)

二、 用梯度下降求最优解

假设你站在图中紫色的部分,看到碗底了没?你可能已经迫不及待想要过去了。但是你每次迈步迈出的最长距离(也叫步长)是有限的,为了能最快到达碗底,你必须要选择一个方向迈步。像这个方向迈步时,在步长一定的情况下,你会尽可能的下降。

底向哪个方向迈步才能最有效率的下降呢?数学家已经告诉了我们答案:
沿着梯度方向。梯度,在二维图像上就是斜率
机器学习中的经典算法「梯度下降法」(不同斜率的线中选择相切的,找最低点)

三、 梯度下降的数学描述

对于所有的参数 [公式] ,每次求取函数 J(W) 对于 [公式] 的偏导数,即为 J(W) 在 [公式] 方向上的梯度 d,用梯度 d 乘以步长 α,就获得了每次下降的距离,使用公式 [公式] 进行迭代。

每次迭代,损失函数值都会向碗底靠近一些,直到接近到一个较好的值,或者迭代了充分的次数,停止即可。下图描绘了梯度下降的迭代过程。
机器学习中的经典算法「梯度下降法」(不同斜率的线中选择相切的,找最低点)