epoch과 step

KKH_94·2023년 10월 19일

딥 러닝에서 "에포크"와 "스텝"은 훈련 과정의 서로 다른 측면을 나타내는 관련된 개념입니다.

에포크

에포크는 신경망 훈련 중 전체 훈련 데이터 집합을 완전히 한 번 통과하는 것을 나타냅니다.
모델이 전체 데이터 집합을 보고 학습하는 횟수를 나타내는 것이며,
각 에포크에서는 모델의 매개변수(가중치와 편향)가 전체 데이터 집합에서 계산된 기울기를 기반으로 업데이트됩니다.

여러 에포크 동안 훈련하는 것은 모델이 매개변수를 개선하고 성능을 향상시킬 수 있도록 합니다.


스텝 (또는 배치)

스텝 또는 배치는 최적화 알고리즘의 단일 반복에서 사용되는 훈련 데이터의 작은 하위 집합입니다.
딥 러닝에서 일반적으로 훈련 데이터 집합을 더 작은 배치 또는 미니 배치로 나누어 훈련 과정을 가속화하는 것이 일반적입니다.
각각의 데이터 포인트를 처리한 후(확률적 경사 하강법), 일괄 데이터 포인트 처리 후에 모델의 매개변수가 업데이트됩니다.

스텝 크기 또는 배치 크기는 일반적으로 전체 데이터 집합 크기보다 훨씬 작으며, 사용 가능한 메모리와 구체적인 훈련 요구 사항에 따라 다를 수 있습니다.


차이를 설명하는 실제적인 예를 들어보겠습니다.

1000개의 이미지로 이루어진 데이터 집합이 있고, 해당 이미지에서 물체를 인식하기 위해 신경망을 훈련 중이라고 가정합시다.

배치 크기를 100으로 선택하고 10번의 에포크를 훈련한다면 각 에포크는 10개의 스텝(각각 100개의 이미지)을 포함합니다.

각 스텝 이후에 모델의 매개변수가 그 배치의 이미지에서 계산된 기울기를 기반으로 업데이트됩니다. 10개의 이러한 스텝(또는 배치) 후에 한 에포크가 완료되며, 지정된 에포크 수만큼 반복됩니다.

요약하면, 에포크는 전체 훈련 데이터 집합을 완전히 통과하는 것을 나타내며, 스텝(또는 배치)은 각 반복에서 모델의 매개변수를 업데이트하기 위해 사용되는 데이터의 작은 하위 집합을 나타냅니다.

배치 처리는 훈련을 효율적으로 만들고 현대 하드웨어의 병렬 처리 장점을 활용하기 위해 사용됩니다.

profile
_serendipity

0개의 댓글