본문 바로가기
딥러닝 with Python

[딥러닝 with Python] 옵티마이저(Optimizer)란?

by CodeCrafter 2025. 2. 19.
반응형

 이번에는 딥러닝에서 기본적인 요소이면서 중요한 요소임에도 따로 포스팅으로 다루지 않았었던 

 옵티마이저(Optimizer) 의 개념에 대해서 간단히 정리해보겠습니다.

 

옵티마이저는 딥러닝 학습에 매우 중요한 요소이지만, 처음 시작하는 분들께서 "SGD 와 Adam의 차이가 뭘까?" 등의 의문을 가질 수도 있습니다.

 

 이번 포스팅에서는 저도 딥러닝을 처음 공부할때 가졌었던 위와 같은 의문들에 대해서 알기 쉽게 정리해보고자 합니다.

 

1. 옵티마이저(Optimizer)란?

- Optimizer는 Loss Function을 최소화하는 방향으로 가중치를 업데이트하는 알고리즘을 말합니다.

 

- 옵티마이저의 핵심 역할을 

 * 학습 Loss의 감소

 * 학습 가중치(w)의 업데이트

 * 학습 속도 & 성능 최적화

 의 방향성을 결정한다고 보시면 되겠습니다.

 

즉, Loss를 최소화 시키는 방향으로 학습을 해나갈건데 어떤 방법으로 학습을 해나갈까에 대한 방향성의 개념으로 비유해볼 수 있을 것 같습니다.

 

 

옵티마이저의 공식은 아래와 같습니다. (L은 Loss Function)

 

아래는 Optimizer의 발달 계보에 대해 잘 정리되어있는 포스팅입니다

출처: https://www.slideshare.net/yongho/ss-79607172

 

이 중 대표적인 Optimzier에 4개에 대해서 알아보면

1) SGD (Stochastic Gradient Descent)

 * 가장 기본적인 경사하강법에 Stocahstic한 방법(데이터 샘플을 무작위로 선택하여 가중치를 업데이트)을 적용했습니다.

 * 단순하지만, 술며 속도가 느리고 Local minimum에 갇힐 가능성이 있습니다.

 

2) Momentum SGD (SGD + Momentum)

 * SGD의 단점인 진동 문제(oscillation)를 해결하기 위해 관성(Momentum)이라는 개념을 추가했고, 이는 이전 업데이트 값을 일정 비율로 유지하면서 가중치를 업데이트하는 개념이라고 보시면 되겠습니다.

 

3) RMS Prop

 * 학습률을 자동으로 조정하는 방식으로, SGD보다 빠르고 안정적인 수렴이 가능합니다.

 * RNN, LSTM과 같은 순차 데이터 학습에 특히 유리합니다.

 

4) Adam(Adaptive Moment Estimation)

 * SGD + Momentum + RMS Prop을 결합한 강력한 옵티마이저이자 가장 많이 활용됩니다.

 * 적응형 학습률(Adaptive Learning Rate)를 사용합니다.

반응형

댓글