Study Archives/Deep Learning

Optimizer, Gradient descent

ns4A 2023. 11. 17. 15:59

딥러닝에서 옵티마이저(optimizer)는 모델이 학습하는 동안 weight를 조정하는 알고리즘입니다. 딥러닝 모델은 오차를 최소화하기 위해 학습 데이터에 적응하도록 가중치를 조절하며, 옵티마이저는 수식으로 파라미터들을 최적화해 이러한 가중치 조정을 수행합니다.

 

https://towardsdatascience.com/gradient-descent-algorithm-and-its-variants-10f652806a3

옵티마이저가 어떻게 가중치 조정을 하는지 알기위해선 우선 Gradient descent(경사하강법)에 대해 알아야합니다. 경사하강법은  함수의 최솟값을 찾기 위한 최적화 알고리즘 중 하나로, 함수의 최솟값은 해당 함수의 기울기(경사)가 0이 되는 지점에 위치하게 되므로, 경사 하강법은 현재 위치에서 함수의 기울기를 계산하고, 그 기울기의 반대 방향으로 이동하여 최솟값을 찾는 과정을 반복하는 방법입니다.

 

조금 더 자세히 스텝별로 확인해보자면 우선 현재 위치에서 함수의 기울기(경사)를 계산합니다. 이는 편미분을 통해 구할 수 있습니다. 그 후 현재 위치에서 계산한 기울기의 반대 방향으로 이동합니다. 이동 거리는 학습률(learning rate)과 곱해져 결정됩니다. 학습률은 얼마나 큰 거리로 이동할지를 조절하는 하이퍼파라미터로, 너무 크면 최솟값을 지나칠 수 있고, 너무 작으면 수렴이 느려질 수 있기에 사용자의 적절한 설정값이 필요합니다. 이를 반복해 최적의 위치를 찾아 최솟값을 찾는게 경사하강법입니다.

 

 

경사 하강법은 수식으로는 다음과 같이 나타낼 수 있습니다. 이때 각 변수는 다음과 같습니다.

좌변 $\theta_{j}$ : 업데이트 될 파라미터

 

우변 $\theta_{j}$ : 현재의 파라미터

 

$\alpha$ : 학습률(learning rate)

 

$\frac{\partial}{\partial \theta_{j}}$ : 기울기의 변화

 

$J(\theta_{0},\theta_{1})$ : Cost Function

 

 

다시 옵티마이저 얘기로 돌아와서 경사 하강법을 기반으로 옵티마이저의 종류도 어려가지가 있는데 첫번째는 SGD라고 불리는 Stochastic Gradient Descent입니다. 확률적 경사 하강법이라는 이름인데 이는 전체의 데이터를 사용하는게 아닌 랜덤하게 선택된 하나의 데이터에 대해 경사하강법을 진행합니다. 이를 통해 가중치를 업데이트하면서 최소값을 찾아 나아갑니다. 단,  각 반복에서 랜덤하게 선택한 단일 데이터에 대한 기울기를 계산하고 가중치를 업데이트하는데, 이는 노이즈가 많고 계산이 많이 필요하므로 효율적이지 않습니다.

 

그래서 나온 것이 두번째로 설명할 Mini-batch Stochastic Gradient Descent입니다. SGD앞에 붙은 mini batch란 데이터셋을 작은 크기의 부분 집합으로 나눈 것을 말합니다. 이렇게 데이터의 수를 쪼개버리면 GPU를 이용한 병렬 연산을 통해 계산속도에서 크게 이득을 볼 수 있습니다. SGD가 단일 데이터에 대해 반복 계산을 했다면 mini batch SGD는 배치 단위 데이터셋에 대한 반복을 수행하지요. SGD보다 계산적으로 효율적이고 빠름과 동시에 노이즈도 적어 현재 많이들 쓰고 선호되는 방식입니다.

 

세번째는 Adaptive Moment Estimation, 약칭  Adam입니다. 수식으로 풀면 꽤 복잡해지는데 간단히 설명하자면 학습률이 학습 초기에 빠르게 수렴하고, 학습이 진행됨에 따라 학습률을 조절하여 안정적으로 수렴하는 특징이 있습니다. 이 방식 역시 현재 딥러닝에서 많이 쓰이고 있다합니다.

 

네번째는 SAM이라 불리우는 Sharpness-Aware Minimization입니다. SAM은 모델을 훈련시킬 때, 손실 함수의 모양을 고려합니다. 손실 함수가 뾰족한 지점을 찾아가도록 모델을 조절하며, 이를 통해 모델이 더 빠르게 학습하고 일반적으로 더 좋은 성능을 내도록 도와줍니다. overfitting의 방지에 효과적이면서 높은 정확도를 유지함과 동시에 일반화 능력을 향상시킬 수 있는 옵티마이저라고 합니다.

'Study Archives > Deep Learning' 카테고리의 다른 글

Deep Learning Fundamentals  (0) 2026.03.09
RGB-D 데이터에서 Depth Estimation과 Semantic Segmentation 이해하기  (0) 2026.03.09
Data Augmentation  (0) 2023.11.18
Activation Function  (0) 2023.11.16
Convolution  (0) 2023.11.16