我在研究梯度下降,在这个代码中精度的含义是什么?

2024-04-19 03:43:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在自学梯度下降法。 因为我用简历申请大学入学。 精度的含义是允许的误差值吗

x_old = 0
x_new = 6 # The algorithm starts at x=6
eps = 0.01 # step size
precision = 0.00001

def f_prime(x):
    return 4 * x**3 - 9 * x**2

while abs(x_new - x_old) > precision:
    x_old = x_new
    x_new = x_old - eps * f_prime(x_old)

print("Local minimum occurs at: " + str(x_new))

Tags: thenew精度epsalgorithmprimeoldat
1条回答
网友
1楼 · 发布于 2024-04-19 03:43:17

似乎精度是检查收敛性的一种手段:如果梯度下降的最后一次迭代只引起了一个小的变化,那么停止

这种方法不是很稳健。首先,单个迭代中的微小变化并不是收敛的有力迹象。最好在几个连续的迭代中寻找一个小的变化。其次,这个过程可能根本不会收敛,因此应该采取某种措施防止无限循环

相关问题 更多 >