파라미터와 손실함수
AI 학습이란, 인간에서 각 신경의 예민한 정도를 조절하는 과정에 비유할 수 있다.
정확히는 신경망에서 주어진 데이터에 대해 어떤 정답을 내놓을지 결정하는 수많은 "파라미터"를 조정하는 과정이 AI 학습이다.
어떤 모델이 얼마나 학습을 했냐는 지표로 손실함수의 값을 사용한다. 모델은 이 손실함수 값이 최소화되도록 파라미터를 조정한다.
손실함수가 어떤 볼록한 함수라고 생각하면, 함수의 가장 깊은 골짜기로 이동하도록 파라미터를 점차 조정해나갈 수 있다.
이 방법이 경사하강법이다. 경사하강법을 포함한 파라미터 최적화 기법을 옵티마이저라고 칭한다. 이번 글에서는 경사하강법과, 모멘텀, 그를 개선한 SGD, Adagrad, RMSprop 등을 소개해 볼 것이다.
경사하강법(GD)
이 식을 통해 파라미터인 x_0를 현재 손실함수에서의 기울기를 통해 갱신한다. 알파값은 학습률로, 높은 산에서 골짜기로 하산할 때의 보폭으로 생각할 수 있다. L은 손실함수, W는 모델의 가중치이다.
SGD, 모멘텀
SGD는 stochastic gradient descent의 약자로, 확률적 경사 하강법을 의미한다. GD에서는 항상 전체 데이터에 대해 학습한 후 Loss fuction의 기울기를 구하여 파라미터를 갱신했다. 이 방법처럼 전체 데이터를 계속 학습하는 것은 데이터의 크기가 커질수록 무리가 가는 방법이었다. 따라서 전체 데이터를 잘게 쪼갠 미니배치에 대해서만 Loss function의 기울기를 구해 파라미터를 갱신하는 것이 SGD이다.
모멘텀은, 경사 하강이 일정한 방향으로 어느정도 관성을 가지고 일어나도록 설정한 것이다.
Adagrad, RMSProp
위의 옵티마이저에서 학습률은 고정된 값이었다. 하지만 학습이 진행될수록 더디게 파라미터를 바꾸어가며 점점 수렴해가야 할 필요성을 느꼈다. 따라서 Adagrad에서는 아래와 같은 방법으로 학습률을 변화시키는 효과를 준다.
G_t의 값에 변화율이 점점 누적되어, Gt가 커질수록 파라미터가 적게 감소한다. 하지만 Gt값이 너무 커지만 학습이 아예 진행되지 않는 상황에 빠지게 될 수 있다. 이를 방지하기 위해 제시된 것이 RMSProp이다.
위와 같이 감마값을 사용한 지수이동평균을 통해 G값이 상대적으로 천천히 업데이트 되도록 한다.
Adam
모멘텀과 RMSProp의 장점만 모은 것이 Adam이다.
1차 모멘트, 2차 모멘트를 이용해 안정적으로 파라미터를 업데이트하며, 대부분의 task에 최적화되어있다.
'인공지능 분과 활동' 카테고리의 다른 글
인공지능 사용분야 (0) | 2024.06.08 |
---|