본문 바로가기
IT/[Everyday]Coding

gradient descent 와 stochastic gradient descent 차이

by Jang HyunWoong 2014. 12. 19.

the difference between gradient descent (GD) and stochastic gradient descent (SGD) 

간략하게 알아보겠다. 

 

두가지 모두 parameter set을 error function이 가장 작아지도록 수정하는 것이다. 

 

큰 차이점으로 먼저 GD(gradient descent)는 전체 샘플들을 반복적으로 업데이트(수정)한다.

반면에 SGD(stochastic gradient descent)는 훈련 셋에서 하나의 샘플만을 반복적으로 업데이트 한다. 

 

그래서 트레이닝 샘플이 커지게 되면 GD를 사용하는 것은 시간이 오래 걸리고 RAM에서 수용할 수 없게 될 수 도 있다. 

왜냐하면 매번 iteration될 때마나 전체적인 셋을 계산하기 때문이다. 

하지만 SGD는 하나의 트레이닝 샘플을 사용하기 때문에 연산속도를 더 빠르게 가져갈 수 있을 것이다. 

 

SGD가 GD에 비해 빠르다고 하지만 error function을 GD보다 더 줄일수 없을 것이다. 그냥 대략적인 approximation을 하기 때문일 것이다. 하지만 데이터가 많을 때는 approximation한 것도 충분할 수 도 있다. 

반응형