判断损失函数是否到达极值为什么不用导数接近于零作为判断条件?

来源:6-2 模拟实现梯度下降法

与寂寞无关

2020-11-11

判断损失函数J(theta) = (theta - 2.5) ** 2 +1是否到达极值时,老师使用的方法是abs(J(theta) - J(last_theta)) < epsilon。为什么不使用dJ(theta) < epsilon来判断是否到达极值?

写回答

1回答

liuyubobobo

2020-11-11

由于线性回归法的损失函数非常简单,所以我们可以使用导数为零的方式获得其极值点,也就是线性回归法有数学解。实际上,这个数学解就是在上一章介绍的正规解。你可以实验一下,取导数为零,最终得到的结果,和上一章介绍的正规方程解是一致的。


关键在于,梯度下降法是一种通用的寻找最小值的方法,并不是只有在线性回归法中才能使用的。对于后续学习的很多机器学习算法,其损失函数是没有数学解的,此时只能使用梯度下降法求解。因此,在这一章,我们的关键是学习梯度下降法,而不是仅仅把线性回归法解决了就可以了:)


继续加油!:)




1
0

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程