확률적 경사하강법(Stochastic Gradient Descent)

만약 우리가 모든 데이터 세트를 가지고 모델을 학습 시킨다면 예측의 정확성은 높일 수 있으나, 매우 오랜 시간이 걸릴 것 입니다. 확률적 경사하강법은 랜덤으로 단 한 개의 데이터를 추출하여(배치 크기가 1) 기울기를 얻어 냅니다. 이러한 과정을 반복해서 학습하여 최적점을 찾아내는 것이 확률적 경사하강법입니다.


Cf. 확률적(Stochastic): 기울기를 구하는데 필요한 한 개의 데이터가 무작위로 선택 됨


경사하강법과 확률적 경사하강법의 비교

 

경사하강법 

확률적 경사하강법 

1회의 학습에 사용되는 데이터 

  모든 데이터 사용

  랜덤으로 추출된 1개의 데이터 사용(중복 선택 가능)

 반복에 따른 정확도

  학습이 반복 될 수록 최적해에 근접 

  학습이 반복 될 수록 최적해에 근접 

노이즈

  거의 없음 

  비교적 노이즈가 심함 

해를 찾는 과정의 이미지 비교

 

 



=> 한 번 학습할 때 마다 모든 데이터를 계산하여 최적의 한 스텝을 나아가는 경사하강법과 달리, 확률적 경사하강법은 랜덤하게 추출한 하나의 데이터만 계산하여 빠르게 다음 스텝으로 넘거 갑니다. 그 결과 더 빠르게 최적점을 찾을 수 있게 되었지만 그 정확도는 낮아집니다.


배치(Batch)란?

확률적 경사하강법을 설명할 때 배치(Batch)의 크기가 1이다라는 말을 하였습니다. 배치란, 단일 반복에서 기울기를 계산하는 데 사용하는 예의 총 개수를 의미합니다. 


예를 들어, 배치의 크기가 1인 경우에는 기울기를 구하는데 사용되는 데이터가 1개이고 배치의 크기가 10인 경우는 기울기를 구하는데 사용되는 데이터가 10개라는 것입니다.


미니 배치 확률적 경사하강법(Mini-batch SGD: 확률적 경사하강법의 한계를 보완하다

확률적 경사하강법은 단일 반복에서 기울기를 구할 때 사용되는 데이터가 1개여서 노이즈가 너무 심하다는 한계가 있습니다.

이를 보완하는 것이 바로 미니 배치 확률적 경사하강법(Mini-batch SGD)입니다. 미니 배치 확률적 경사하강법은 전체 배치 반복과 SGD 간의 절출안으로써 배치의 크기가 10 ~ 1000 사이로 설정합니다.
미니 배치 확률적 경사하강법은 SGD의 노이즈를 줄이면서도 전체 배치보다는 더 빠르게 최적점을 구할 수 있습니다.



+ Recent posts