6-8 调试梯度下降法

梯度的求解并不容易,如果知道自己求的梯度是否正确?

图中两条直线的斜率近乎相等。 两个蓝点越接近,斜率越相近。

推广到高维场景

代码实现

准备数据

两种方法求导数

两种方法训练模型

实验结果

dJ_math对应的运行时间为:660 ms dJ_debug对应的运行时间为:4.58s 两种方法求出的theta完全相同

dJ_debug的方法可以用于求梯度,最终能得到正确的结果 dJ_debug速度很慢。 可以先使用dJ_debug得到想要的正确结果。 再用dJ_math将得到的结果与dJ_debug的结果相比较,来验证数学是否正确。 dJ_debug与J无关,可以适用于所有函数。

Last updated