随机梯度下降算法的性能与学习率有着直接的关系,这是因为学习率决定了参数移动到最优值时的速度。如果学习率过大很可能会越过最优值,如果学习率过小,优化的效率可能过低,收敛时间极长。那么一个很好的解决方案就是学习率衰减——即学习率随着训练的进行逐渐衰减。
在训练过程开始时,使用较大的学习率,这样就能快速收敛;随着训练过程的进行,逐渐降低学习率,这样有助于找到最优解。
目前两种较为流行的学习率衰减方法为:(1)线性衰减 (2)指数衰减
(一)学习率线性衰减:
根据epoch逐步降低学习率。
在Keras中是通过SGD类中的随机梯度下降优化算法实现的,这个类有一个decay衰减率参数。
decay=0时,对学习率没有影响,非零时,学习率呈线性衰减。
公式为:
在下面代码中,初始学习率设为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 =

最低0.47元/天 解锁文章
8813

被折叠的 条评论
为什么被折叠?



