Hey Tech

[딥러닝] Epoch, Iteration, Batch size 개념 본문

AI & 빅데이터/머신러닝·딥러닝

[딥러닝] Epoch, Iteration, Batch size 개념

Tony Park (토니) 2022. 5. 21. 12:17
728x90
반응형

📚 목차

1. Batch Size
2. Iteration
3. Epoch

1. Batch Size

Batch 크기는 모델 학습 중 parameter를 업데이트할 때 사용할 데이터 개수를 의미합니다. 사람이 문제 풀이를 통해 학습해 나가는 과정을 예로 들어보겠습니다. Batch 크기는 몇 개의 문제를 한 번에 쭉 풀고 채점할지를 결정하는 것과 같습니다. 예를 들어, 총 100개의 문제가 있을 때, 20개씩 풀고 채점한다면 Batch 크기는 20입니다. 사람은 문제를 풀고 채점을 하면서 문제를 틀린 이유나 맞춘 원리를 학습하죠. 딥러닝 모델 역시 마찬가지입니다. Batch 크기만큼 데이터를 활용해 모델이 예측한 값과 실제 정답 간의 오차(conf. 손실함수)를 계산하여 Optimizer가 parameter를 업데이트합니다. 아래의 그림 1처럼, 전체 데이터가 3,000개이고 Batch 크기가 300이라면, 데이터를 300개씩 활용하여 모델을 점차 학습시켜 나갑니다.

그림 1. Batch 크기

2. Iteration

Iteration는 전체 데이터에 대해 총 Batch의 수를 의미하며, '이터레이션'이라고 읽고 Step이라고 부르기도 합니다. 앞서 Batch 크기가 전체 데이터셋을 몇 개의 데이터 묶음으로 한 번씩 파라미터를 업데이트할지 결정한다고 했습니다. 아래의 그림 2와 같이, Batch 크기가 300이고 전체 데이터 개수가 3,000이라면 전체 데이터셋을 학습시키기 위해서는 총 10개의 Batch가 필요합니다. 10번에 걸쳐 파라미터를 업데이트해야 되니까 말이죠. 즉, Iteration의 수는 10입니다. 여기서 주의할 점은 Batch 크기가와 개수는 다른 개념이라는 것입니다.

그림 2. Iteration

3. Epoch

Epoch는 '에포크'라고 읽고 전체 데이터셋을 학습한 횟수를 의미합니다.

 

사람이 문제집으로 공부하는 상황을 다시 예로 들어보겠습니다. Epoch는 문제집에 있는 모든 문제를 처음부터 끝까지 풀고, 채점까지 마친 횟수를 의미합니다. 문제집 한 권 전체를 1번 푼 사람도 있고, 3번, 5번, 심지어 10번 푼 사람도 있습니다. Epoch는 이처럼 문제집 한 권을 몇 회 풀었는지를 의미합니다. 아래의 그림 3처럼, 전체 데이터셋을 1회 활용하여 모델을 학습했다면 Epoch는 1입니다.

그림 3. Epoch가 1인 경우

반면, 아래의 그림 4처럼, 전체 데이터셋 3회 활용하여 모델을 학습했다면 Epoch는 3입니다.

그림 4. Epoch가 3인 경우


포스팅 내용에 오류가 있거나 보완할 점이 있다면 아래에 댓글 남겨주세요!
그럼 오늘도 멋진 하루 만드시길 바랍니다 :)
고맙습니다.

728x90
반응형