딥러닝 모멘텀 이름이 맘에 안듬

응큼한포도·2024년 6월 25일
1

모멘텀 이름이 왜 모멘텀임?

모멘텀은 딥러닝 최적화 방법 중 하나로 물리의 운동량에서 영감을 얻었다고 한다.

모멘텀의 기능

1. 지역 최솟값을 넘어가서 전역 최소값에 이르게 해준다.

2. 진동을 줄여줘서 빠른 시간안에 최솟값에 수렴하게 해준다.


위 SGD 그래프를 아래와 같이 부드럽고 효과적으로 수렴하게 해준다.

딥러닝 모멘텀은 이름 잘못지었다

물리학에서 운동량은 하나의 단위다. 고등학교 물리에선 시공간, 속도 등을 이용해서 표현하기 때문에 운동량이란 단위는 생소할 수 있지만

운동량이란 물리에서 얼마 안되는 진리라고 여겨지고(물리는 진리를 탐구하는 학문이 아니다) 측정 자체도 운동량으로 하기 때문에 컴공에선 데이터가 기본 단위이듯 물리에선 운동량은 모든 물리에 들어가 있다.

양자역학, 전자기학, 고전역학, 상대성 이론 등등에서 단위로 표현되고 지켜야할 법칙으로 이용되기 때문에 딥러닝 모멘텀에서 운동량으로 표현한 건 아주 모호한 개념이라고 생각한다.

모멘텀보단 감쇠진동이다

이번글엔 운동량을 설명하기 보단 SGD의 진동에 대해서 집중해고자 한다.

물리에서 주기운동을 표현하기 위해 위와 같은 방정식을 이용한다. 이걸 미분방정식을 이용해 푸는 데 풀이는 생략하고 결과만 보여주겠다.


이게

이런식으로 나오게 된다.

물리에서 거리의 개념은 딥러닝에서 L(loss)와 대응해서 생각하면 된다.

이 해를 가진 운동의 예를 그림으로 보면

빗금에 해당되는 그림이다. 우리의 목표는 딥러닝에서 빗면의 진동에 해당되는 걸 실선처럼 부드럽게 감소시키는 과정이다.

이를 물리의 진동모델에서 따온게 딥러닝의 모멘텀의 개념이라고 나는 생각한다.

진동줄이기: 감쇠진동

실제 물리 상황에선 물체의 속도에 비례하는 항이 존재한다. 이를 저항력이라고 한다.

이 저항력이 존재하는 진동을 우리는 감쇠진동이라고 부른다. 물리식은 다음과 같다.


다음과 같은 저항력이 존재할 때

위와 같은 방정식이고 이를 이항 후 정리해서 표현하면 다음과 같다.

이 식을 미분방정식을 이용해 풀어보자.


이렇게 바꾸고


이런 근을 얻어서 표현하면

3가지 케이스를 얻게 된다. 이 식만 보면 뭘 알겠나? 그림으로 보자.

위 그림을 보자. 그냥 대충 말해보면 저항력이 크면 overdamping, 적당하면 critical, 작으면 underdamping이다.

딥러닝과 연결하자


위 식이 모멘텀에 대한 식이다. 원래 역전파 식에서 추가된건 속도에 관한 항이다. 이전 속도에 베타가 곱해지는데 이게 물리의 저항력에 해당된다.

근데 이건 컴퓨터가 불연속적인 값만 다룰 수 있기 때문에 이렇게 표현한 것이다. 지금껏 설명한 물리 방정식과 연결을 못하니 위 식을 시간에 연속적인 식으로 바꾸자


그럼 이렇게 바뀌는 데

딥러닝에서 기울기는 보통 선형이기 때문에 위와 같이 표현해서 식에 넣자.

그럼 이렇게 되는데 여기서

이런 사실을 위 방정식과 합치자.

그럼 위와 같은 방정식을 얻을 수 있다. 이 식은

감쇠진동의 식과 일치하는 것을 알 수 있죠?

식이 같기 때문에 L값의 그래프 또한 감쇠진동의 그래프와 똑같은 형태를 띄는 것을 추론할 수 있다. 그래서 당연히 진동이 부드러워지는 것이다.

결론

모멘텀이 아니고 감쇠 진동이라 해야함

또한 저항력에 속도에 비례하는 항이 아닌 다양한 외부힘을 적용할 수 있다. 그로 인한 해는 여러가지 모습을 보이며 이를 최적화에 적용할 수 있다고 생각한다. 그건 여유가 있을 때 해봐서 올리도록 하고 모멘텀 최적화의 의미를 알고 싶다면 감쇠진동을 공부하도록 하자.

profile
미친 취준생

0개의 댓글