저는 참고 자료에 적힌 책을 바탕으로 개념을 정리하고 있습니다. 해당 파트는 5-5에 해당됩니다.
📚 딥러닝 교과서, 출판사: 이지스 퍼블리싱
조기 종료(early stopping)는 모델이 과적합되기 전 훈련을 멈추는 정규화 기법입니다.
훈련 성능과 테스트/검증 성능을 비교해보면 모델이 과적합 되고 있습니다.
조기 종료는 과적합이 일어나기 전 훈련을 멈추는 정규화 기법입니다.
훈련 중 주기적으로 성능 검증을 하다가 성능이 더 좋아지지 않으면 과적합이라 판단하고 훈련을 멈춥니다.
epoch을 단위로 성능 검증을 하며 epoch보다 자주 검증해야 할 때는 배치 실행 단위로 검증하기도 합니다.
epoch는 전체 훈련 데이터를 한 번 사용해서 훈련하는 주기를 뜻합니다. 전체 훈련 데이터를 한 번 사용하면 1 epoch라고 하고, 훈련할 때는 보통 여러 에폭에 걸쳐서 훈련합니다.
조기 종료를 하는 기준도 중요합니다.
모델의 성능이 바로 향상하지 않는다고 종료해버리면 학습이 제대로 되지 않을 수 있습니다.
신경망을 학습할 때 단계마다 미니배치로 근사한 그레디언트는 실제 그레디언트와 차이가 있으므로 성능이 왔다갔다 할 수 있습니다.
따라서 일시적 변동이 아닌 지속적인 정체 또는 하락에 의한 판단에 종료하는 것이 좋습니다.
보통은 일정 횟수 동안 성능이 연속적으로 안 좋아지는지 모니터링을 하고
문제의 특성에 따라 훈련이 민감하게 반응하여 종료되지 않도록 모니터링 횟수를 크게 정해준다고 합니다.
어떤 성능을 기준으로 종료를 할 것인지도 중요한데, 보통은 모델 오차를 기준으로 조기 종료를 하지만 정확도나 다른 성능 측도를 사용할 수 있습니다.
test 시점에서는 훈련이 종료된 마지막 상태의 모델을 사용하게 됩니다.
조기 종료는 파라미터 공간을 작게 만듭니다.
초기 파라미터 위치가 이고, 최적화 스텝 수가 , 학습률이 라면 파라미터 공간은 를 중심으로 크기의 반경을 갖는 공간으로 제약됩니다.
조기 종료로 파라미터 공간 크기가 제약되면 정규화와 동일한 효과를 가집니다.
조기 종료가 정규화의 효과를 보는 이유는
조기 종료를 할 때 원점 근처에서 출발해 최적해가 있는 방향으로 진행하다가 도중에 멈춥니다.
조기 종료 위치는 오른쪽 그림과 같이 정규화를 했을 때 손실 함수와 정규화 항이 만나는 지점과 비슷한 위치입니다.
손실 함수가 2차 함수로 정의되는 선형 모델의 경우 조기 종료와 정규화는 동일하다는 것이 증명되었습니다.
조기 종료는 모델이 과적합 되기 전 훈련을 멈추는 정규화 기법입니다. 훈련하는 동안 주기적으로 성능 검증을 하다가 성능이 더 좋아지지 않음녀 과적합이라 판단하고 훈련을 종료합니다.
조기 종료는 파라미터 공간을 작게 만들기 때문에 정규화와 동일한 효과를 가집니다.