Image processing/Deep-learning

[Deep Learning] 확률적 경사 하강법(Stochastic Gradient Descent)

유니디니 2019. 12. 10. 15:33
728x90
반응형

참고 자료

[1] https://light-tree.tistory.com/133

 

딥러닝 용어정리, MGD(Mini-batch gradient descent), SGD(stochastic gradient descent)의 차이

제가 공부한 내용을 정리한 글입니다. 제가 나중에 다시 볼려고 작성한 글이다보니 편의상 반말로 작성했습니다. 잘못된 내용이 있다면 지적 부탁드립니다. 감사합니다. MGD(Mini-batch gradient descent), SGD(st..

light-tree.tistory.com

[2] https://twinw.tistory.com/247

 

수식과 코드로 보는 경사하강법(SGD,Momentum,NAG,Adagrad,RMSprop,Adam,AdaDelta)

1. 개요 가중치를 조절하는 방법으로 다들 경사 하강법을 알고 계실 것이라 생각합니다. 경사 하강법은 정확하게 가중치를 찾아가지만 가중치를 변경할때마다 전체 데이터에 대해 미분해야 하므로 계산량이 매우..

twinw.tistory.com

[3] https://nonmeyet.tistory.com/entry/Batch-MiniBatch-Stochastic-%EC%A0%95%EC%9D%98%EC%99%80-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%98%88%EC%8B%9C

 

Batch, Mini-Batch, SGD 정의와 설명 및 예시

머신러닝에서 말하는 Batch의 정의 모델을 학습할 때 한 Iteration당(반복 1회당) 사용되는 example의 set 모임 여기서 iteration은 정해진 batch size를 이용하여 학습(forward - backward)를 반복하는 횟수를 말..

nonmeyet.tistory.com

 

확률적 경사 하강법(Stochastic Gradient Descent)은 추출된 데이터 한개에 대해서 그래디언트를 계산하고, 경사 하강 알고리즘을 적용하는 방법을 말한다. 

 

[그림 1] 경사 하강법 및 확률적 경사 하강법 [2]

 

전체 데이터를 사용하는 것이 아니라, 랜덤하게 추출한 일부 데이터를 사용하는 것이다. 따라서 학습 중간 과정에서 결과의 진폭이 크고 불안정하며, 속도가 매우 빠르다. 또한, 데이터 하나씩 처리하기 때문에 오차율이 크고 GPU의 성능을 모두 활용하지 못하는 단점을 가진다. 이러한 단점들을 보완하기 위해 나온 방법들이 Mini batch를 이용한 방법이며, 확률적 경사 하강법의 노이즈를 줄이면서도 전체 배치보다 더 효율적인 것으로 알려져 있다. 

 

[그림 2] Batch, Mini-Batch, Stochastic 방법

 

그림 2는 배치(학습데이터 샘플의 크기)에 따른 방법을 나타낸다.

Batch는 모든 데이터를 한꺼번에 학습하는데 활용하기 때문에 부드럽게 수렴하나 샘플의 개수만큼 계산해야하기떄문에 시간이 다소 소요된다. 

Stochastic 방법은 데이터를 한개씩 추출해서 처리해보고 이를 모든 학습데이터에 대해 적용한 것이다. 

Mini-Batch 는 전체 학습데이터를 배치 사이즈로 나누어서 순차적으로 진행한다. 일반적으로 딥러닝 학습에 사용되는 방법이며, Batch 보다 빠르고 SGD 보다 낮은 오차율을 가진다.

반응형