본문 바로가기

ML&DL

BGD vs SGD vs MGD

1. Gradient Descent(GD)

1.1 개념

Gradient Descent란 최적화 문제에서 Loss Function(손실함수)를 최소화하여 모델의 성능을 향상시키는 것을 말하며, 여기서 Loss function모델의 성능을 평가하는 함수로 일반적으로 예측 값과 실제 값 사이의 오차를 측정한다. 

 

1.2 수식

 

여기서 wi는 현재의 가중치, wi+1은 다음 iteration의 가중치이며 α학습률(Learning Rate)이다.

α하이퍼 파라미터로 학습 과정 전에 수동으로 설정해야 하는 변수이며, 적절한 하이퍼 파라미터 설정이 모델의 성능에 많은 영향을 끼친다.

 

 

학습률(Learning Rate)는 최적의 가중치에 얼마나 빠르게 또는 느리게 이동할지 정하는 것이다.

학습률을 너무 낮게 설정하면 iteration마다 이동하는 거리가 너무 작아 최적의 가중치를 구하는데 소요되는 시간이 너무 오래 걸리고 학습률을 너무 높게 설정하면 수렴하지 못하고 발산하게 될 수 도 있기 때문에 적절한 학습률을 설정하는 것이 중요하다.

만약 Loss function의 Loss가 느리게 줄어든다면 학습률을 증가시키고,

Loss가 수렴하지 않고 발산하거나 특정 패턴이 없다면 학습률을 감소시켜야한다.

 

1.3 종류

Batch Gradient Descent(BGD)

- 각 iteration마다 전체 데이터 셋을 사용하여 파라미터를 업데이트 한다.

 

Stochastic Gradient Descent(SGD)

- 각 iteration마다 임의의 단일 데이터를 사용하여 파라미터를 업데이트 한다.

 

Mini-batch Gradient Descent(MGD)

- 각 iteration마다 데이터 셋을 나눈 Mini-batch만큼의 데이터를 사용하여 파라미터를 업데이트 한다.

 


2. Batch Gradient Descent(BGD)

2.1 개념

전체 데이터 셋을 사용하여 손실 함수의 기울기를 계산하고, 이를 바탕으로 모델의 가중치를

업데이트 하는 방법

 

2.2 수식

기울기 계산

여기서 N은 데이터의 수이다.

 

가중치 업데이트

 

여기서 α는 학습률이다.

 

2.3 장단점

장점

● 단일 데이터 값이 아닌 전체 데이터 셋의 평균을 계산하여 파라미터를 업데이트함으로써

Loss function의 진동 및 노이즈가 적어 안정적으로 수렴한다.

● 모든 데이터 셋을 함께 처리하는 속도를 높이는 벡터화의 이점을 얻을 수 있다.

● SGD와 비교하여 BGD는 전체 데이터 셋을 사용하여 계산을 일괄적으로 처리하기 때문에

CPU와 GPU에서의 병렬 처리 능력을 활용하여 계산적으로 효율적이다.

 

단점

● local minima에 빠졌을 때 SGD와 달리 노이즈가 적어 local minima에서 벗어나기 힘들다.

● 전체 데이터 셋을 iteration마다 사용하므로 학습이 오래걸린다.


3 Stochastic Gradient Descent(SGD)

3.1 개념

각 iteration마다 데이터 셋의 임의의 단일 데이터를 사용하여 가중치를 업데이트를 하며, 최적의 가중치까지

반복하여 업데이트 한다.

 

3.2 수식

기울기 계산

 

여기서 (x(i),y(i))는 데이터 셋의 단일 데이터이다.

 

가중치 업데이트

 

3.3 장단점

장점

● 한 iteration에 하나의 데이터만 처리되므로 계산 속도가 빠르다.

● 큰 데이터 셋의 경우 파라미터를 더 자주 업데이트 하므로 더 빨리 수렴할 수 있다.

● 잦은 업데이트로 생기는 노이즈로 local minima에서 빠져 나가는데 도움이 된다.

 

단점

● 잦은 업데이트로 생기는 노이즈로 Gradient Descent가 다른 방향으로 갈 수 있다.

● 노이즈가 많아 loss function의 최솟값으로 수렴하는 데 오랜 시간이 걸릴 수 있다.

● 한번에 하나의 데이터를 처리하기 위해 모든 리소스를 사용하기 때문에 잦은 업데이트는

계산 비용이 많이 든다.

● BGD와 달리 벡터화의 이점이 없다.


4. Mini-batch Gradient descent(MGD)

4.1 개념

BGD와 SGD의 장점을 결합한 것으로, 각  iteration마다 Mini-batch 사이즈 만큼의 데이터들을 사용하여 가중치를 업데이트 한다.

Mini-batch 사이즈가 B라면, 전체 데이터의 수/B 만큼의 iteration을 진행하면 1 epoch다.

 

4.2 수식

기울기 계산

여기서 B는 각 Mini-batch, b는 Mini-batch의 사이즈이다.

 

가중치 업데이트

 

4.3 장단점

장점

● 벡터화의 이점을 가진다.

● 빠른 학습을 제공하기 때문에 계산적으로 효율적이다.

● 노이즈를 통해 local minima를 벗어날 수 있다.

 

단점

● 각 배치마다의 노이즈로 인해 수렴 속도가 느려질 수 있다.

● 하이퍼 파라미터인 배치 사이즈와 학습률에 따라 모델의 성능이 크게 좌우된다.

 


참고자료

https://medium.com/@divakar_239/stochastic-vs-batch-gradient-descent-8820568eada1

https://bruders.tistory.com/91

https://builtin.com/data-science/gradient-descent

https://velog.io/@minjung-s/Optimization-Algorithm

 

 

 

 

 

'ML&DL' 카테고리의 다른 글

LSTM과 변형모델  (0) 2024.09.14
RNN(Recurrent Neural Network)  (2) 2024.09.10
Batch Normalization(배치 정규화)  (0) 2024.08.12
Vanishing Gradient 문제  (0) 2024.08.10
Logit, Sigmoid, Softmax 함수  (0) 2024.08.08