Stochastic Gradient Descent

­김성우·2022년 7월 1일
0

3. 딥러닝

목록 보기
2/5

딥러닝의 중요한 포인트.
Gradient descent, Stochastic gradient descent, mini batch stochastic gradient descent.


  • Q. Gradient Descent 알고리즘이 뭐에요?
    A. Gradient descent 알고리즘이란 loss function 에서의 최소값을 찾는 알고리즘입니다. 이는 기울기의 반대 방향으로 일정 크기만큼 이동하는 것을 반복하면 이뤄냅니다.

  • Q. Stochastic gradient descent 가 왜 제시되었나요?
    A. Stochastic gradient descent 은 batch gradient descent 의 단점을 커버하기 위해 제시되었습니다. Batch gradient descent 은 global minima 를 보장하지만 연산량이 어마어마했습니다. 하지만 stochastic gradient descent 은 매 데이터포인트마다 gradient descent 을 접목해 연산량 자체를 크게 줄이면서 답을 빠르게 찾을 수 있었습니다.

  • Q. Mini-batch gradient descent 은 왜 제시되었나요?
    A. Stochastic gradient descent 의 랜덤성과 높은 variance 을 줄이기 위해 제시되었습니다. 매 데이터포인트가 아닌 batch size 을 설정해줘서 gradient descent 가 이루어집니다. 흔히 32, 64, 128 등의 size 가이용됩니다.


Gradient Descent

딥러닝에서 뉴럴 네트워크의 weight 을 조정하는데 gradient descent 알고리즘이 사용된다. 이는 loss function 의 값을 최소화하는 세타 값을 찾는 것으로 기울기의 반대 방향으로 일정 크기만큼 이동하는 것을 반복하는 것이다.

이때 train dataset 전체를 이용하면 batch gradient descent 이다. 이는 global minimum 을 찾는것을 보장하지만 연산량이 매우 많다. 현실적으로 쓰기에는 힘들다.

따라서 제시된 것이 stochastic gradient descent 이다. 이는 매 데이터포인트마다 gradient descent 알고리즘을 접목시켜 훨씬 빠르게 답을 낸다. 하지만 local minima 에 빠질 위험도 있고, 하나의 포인트마다 움직이기 때문에 변칙이 큰 단점이 있었다.

이를 개선하기 위해 마지막으로 나온 것이 mini batch gradient descent, 또는 batch gradient descent 이다. 이는 batch size 을 직접 설정을 해 학습을 시키는 것이다. 빠르고 높은 안정성을 보이는 이 기법이 지금도 자주 쓰인다.

< 그림 출처 >
https://light-tree.tistory.com/133

profile
Dreaming of Algorithm & AI Expert...

0개의 댓글