关于梯度下降的讲解已经很多了,因为这个东西实在很重要,我自己也看过很多,但是感觉只有自己真正可以在不看任何材料的情况下,写出简单程序时,才能算是对其有所理解。代码示例如下:
if __name__ == "__main__":
learning_rate = 0.01 # 步长
# 原始函数为 y = 4x^2-2x+3 利用梯度下降求解其当x为多少时其有最小值,且最小值为多少
x = 5 # 初始值
for i in range(1000):
x = x - learning_rate * (8 * x - 2)
print('x为多少值时有函数有最小值', x)
print('y = 4x^2-2x+3的最小值为:', 4 * x ** 2 - 2 * x + 3)