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한 것도 충분할 수 도 있다.
반응형
'IT > [Everyday]Coding' 카테고리의 다른 글
데이터 스트럭쳐 선택 순서도 (1) | 2015.01.08 |
---|---|
랜덤 포레스트 Random Forests (1) | 2014.12.22 |
딥러닝_Neural Network_backpropagation (0) | 2014.12.19 |
딥러닝_Neural Network_멀티 퍼셉트론 (0) | 2014.12.19 |
딥러닝_Neural Network_퍼셉트론3 (0) | 2014.12.19 |