시험공부빅데이터분석
← 보드Dataset과 DataLoader · 1/8

용어 정리 — sample, batch, epoch, step ★★★

용어가 네 개 나와요. 처음에는 헷갈리니까 문제집으로 비유해 볼게요.

비유 — 문제집 풀기

문제집 한 권이 데이터 전체예요. 문제 하나(문제와 정답 쌍)가 sample, 한 번에 풀고 채점하는 묶음(예 20문제)이 batch, 채점할 때마다 공부 방법을 한 번 고치는 것이 step, 문제집을 처음부터 끝까지 한 바퀴 푸는 것이 epoch이에요.

용어뜻예시
sample입력 하나(여러 특성으로 이뤄짐)와 정답 하나이미지 1장과 그 라벨, 또는 x = [0, 1]과 y = 5
Datasetsample을 번호(인덱스)로 꺼낼 수 있는 데이터 모음dataset[0]
batch한 번에 처리하는 sample 묶음이미지 64장 묶음이면 크기 (64, 1, 28, 28)
step배치 하나로 학습하고 업데이트하는 과정 한 번학습 5단계 (zero_grad → forward → loss → backward → step) 1회
epoch학습 데이터 전체를 한 번 순회하는 것모든 배치를 한 번씩 학습

교수님은 이렇게 설명했어요. 데이터가 1000개이고 배치 크기가 20이면 20개씩 step을 거치니까 50번 하면 한 epoch이 돼요. 4주차 예제는 데이터 5개를 전부 한 번에 넣었기 때문에 한 epoch이 한 step이었어요. 앞으로는 배치로 나누니까 한 epoch에 여러 step이 있어요. 이렇게 데이터를 나눠 학습하는 방식을 미니 배치(mini-batch) 학습이라고 해요.

왜 나눠서 넣을까요? 데이터 천 개를 한 번에 넣으면 계산이 너무 많고 컴퓨터 메모리도 많이 필요해요. 그래서 20개, 30개씩 잘라서 넣어요.

0123 4567 89 배치 1 (4개)배치 2 (4개)배치 3 (2개) sample 10개를 batch_size = 4로 나누면 4개 → 4개 → 2개 이 세 배치를 모두 쓰면 1 epoch, step은 3번
이렇게 고르세요 (풀이 요령)

용어 문제는 단위로 구분하세요. sample = 데이터 1개, batch = sample 묶음, step = 배치 1개로 1번 업데이트, epoch = 전체 데이터 1바퀴예요. "한 epoch의 step 수 = 배치 개수"예요. 예를 들어 sample 10개, batch_size 4이면 한 epoch에 step이 3번이에요.

잠깐 확인 — 데이터 1000개를 배치 크기 20으로 학습하면 한 epoch에 step은 몇 번일까요?

50번이에요. 1000 ÷ 20 = 50개의 배치를 하나씩 학습해요.

다음 카드 → Dataset — 입력과 정답을 한 쌍으로 묶은 명부 ★★

자료: 7주차 · Week05_Dataset_DataLoader_Train_Validation(part1) · 7주차 녹취(빅데이터07)