더북(TheBook)

 

3네스테로프 모멘텀

 

네스테로프 모멘텀(Nesterov momentum)이란 모멘텀 SGD 방식에 한 가지 옵션을 추가한 것입니다. 즉, 그래디언트를 구할 때 먼저 v( t-1) 값을 더한 다음 계산하는 것입니다. 이 단계를 추가함으로써 V(t)를 계산하기 전에 모멘텀 방법으로 인해 이동될 방향을 미리 예측하고 해당 방향으로 얼마간 미리 이동한 뒤 그래디언트를 계산하는 효과를 얻을 수 있습니다. 이 방법은 속도는 그대로이면서, 이동을 실행하기 전 한 단계를 미리 예측함으로써 불필요한 이동을 줄일 수 있다는 점에서 좋습니다. 다음은 이를 공식으로 표현한 것입니다.

 

285

 

이를 파이썬 코드와 케라스 코드로 나타내면 각각 다음과 같습니다.

 

# 파이썬 코드

v = m * v - learning_rate * gradient(Self.weight[i-1]+m*v)

Self.weight[i] += v


# 케라스 코드

keras.optimizers.SGD(lr=0.1, momentum=0.9, nesterov=True)

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