Epoch, Batch size, Step, Iteration

2023. 1. 17. 23:06·Programming/DL, Deep Learning

머신러닝/딥러닝 모델을 학습할 때

전체 데이터셋을 모델에 한번에 입력하기에는 크기가 너무 큼

→ 데이터를 여러 개의 작은 데이터 묶음(batch)으로 나눠서 모델에 입력

 

Epoch

Epoch : 전체 데이터에 대해서 순전파와 역전파가 끝난 상태;
One Epoch is when an ENTIRE dataset is passed forward and backward through the neural network only ONCE
  • 에포크가 50이면, 전체 데이터 단위로는 총 50번 학습함

 

Batch size

Batch size : 몇 개의 데이터 단위로 매개변수를 업데이트 하는지를 의미;
Total number of training examples present in a single batch
  • 배치 크기(batch size)와 배치의 수(the number of batches)는 다르다
  • 전체 데이터가 2,000일 때, 배치 크기가 200이라면, 배치의 수는 10
  • 이때 배치의 수가 스텝(step)이자, 이터레이션(iteration)

 

Step, Iteration

Step, Iteration : 한 번의 epoch를 끝내기 위해서 필요한 batch의 수;
The number of batches needed to complete one epoch
  • 전체 데이터가 2,000일 때, 배치 크기가 200이라면, 이터레이션 수는 10
  • 이는 한 번의 에포크 당 매개변수 업데이트가 10번 이루어진다는 의미

 

 

관계

$$ S \times B = N \times E $$

  • $S$ : step의 수
  • $B$ : batch size
  • $N$ : 전체 학습할 데이터의 총 개수
  • $E$ : epoch의 수

 

BERT 논문의 A.2 Pre-training Procedure를 보면

They are sampled such that the combined length is $\le 512$ tokens. ~ We train with batch size of 256 sequences (256 sequences * 512 tokens = 128,000 tokens/batch) for 1,000,000 steps, which is approximately 40 epochs over the 3.3 billion word corpus.

여기서 어떻게 40 epochs가 나왔을까?

  • 최대 입력의 길이는 512이고, batch size는 256이라면 논문에 나온 것처럼 batch당 token의 수는 128,000개
    → 위의 수식에서 $B$ = 128,000
  • step의 수 $S$ = 1,000,000
  • 전체 학습할 데이터의 총 개수 $N$ = 3,300,000,000

$$ 1000000 \times 128000 = 3300000000 \times E $$

$$ E = \frac{1000000 \times 128000}{3300000000} = 38.78 \approx 40  $$

 

 


출처:

https://wikidocs.net/36033

 

07-04 딥 러닝의 학습 방법

딥 러닝의 학습 방법의 이해를 위해 필요한 개념인 손실 함수, 옵티마이저, 에포크의 개념에 대해서 정리합니다. ## 1. 손실 함수(Loss function) ![](http…

wikidocs.net

 

https://towardsdatascience.com/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9

 

Epoch vs Batch Size vs Iterations

Know your code…

towardsdatascience.com

 

저작자표시 비영리 변경금지 (새창열림)

'Programming > DL, Deep Learning' 카테고리의 다른 글

PyTorch  (2) 2023.01.11
Logit, Sigmoid, Softmax  (0) 2022.05.14
Odds(오즈) and Logit(로짓)  (0) 2022.05.14
PyTorch Tutorial  (0) 2022.02.15
'Programming/DL, Deep Learning' 카테고리의 다른 글
  • PyTorch
  • Logit, Sigmoid, Softmax
  • Odds(오즈) and Logit(로짓)
  • PyTorch Tutorial
카이로셜
카이로셜
  • 카이로셜
    카이로스의 시간
    카이로셜
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • Linux
        • Git, Github
        • ML, Machine Learning
        • DL, Deep Learning
        • NLP
        • Computer Vision
        • Network
        • PyCharm
      • IT
        • Windows
        • Mac OS
        • Programs
        • 한글
        • Word
        • Excel
        • PowerPoint
      • Math & Statistics
      • English
      • Graduate School
      • etc.
      • Record
  • 블로그 메뉴

    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    맥북 단축키
    도커
    객체
    아나콘다
    윈도우11
    anaconda
    윈도우10
    docker
    클래스
    아나콘다 가상환경
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
카이로셜
Epoch, Batch size, Step, Iteration
상단으로

티스토리툴바