训练过程中使用学习率衰减

随机梯度下降算法的性能与学习率有着直接的关系,这是因为学习率决定了参数移动到最优值时的速度。如果学习率过大很可能会越过最优值,如果学习率过小,优化的效率可能过低,收敛时间极长。那么一个很好的解决方案就是学习率衰减——即学习率随着训练的进行逐渐衰减。

在训练过程开始时,使用较大的学习率,这样就能快速收敛;随着训练过程的进行,逐渐降低学习率,这样有助于找到最优解。

目前两种较为流行的学习率衰减方法为:(1)线性衰减        (2)指数衰减

(一)学习率线性衰减:

根据epoch逐步降低学习率。

在Keras中是通过SGD类中的随机梯度下降优化算法实现的,这个类有一个decay衰减率参数。

decay=0时,对学习率没有影响,非零时,学习率呈线性衰减。

公式为:

LearningRate = LearningRate \ast \frac{1}{1+decay\ast epoch}

 在下面代码中,初始学习率设为0.1——这是一个较为高的值。decay设为0.005。

"""
学习率线性衰减
"""
from sklearn import datasets
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasClassifier
from keras.optimizers import SGD

#导入数据
dataset = 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值