我正在自学梯度下降法。 因为我用简历申请大学入学。 精度的含义是允许的误差值吗
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))
似乎精度是检查收敛性的一种手段:如果梯度下降的最后一次迭代只引起了一个小的变化,那么停止
这种方法不是很稳健。首先,单个迭代中的微小变化并不是收敛的有力迹象。最好在几个连续的迭代中寻找一个小的变化。其次,这个过程可能根本不会收敛,因此应该采取某种措施防止无限循环
相关问题 更多 >
编程相关推荐