본문 바로가기

ml_framework

gradient_descent(momentum)

모멘텀 최적화

아래의 수식을 따른다.

 

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