我们都知道学习率设置太小,网络收敛非常缓慢。学习率设置太大会造成网络不能收敛,在最优值附近徘徊。
想象一下打高尔夫球,三竿进动,通常第一杆力气很大,第二杆力气变小,第三杆微微用力推球入洞。这就和动态学习率一样了,如果你每一杆都用同样的力气打,如果是轻轻打还好,会越来越接近洞口,运气好最终也能进洞。如果每一杆力气一样并且是很大的力气,那你可能是在和自己过不去了。下面贴上最直观的小实验和代码。
import numpy as np
from sympy import *
import random
w1,w2=symbols("w1,w2")
x1=5
x2=45
y=10.12132
learn_rate=0.0002
steps=10
#神经网络定义
h=x1*w1+x2*w2
print(