用户:四九圣尊查看:1 回复:6 评论:1 创建时间:2018-10-27T13:08:25
二阶导数其实就是一阶导数的导数。y=x²中的二阶导数就是y=2x的导数y=2x,所以就是y=4x。
一阶导数表示的是函数一个点的斜率,二阶导数则表示的是函数的凹凸性,二阶导数得出的值越小,函数越凹,反之越凸。
在y=x²中,达到红点时二阶导数为0,函数处在最凹的状态。我们可以根据二阶导数的值确定梯度下降的进度,从而动态的调整学习率。
def function(a,devi=False,step=1):
if devi:
if step == 1:
return 2*a
else:
return abs(2*a*2)
else:
return a ** 2
在迭代中加入权重更新:
lr = function(th,True,2)*0.1
效果:可以看出速度比之前:
快了不少!