최적화기는 Keras 모델 컴파일에 필요한 두 개의 인수 중 하나입니다:
from keras import optimizers
model = Sequential()
model.add(Dense(64, kernel_initializer='uniform', input_shape=(10,)))
model.add(Activation('tanh'))
model.add(Activation('softmax'))
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
위의 예제처럼 model.compile()
에 넘기기 전에 인스턴스화할 수도 있고, 이름으로 호출할 수도 있습니다.
후자의 경우, 최적화기의 파라미터는 기본값이 쓰입니다:
# pass optimizer by name: default parameters will be used
model.compile(loss='mean_squared_error', optimizer='sgd')
clipnorm
과 clipvalue
파라미터는 기울기를 다듬기(clipping) 위해 모든 최적화기에 사용됩니다:
from keras import optimizers
# All parameter gradients will be clipped to
# a maximum norm of 1.
sgd = optimizers.SGD(lr=0.01, clipnorm=1.)
from keras import optimizers
# All parameter gradients will be clipped to
# a maximum value of 0.5 and
# a minimum value of -0.5.
sgd = optimizers.SGD(lr=0.01, clipvalue=0.5)
keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
확률적 기울기 하강법(Stochastic gradient descent) 최적화기입니다.
모멘텀(momentum), 학습율 감소, Nesterov 모멘텀을 지원합니다.
인수
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0)
RMSProp 최적화기입니다.
이 최적화기의 파라미터의 기본값을 그대로 두기를 추천합니다(자유롭게 조정할 수 있는 학습율은 제외하고).
이 최적화기는 일반적으로 재발 신경망(recurrent neural networks)에 적절합니다.
인수
참고
keras.optimizers.Adagrad(lr=0.01, epsilon=1e-08, decay=0.0)
Adagrad 최적화기입니다.
이 최적화기의 파라미터의 기본값을 그대로 두기를 추천합니다.
인수
참고
keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-08, decay=0.0)
Adadelta 최적화기입니다.
이 최적화기의 파라미터의 기본값을 그대로 두기를 추천합니다.
인수
참고
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
Adam 최적화기입니다.
파라미터의 기본값은 논문에서 제공하는 값을 그대로 따르고 있습니다.
인수
참고
keras.optimizers.Adamax(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
Adam 논문의 Section 7의 Adamax 최적화기입니다.
무한 표준(infinity norm)에 기초한 Adam 최적화기의 변종입니다. 파라미터의 기본값은 논문에서 제공하는 값을 그대로 따르고 있습니다.