Optimizer
배치 경사 하강법(Batch Gradient Descent)
확률적 경사 하강법(Stochastic Gradient Descent, [[SGD]])
미니 배치 경사 하강법(Mini-Batch Gradient Descent)
모멘텀(Momentum)
keras.optimizers.SGD(lr=0.01, momentum=0.9)
아다그라드(Adagrad)
매개별수들은 각자 의미하는 바가 다른데, 모든 매개변수에 동일한 학습률(learning rate)을 적용하는 것은 비효율적입니다. 아다그라드는 각 매개변수에 서로 다른 학습률을 적용시킵니다. 이 때, 변화가 많은 매개변수는 학습률이 작게 설정되고 변화가 적은 매개변수는 학습률을 높게 설정시킵니다. 케라스에서는 다음과 같이 사용합니다.
keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)
알엠에스프롭(RMSprop)
아다그라드는 학습을 계속 진행한 경우에는, 나중에 가서는 학습률이 지나치게 떨어진다는 단점이 있는데 이를 다른 수식으로 대체하여 이러한 단점을 개선하였습니다. 케라스에서는 다음과 같이 사용합니다.
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-06)
아담(Adam)
아담(Adam)은 알엠에스프롭과 모멘텀 두 가지를 합친 듯한 방법으로, 방향과 학습률 두 가지를 모두 잡기 위한 방법입니다. 케라스에서는 다음과 같이 사용합니다.
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
케라스의 옵티마이저 사용법은 아래의 링크에서 좀 더 상세히 확인할 수 있습니다.
링크: https://keras.io/optimizers/