모멘텀 최적화
아래의 수식을 따른다.
r 은 모멘텀을 얼마나 줄지 결정하는 값, 약 0.9 근방의 값
기존 SGD 보다 학습 속도가 r v_(t-1) 만큼 가속한다.
한 스텝 한 스텝이 더 커진다.
반복 횟수에 따라 달라지는 것,
먼저 첫 번째 반복의 경우,
이동 벡터 v_t 가 일반 경사 하강의 비용 함수의 변화량에 해당,
2 번째의 경우 이전 이동 벡터에 모멘텀 파라미터를 곱하고, 해당 비용 함수의 변화량을 더한 값
v = (v * momentum) + (gradient_diff * learning_rate)
위와 같이 표현될 수 있을 것,
# 모멘텀 최적화
def momentum(self, gradient, gradient_diff, v = 0, learning_rate = 0.01, momentum_rate = 0.9):
"""
momentum_rate : 모멘텀 파라미터
v : 이동 벡터
"""
v = (v * momentum_rate) + (gradient_diff * learning_rate)
gradient = gradient - v
return gradient
'ml_framework' 카테고리의 다른 글
cnn(layer) (0) | 2023.05.06 |
---|---|
cnn(layer) (0) | 2023.05.04 |
gradient_descent(1) (0) | 2023.05.02 |
pooling (0) | 2023.04.28 |
padding (0) | 2023.04.28 |