📢 이미지 데이터(픽셀, Flatten)에 대한 내용과 batch, epoch, iter 에 대한 개념을 설명합니다.
이미지 데이터
픽셀
![16 * 16]()
16 * 16
- 이미지를 구성하는 최소 단위
- 네모 하나 = 픽셀 하나!
- 픽셀이 작을수록 정교하게 작업
- 이미지 데이터는 numpy array 형태로 저장(숫자 형태)
- R/G/B : 각각 0~255까지의 값을 가짐
- 255 0 0 → red
- 255 0 255 → violet
Flatten
![image.png]()
- 선형모델은 1차원 데이터를 input 으로 받음
- 반면, 이미지는 2차원 데이터
- 따라서, 2차워 데이터(28*28)를 1차원으로 만들어주는 것이 필요 -> Flatten!
학습
batch size
![GD: 모든 데이터 사용 / SGD: batch 하나 사용]()
GD: 모든 데이터 사용 / SGD: batch 하나 사용
- 일반적으로 PC 메모리의 한계 및 속도 저하 때문에 대부분의 경우에는 한 번의 epoch 에 모든 데이터를 한 꺼번에 집어넣기가 힘듦
- 정의: 한 번에 모델에 넣는 데이터 개수!
- default = 32 → 일반적으로 32, 64 많이 사용함
- batch size
- 줄이면
- (조금씩 돌리니까)
- 메모리 소모가 적으나, 학습 속도가 느림
- 정확도는 높음
- 늘리면
- (많이씩 돌리니까)
- 메모리 소모가 크지만, 학습 속도가 빠름
- 정확도는 낮음
iter, epoch
🔹 Batch (배치)
- 전체 데이터 중에서 한 번에 학습에 사용하는 데이터 묶음
예: batch size = 100 → 데이터 100개씩 묶음
🔹 Batch Size (배치 크기)
- 한 배치에 포함되는 데이터 개수
- 예: batch size = 32 → 한 번 학습에 32개 사용
🔹 Iteration (이터레이션)
-
배치 1개를 사용해 한 번 파라미터를 업데이트하는 과정
-
즉, batch 1개 = iteration 1회
-
공식
iterations per epoch = 전체 데이터 수 / batch size
-
예:
전체 데이터 1,000개
batch size = 100개
→ 1 epoch = 10 iteration
🔹 Epoch (에폭)
- 전체 학습 데이터를 한 번 모두 학습하는 것
- 즉, 전체 데이터 1바퀴 도는 것
- 예:
1 epoch
→ 1,000개 데이터를 모두 한 번 학습
→ 그 과정에서 iteration 여러 번 발생