[딥러닝] 딥러닝 모델의 학습
딥러닝 모델에서 데이터를 학습하는 과정은 크게 순전파(Forward pass), 역전파(Backward pass), 그리고 파라미터 업데이트(Parameter Update)로 이루어진다.
- 순전파 (Forward pass): 입력 데이터에서 출발해 계산 그래프를 따라 각 노드의 출력을 차례대로 계산하며, 최종적으로 모델의 예측값과 실제 정답을 비교하여 손실 함수 값 $\mathcal{L}$을 얻는다.
- 역전파 (Backward pass): 출력에서 입력 방향으로 그래프를 거슬러 올라가면서 연쇄 법칙(Chain Rule)을 이용해, 각 파라미터에 대한 손실의 기울기 $\nabla_{\boldsymbol{\theta}}\mathcal{L}$를 계산한다.
- 파라미터 업데이트 (Parameter Update): 계산된 그래디언트를 바탕으로 옵티마이저를 사용하여 손실을 줄이는 방향으로 파라미터 $\boldsymbol{\theta}$를 업데이트한다.
이러한 순전파 → 역전파 → 파라미터 업데이트의 1회 사이클을 묶어서 스텝(Step) 또는 이터레이션(Iteration)이라고 한다.
또한 모델이 준비된 전체 학습 데이터셋을 모두 한 번씩 다 학습에 사용했을 때를 1 Epoch이라고 한다.
학습 데이터셋 크기가 $N$, 배치 크기가 $B$일 때, 1번의 epoch을 완료하기 위해 실행되는 step 수는 다음과 같이 계산된다.
\[\text{step}=\frac{N}{B} \tag{1}\]예를 들어 학습 데이터셋에 데이터가 1000개 있고 배치 크기를 25로 설정했다면, 1번의 epoch에는 총 40번의 step이 이루어진다.
배치 크기와 학습 시간의 관계
모델의 크기가 커서 배치 크기를 줄여야 한다면, 일반적으로 2가지의 이유로 학습 시간이 증가하게 된다.
GPU 자원 낭비
GPU는 수천 개의 코어를 활용해 데이터를 병렬로 처리하는 데 최적화되어 있다.
하지만 배치 크기가 너무 작으면, 대부분의 GPU의 코어들은 아무 일도 하지 않고 쉬게 된다.또한 GPU는 연산 속도에 비해 VRAM에서 데이터를 읽어오는 속도가 상대적으로 느리다.
따라서 배치 크기가 작으면, 연산은 순식간에 끝나고 다음 데이터를 메모리에서 가져오기를 기다리는 대기 시간이 길어진다.Iteration 수 증가
배치 크기가 작아지면 iteration 수는 늘어난다.
그에 따라 무거운순전파 → 역전파 → 파라미터 업데이트과정을 더 많이 수행해야 하기 때문에 학습 시간이 증가하게 된다.
배치 크기를 키우면 1회의 iteration 시간은 조금 늘어나지만, 1 epoch를 끝내기 위해 필요한 전체 iteration 횟수가 훨씬 더 크게 줄어들기 때문에 결과적으로 전체 학습 속도는 매우 빨라진다.

