5 梯度下降 - Gradient Descent
对于假设函数,我们有一种方法可以衡量它与数据的匹配度
现在我们需要估计假设函数中的参数。
这就是梯度下降使用到的地方。
想象一下,我们根据其字段θ0和θ1绘制我们的假设函数(实际上我们将成本函数绘制为参数估计函数)
我们不是绘制x和y本身,而是我们的假设函数的参数范围以及选择一组特定参数所产生的成本值
我们将θ0放在x轴上,θ1放在y轴上,成本函数放在z轴
我们的图上的点将是使用我们的假设和那些特定的θ参数的成本函数的结果
我们知道,当我们的成本函数位于图中凹坑的最底部时,即当它的值是最小值时,我们已经成功了
红色箭头显示图表中的最小点。
我们这样做的方法是采用我们的成本函数的导数(一个函数的切线)
切线的斜率是该点的导数,它将为我们提供一个朝向的方向
我们在最陡下降的方向上降低成本函数
每个步骤的大小由参数α确定,该参数称为学习率
例如,上图中每个“星”之间的距离表示由参数α确定的步长
较小的α将导致较小的步长,较大的α将导致较大的步长
采取步骤的方向由J(θ0,θ1)的偏导数确定,根据图表的开始位置,可能会在不同的点上结束
两个不同的起点,最终出现在两个不同的地方.
梯度下降算法:重复直到收敛
where
j=0,1 represents the feature index number.
在每次迭代j,应该同时更新参数θ1,θ2,…,θn。
在第j次迭代计算另一个参数之前更新特定参数将导致错误的实现。
6 梯度下降知识点总结
在本文,我们探讨了使用一个参数θ1并绘制其成本函数以实现梯度下降的场景
对单个参数的公式是:重复直到收敛
无论ddθ1J(θ1)的斜率符号如何,θ1最终会收敛到其最小值
下图显示当斜率为负时,θ1的值增加,为正时,θ1的值减小
Choose Learning Rate α
另外,我们应该调整参数α以确保梯度下降算法在合理的时间内收敛。
没有收敛或太多时间来获得最小值意味着我们的步长是错误的。
- 如果J(θ)在下降,但是下降的速度很慢的话,就需要增大学习率α,因为每一步走的都太短了,导致到达最优解的速度下降,即收敛速度下降。
- 因为α大的原因,每次都一步跳过了最优解点,导致距离最优解越来越远,J(θ)不断上升
梯度下降如何由一个定步长的α收敛?
收敛背后的直觉是当我们接近凸函数的底部时ddθ1J(θ1)接近0。
至少,导数总是0
因此我们得到: