• 속도를 조정하는 방법
아다그라드(Adagrad, Adaptive gradient)
아다그라드는 변수(가중치)의 업데이트 횟수에 따라 학습률을 조정하는 방법입니다. 아다그라드는 많이 변화하지 않는 변수들의 학습률은 크게 하고, 많이 변화하는 변수들의 학습률은 작게 합니다. 즉, 많이 변화한 변수는 최적 값에 근접했을 것이라는 가정하에 작은 크기로 이동하면서 세밀하게 값을 조정하고, 반대로 적게 변화한 변수들은 학습률을 크게 하여 빠르게 오차 값을 줄이고자 하는 방법입니다.
파라미터마다 다른 학습률을 주기 위해 G 함수를 추가했습니다. 이때 G 값은 이전 G 값의 누적(기울기 크기의 누적)입니다. 기울기가 크면 G 값이 커지기 때문에 에서 학습률(η)은 작아집니다. 즉, 파라미터가 많이 학습되었으면 작은 학습률로 업데이트되고, 파라미터 학습이 덜 되었으면 개선의 여지가 많기 때문에 높은 학습률로 업데이트됩니다.
예를 들어 텐서플로 2에서는 아다그라드를 다음과 같이 구현할 수 있습니다.
from tensorflow.keras.optimizers import Adagrad
model.compile(loss='sparse_categorical_crossentropy',
optimizer='Adagrad'
distribute=None