728x90
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.

위 사진과 같은 Adam의 알고리즘에서 마지막 줄만 보자.
기존의 update 방식은 아래와 같은 수식으로 이루어졌다.
위 수식의 형태는 Adam 알고리즘의 마지막 부분과 동일하다.
는 모멘트의 개념을 반영한 것이며 는 RMS norm의 개념을 반영한 것이다.
에서 라고 한다면
첫 번째 step에서
그 다음 step에서
그 다음 step에서
이렇게 현재의 값을 많이 반영하게끔 하고 과거의 값을 점점 잊게 gradient를 누적함으로써 관성을 부여한다. (모멘텀)
는 과 식이 유사한데, 제곱한다는 차이점이 있다.
따라서 크기를 누적해서 보여준다는 의미가 있다. (작은건 작게 큰건 크게)
은 매우 작은 양수이다. 해당 상수는 가 아무리 작아도, 좀 과장해서 0이 된다고 하더라도 수식의 분모가 0이 되지 않도록 하는 역할을 한다.

SGD는 안장점에서 약한 모습을 보이며
모멘텀은 관성을 가지고 좌우로 요동치다가 loss가 감소하는 방향을 발견하고 그게 누적돼서 쭉 빠진다.
RMSprop은 경사가 심한 방향으로 덜 가고 완만한 곳으로 더 가므로 쭉 빠진다. 한번 빠지고 너무 가파르다고 판단되어 속도를 줄인다.

RMSprop이 마지막 순간에 튀는 것이 보일 것이다.
값이 너무 작아 거의 다 수렴할 때 쯤에 분모가 0에 가까워져 팍 튀는 것이다!
728x90
'AI' 카테고리의 다른 글
Backpropagation (0) | 2024.09.03 |
---|---|
MLP를 행렬과 벡터로 나타내기, Non-linear activation의 중요성 (2) | 2024.09.02 |
Momentum vs RMSProp (0) | 2024.09.01 |
파라미터 (parameter) vs 하이퍼파라미터 (hyperparameter) (0) | 2024.09.01 |
mini-batch SGD (0) | 2024.09.01 |