더북(TheBook)

 

4아다그라드

 

아다그라드(Adagrad, Adaptive Gradient)는 변수의 업데이트 횟수에 따라 학습률을 조절하는 옵션이 추가된 최적화 방법입니다. 만일 학습 도중 어떤 변수가 자주 업데이트되었으면 이 변수는 최적화 값에 더 가까워졌다고 가정할 수 있습니다. 이때 해당 변수에 대한 학습률을 줄여 좀 더 세밀한 업데이트를 해 주면 예측의 정확도가 높아집니다. 반대로 어떤 변수가 자주 업데이트되지 않았다면, 이 변수에 대한 학습률을 높여 주는 것이 예측의 정확도를 높이는 방법입니다. 이것이 아다그라드의 원리입니다. 식으로 표현하면 다음과 같습니다.

 

286

 

여기서 G(t)는 t 스텝까지 각 스텝별로 변수가 수정된 그래디언트의 제곱을 모두 합한 값입니다. ϵ은 아주 작은 상수를 의미하며, 0으로 나누는 것을 방지해 줍니다. 다음은 이를 파이썬 코드와 케라스 코드로 각각 표현한 것입니다.

 

# 파이썬 코드

g += gradient**2

Self.weight[i] += - learning_rate * gradient / (np.sqrt(g) + e)


# 케라스 코드

keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.