DeepLearning

[DeepLearning]Epoch,Batch의 의미

낑낑이 2025. 2. 5. 19:22

딥러닝을 돌리게되면 Epoch, Batch size등 용어들이 있다

근데 이게 뭔가 와닿지가 않았다. Epoch을 높게하면 mAP가 증가하는 그런 이점이 있는거같은데 Epoch가 뭐지.. Batch size는 또 뭐고..

Epoch과 Batch Size의 의미

  1. Epoch (에포크)
    • 데이터셋 전체를 한 번 신경망에 학습시키는 과정을 1 Epoch라고 합니다.
    • 예를 들어, 1개의 데이터셋이 1000개의 이미지로 구성되어 있고, 한 번의 Epoch에서 1000개의 모든 데이터를 학습하면 Epoch = 1입니다.
    • 일반적으로 여러 Epoch 동안 학습을 반복하며, Epoch가 많을수록 모델이 더 많은 데이터를 학습하지만, 너무 많으면 **과적합(Overfitting)**이 발생할 수 있습니다.
  2. Batch Size (배치 크기)
    • 한 번의 학습(즉, 1 Step)에서 신경망에 입력되는 데이터 샘플의 개수를 의미합니다.
    • 예를 들어, 데이터셋에 1000개의 이미지가 있고 Batch Size = 100이라면, 한 번의 학습에서 100개씩 학습하며, 한 Epoch을 완료하려면 10 Step(= 1000 / 100)이 필요합니다.
    • Batch Size의 설정에 따른 차이점
      • Batch Size가 크면 학습이 안정적이고 GPU 효율이 좋지만, 메모리 사용량이 증가합니다.
      • Batch Size가 작으면 메모리 사용량이 적지만, 학습이 불안정할 수 있습니다.
  3. Epoch, Batch Size, 그리고 Iteration 관계
    • Iteration(반복 횟수, Step) = 전체 데이터 크기 / Batch Size
    • 예를 들어, 데이터가 1000개이고 Batch Size가 100이라면, 1 Epoch을 완료하기 위해 10번의 Iteration이 필요합니다.

📌 예제
데이터 5000개, Batch Size = 50, Epoch = 10이면?

  • 한 번의 Epoch에서 5000 / 50 = 100 Iteration 발생
  • 총 10 Epoch이므로 전체 학습에서 1000 Iteration 수행

쉽게말하면 Epoch는 전체 Data Set을 한번 학습을 완료하는 상태이다

Yolo Series나 Training을 시킬때 Training을 위한 Data set이 있다. 이 모든 Data set을 학습시키기 위한 한번의 과정을 Epoch이라고한다

이렇게 1000개의 Data가 있다고 하면 이것을 model을 통해 한번 다 학습을 하는것을 Epoch이라고한다

 

이 Dataset을 한꺼번에 학습시킬수 없으니 batch size를통해 이를 나눠서 학습하게된다 만약 Batch size를 100이라고하면

이처럼 10번의 iteration을 거쳐 학습을 진행하게되는것이다