[DNN] Mini-batch gradient descent

yozzum·2025년 1월 10일
0

Machine Learning

목록 보기
22/30

  • Suppose we have 5,000,000 training examples.
  • Vectorization은 많은 데이터(m)을 효율적으로 처리해준다.
  • 하지만 데이터(m) 양이 너무 많은 경우에는 여전히 느리다.
  • 한 step의 gradient decent를 수행하기 위해 모든 데이터를 학습하는건 여전히 비효율적인 것이다.
  • 따라서 전체 데이터를 쪼개서 gradient decent를 통해 minimum cost로 더 빠르게 수렴하도록하는 방법이 Mini-batch gradient decent이다.
  • 예를 들어 1,000개의 데이터를 하나의 mini-batch로 설정해서 처리할 수 있다.
    ※ 1 epoch = Single pass through the entire training set.

  • Mini-batch gradient descent를 수행하면, 매번 다른 데이터셋으로 학습이되고 cost가 측정되기 때문에 batch gradient descent와 비교해서 상대적으로 fluctuation이 많은 것처럼 보이게된다.

Hyper-parametre

  • Mini-batch size가 m이면, Batch gradient descent
    • 한번의 gradient descent를(1 step) 수행하는데 너무 오래걸린다.
  • Mini-batch size가 1이면, Stochastic gradient descent
    • 수렴하는 과정에서 불필요한 방향으로 수렴하게되고, vectorization의 컴퓨팅 이점을 활용하지 못해서 느리다.
  • Mini-batch size가 중간이면, In-between 인 것이다.
    • 가장 빠르며, 적당한 사이즈로 수행하는 것이 가장 이상적이다.

※ 데이터가 큰 경우에만 사용하는게 좋으며, typical mini-batch size는 64, 128, 256, 512 중에서 정하는게 좋다고 알려져 있다.

  • Make sure mini batch size fit in CPU/GPU memory.
profile
yozzum

0개의 댓글