해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.
https://welldonecode.tistory.com/126
SGD (Stochastic Gradient Descent)
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다. 2차식인 loss fuction의 Gradient Descent 과정을 contour plot(등고선 그래프)으로 그려보면 위 그림과 같다. SGD는 데이터 중 임의로
welldonecode.tistory.com
GD(Gradient Descent)는 방향을 너무 신중하게 (모든 데이터를 전부 고려해서) 결정해서 문제이고,
SGD는 데이터를 하나씩만 보기 때문에 너무 성급하게 방향을 결정한다는 문제점이 있다.
이 둘의 절충안이 mini-batch SGD이다.
batch size만큼 데이터를 뽑아서 방향을 결정한다. (단, 뽑지 않는 데이터가 없게 하기 위해 mini-batch size=5 지만 마지막에 3개가 남았다면 그냥 3개만 뽑아서 결정한다.)
https://arxiv.org/abs/1706.02677
Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
Deep learning thrives with large neural networks and large datasets. However, larger networks and larger datasets result in longer training times that impede research and development progress. Distributed synchronous SGD offers a potential solution to this
arxiv.org
batch size는 크기가 클수록 경사하강법에서 더 신중하게 많은 데이터를 가지고 방향을 결정하기 때문에 유리하다. 하지만100% 맞는 말은 아니다.
위 논문에 의하면 batch size는 약 8k까지가 제일 적당하다.
8k까지는 아래와 같은 방법으로 커버가 가능하다.
- learning rate를 batch size와 정비례하게 같이 증가시킨다.
- learning rate warmup을 사용한다. (처음부터 너무 크면 좋지 않다)
'AI' 카테고리의 다른 글
Momentum vs RMSProp (0) | 2024.09.01 |
---|---|
파라미터 (parameter) vs 하이퍼파라미터 (hyperparameter) (0) | 2024.09.01 |
SGD (Stochastic Gradient Descent) (0) | 2024.09.01 |
가중치 초기화 기법 (Weight Initialization) (0) | 2024.09.01 |
경사하강법 (Gradient descent) (0) | 2024.08.31 |