인공지능/Machine & Deep Learning

배치 사이즈(batch size) | 에포크(epoch) | 반복(iteration) 차이

해리누나 2023. 4. 18. 00:31
728x90
반응형

 

최적화 과정 / 출처 : https://m.blog.naver.com/qbxlvnf11/221449297033

 

기계는 다음과 같은 과정을 통해 학습한다.

1. 임의의 파라미터(가중치($w$))를 정한다.

2. 이 가중치에 대한 손실값을 구하고 손실 함수(Loss function)의 기울기(Gradient)를 구한다.

3. 경사하강법(Gradient Descent)을 이용해 파라미터를 업데이트 한다.

4. 업데이트 된 지점에서 새 손실 함수의 기울기를 구한다.

5. 3번 다시 실시

6. 파라미터가 최적값에 도달하면 파라미터 업데이트를 중지한다.

 

 

 

학습 과정에서의 문제

  • 보통 기계를 학습 시킬 때 사용하는 데이터의 양은 매우 많으며 이렇게 많은 데이터를 모두 한꺼번에 모델에 태우게 되면, 컴퓨터가 버티질 못한다. 
  • 데이터 크기가 너무 크면 메모리가 부족해진다.
  • 한번의 학습에 계산되어야할 파리미터 수가 지나치게 많아져 학습 속도가 느려진다.
  • 한 번의 계산으로 최적화 된 값을 찾는 건 힘들다.

따라서, 머신 러닝에서 최적화를 할 시에 일반적으로 여러 번의 학습 과정을 거친다. 한번의 학습 과정 역시 사용하는 데이터의 크기를 나누는 방식으로 세분화시킨다.

 

 

 

Batch size

  • 사전적 의미: (일괄적으로 처리되는) 집단, 무리
  • 전체 데이터 셋을 여러 작은 그룹을 나누었을 때 batch size는 하나의 소그룹에 속하는 데이터 수를 의미한다.
  • 1000개의 수학문제를 20개씩 나눠서 푸는 것으로 생각하면 된다. ( 여기서 20이 batch size)
  • (문제를 다 푼 후 사람이 채점하고 틀린 문제에 대한 이유 등을 학습하는 것 처럼 머신러닝도 Batch 크기만큼 데이터를 활용해 모델의 예측값$(y ̂)$과 실제 정답($y$) 간의 오차를 계산하여 파라미터를 업데이트한다.)
  • Batch size 가 너무 큰 경우

=> 한 번에 처리해야할 데이터의 양이 많아져, 학습 속도가 느려지고, 메모리 부족 문제가 발생할 수 있다.

  • Batch size 가 너무 작은 경우

=> 적은 데이터로 가중치가 자주 업데이트되어 훈련이 불안정해진다.

 

 

 

Epoch

1-epoch: 전체 데이터 셋을 1회 활용하여 모델을 학습시킴

 

  • 사전적 의미: (중요한 사건·변화들이 일어난) 시대
  • 딥러닝에서 epoch는 전체 데이터 셋이 신경망을 통과한 횟수 의미함, 즉 모든 데이터셋을 학습 하는 횟수를 의미한다.
  • 예로, 1-epoch은 전체 데이터셋이 하나의 신경망에 적용되어 순전파와 역전파를 통해 신경망을 한 번 통과했다는 것을 의미한다.
  • 문제집에 있는 모든 문제들을 풀고 채점까지 맞췄다는 것.
  • (문제집 한 권 전체를 1번 푼 사람이 있듯이, 2번, 3번 5번 푼 사람도 존재한다. Epoch은 따라서, 문제집 한 권 전체를 몇 회 풀었는지를 의미하는 것)
  • Epoch 값이 너무 작으면 Underfitting, 너무 크면 Overfitting이 발생할 확률이 높다.

 

위는 전체 데이터셋을 2회 활용하여 모델을 학습을 시켰다는 것. (Epoch : 2)

 

 

 

Iteration

  • 사전적 의미: (계산·컴퓨터 처리 절차의) 반복
  • 1-epoch를 마치는데 필요한 미니배치의 수를 의미한다.
  • 다른 말로, 1-epoch를 마치는데 필요한 파라미터 업데이트 횟수
  • Step이라 부르기도 한다.
  • 각 배치마다 한 번씩 파라미터 업데이트가 이루어지니 '파라미터 업데이트 횟수 = 배치의 수' 가 된다.
  • 예: 2000개의 데이터를 200개씩 10개의 미니배치로 나눈다면, 1-epoch을 위해선 10-iteration 이 필요하며 10번의 파라미터 업데이트가 진행된다는 것,
  • 예: 2000개의 데이터에 batch_size = 500 일 시 epoch 을 20번으로 설정한다면, iteration 4번이 될 것이고 전체 데이터 셋에 대해선 총 20 번의 학습이 이루어졌으며, iteration 기준으론 80번의 학습이 이루어진 셈이다.

 

 

 

 

 

 

참고

https://gooopy.tistory.com/68

https://heytech.tistory.com/386

https://m.blog.naver.com/qbxlvnf11/221449297033

https://velog.io/@uni1023/%EB%B0%B0%EC%B9%98-%EC%82%AC%EC%9D%B4%EC%A6%88batch-size-%EC%97%90%ED%8F%AC%ED%81%ACepoch-%EB%B0%98%EB%B3%B5iteration%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%8A%94

 

728x90
반응형