6-8 的15:32处dj_debug适用于所有函数不太理解

来源:6-8 如何确定梯度计算的准确性?调试梯度下降法

桂圆

2021-12-12

  1. 像是在6-4中介绍的,用while循环来求梯度是不是也适用与所有函数
  2. 对于dj_math不适用其它情况,希望举例说下
写回答

1回答

liuyubobobo

2021-12-12

1.

如果你说的 while 循环是这里 In[9] 中的 while cur_iter < n_iters 这个循环:https://git.imooc.com/coding-169/coding-169/src/master/06-Gradient-Descent/04-Implement-Gradient-Descent-in-Linear-Regression/04-Implement-Gradient-Descent-in-Linear-Regression.ipynb

这个 while 循环不是在求梯度,而是在使用梯度下降法求解整个损失函数 J 的最小值,以及取得最小值时,对应的参数值。


是的,梯度下降法这个方法对于任意函数都适用。但是,不同的函数,梯度是不同的。另外,不是处处可导的函数,可能效果不好。


2.

这里说的 dJ_math 不适用其他情况,就是指不同的 J,其 dJ 的式子是不同的。我们在这一章实现的 dJ,完全是根据线性回归的 J 函数推出来。完全是这个式子的实现。

//img.mukewang.com/szimg/61b5a9f5093ec28318481086.jpg


换一个算法,其 J 函数变了,相应的 dJ 的式子就变了,dJ_math 就要重新写。


比如课程后续,我们会介绍逻辑回归。逻辑回归的 J 是这样的,那么我们就要推出新的 dJ_math,而不能使用这个 dJ_math 函数。

//img.mukewang.com/szimg/61b5aa9e09bf4de419321030.jpg


继续加油!:)

0
0

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

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

5839 学习 · 2437 问题

查看课程