조기 종료(Early Stopping)

•
2026년 11월 01일 발행•2026년 11월 01일 수정
요약

검증 성능이 더 이상 개선되지 않을 때 학습을 멈춰 과대적합을 막는 정칙화 기법

초급
신경망 또는 부스팅 모델의 반복 학습 과정과 과대적합 개념에 대한 이해가 필요하며, 학습·검증 곡선을 해석할 수 있어야 한다.

#개념

조기 종료(Early Stopping)는 학습 중 검증 세트(Validation Set)의 성능을 주기적으로 측정하다가 성능이 더 이상 개선되지 않으면 학습을 멈추는 정칙화 기법이다. 학습을 계속하면 훈련 손실은 줄어들지만 검증 손실은 어느 시점부터 다시 증가하는 경우가 많으며, 조기 종료는 이 전환점 부근의 모델을 최종 결과로 선택한다.
반복 최적화로 학습하는 모델은 초기에는 데이터의 일반적인 패턴을 학습하다가 학습이 길어질수록 훈련 데이터의 잡음까지 외우는 과대적합(Overfitting)에 빠진다. 이 때문에 학습 시간에 따른 검증 오차는 흔히 U자 형태의 곡선을 그린다. Goodfellow 등은 조기 종료를 학습 절차·목적 함수·허용 파라미터 범위를 거의 바꾸지 않는 비침습적인(unobtrusive) 정칙화라고 설명한다.
기본 절차는 단순하다. 매 에폭 또는 일정 스텝마다 검증 지표를 계산하여 지금까지의 최고 값과 비교하고, 개선되었으면 그 시점의 가중치를 저장한다. 개선되지 않은 횟수가 정해진 한도를 넘으면 학습을 종료한다. 이때 학습 스텝 수 자체가 하이퍼파라미터가 되며, 한 번의 학습으로 여러 스텝 수 후보를 동시에 평가하는 셈이다. 조기 종료의 동작은 다음과 같은 설정값으로 조절한다.
조기 종료의 주요 설정값
  • 감시 지표(monitor): 중단 여부를 판단하는 지표이다. 보통 검증 손실을 쓰며, 정확도·AUC처럼 클수록 좋은 지표는 최대화 방향(mode)을 지정한다.
  • 인내 횟수(patience): 개선이 없어도 학습을 계속하는 최대 평가 횟수이다. 값이 작으면 일시적인 정체에도 멈추고, 크면 불필요한 학습이 늘어난다.
  • 최소 개선폭(min_delta): 개선으로 인정하는 최소 변화량이다. 이보다 작은 변화는 개선이 없는 것으로 간주하여 미세한 진동으로 학습이 연장되는 것을 막는다.
  • 최적 가중치 복원(restore best weights): 종료 시 마지막 가중치 대신 감시 지표가 가장 좋았던 시점의 가중치로 되돌리는 옵션이다. 인내 횟수만큼 더 학습된 가중치는 이미 과대적합이 진행되었을 수 있으므로 대개 복원하는 것이 바람직하다.
  • 기준선(baseline)과 워밍업: 목표 성능 기준이나 감시를 시작할 에폭을 지정하는 설정이다. 학습 초반의 불안정한 구간에서 성급하게 멈추지 않도록 한다.
조기 종료는 L2 정칙화(L2 Regularization)와 밀접한 관계가 있다. Bishop(1995) 등은 조기 종료가 최적화 경로를 초기 파라미터 근처의 좁은 영역으로 제한하는 효과가 있다고 논의했다. Goodfellow 등의 『Deep Learning』 7.8절은 손실 함수를 이차식으로 근사하고 학습률 $\epsilon$으로 $\tau$ 스텝 학습하는 경우를 분석하여, 조기 종료가 가중치 감쇠 계수 $\alpha$인 L2 정칙화와 근사적으로 동등함을 보인다.
이 분석에서 두 기법은 $\tau \approx \frac{1}{\epsilon \alpha}$의 관계를 가진다. 즉 학습 스텝 수가 많을수록 약한 정칙화에 해당하고, 일찍 멈출수록 강한 정칙화에 해당한다. 또한 곡률이 큰 방향의 파라미터는 일찍 학습되고 곡률이 작은 방향의 파라미터는 덜 학습된다. 가중치 감쇠는 계수마다 여러 번 학습해야 하지만, 조기 종료는 한 번의 학습으로 적절한 정칙화 정도를 자동으로 정한다는 장점이 있다.
조기 종료는 훈련 데이터의 일부를 검증 세트로 떼어 놓아야 한다는 비용이 있다. 데이터가 적으면 이 손실이 크므로, 조기 종료로 최적 학습 시점을 찾은 뒤 전체 데이터를 다시 활용하는 전략이 쓰인다. 특히 시계열처럼 순서가 중요한 데이터에서는 검증 세트를 학습 구간 이후 시점으로 잡아야 미래 정보가 섞이지 않는다. 대표적인 재학습 전략은 다음과 같다.
검증 세트를 활용한 재학습 전략
  • 스텝 수 고정 재학습: 조기 종료로 찾은 최적 스텝 수 $i^$를 기록하고, 모델을 다시 초기화한 뒤 전체 데이터로 $i^$ 스텝만큼 학습한다. 데이터가 늘면 에폭당 갱신 횟수도 달라지므로 스텝 기준인지 에폭 기준인지 정해야 한다.
  • 이어서 학습: 첫 학습의 파라미터를 유지한 채 전체 데이터로 학습을 이어 가고, 검증 손실이 조기 종료 시점의 훈련 목적 함수 값 아래로 내려가면 멈춘다. 처음부터 다시 학습하는 비용은 없지만 목표 값에 도달하지 못해 종료되지 않을 수 있다.
  • 교차 검증 결합: K-겹 교차 검증(Cross Validation)의 각 폴드에서 최적 반복 수를 구하고 그 평균 등을 최종 학습의 반복 수로 사용한다. 부스팅 모델에서 자주 쓰이는 방식이다.
이중 하강(Double Descent) 현상은 조기 종료의 전제를 다시 생각하게 한다. Nakkiran 등(2019)은 모델 크기뿐 아니라 학습 에폭 수에 따라서도 테스트 오차가 감소했다가 증가한 뒤 다시 감소하는 에폭 단위 이중 하강을 관찰했다. 이런 경우 검증 오차가 처음 증가하는 구간에서 짧은 인내 횟수로 학습을 멈추면 두 번째 하강 이후의 더 좋은 모델을 놓칠 수 있다.
따라서 대형 신경망에서는 검증 곡선을 충분히 길게 관찰하거나, 인내 횟수를 넉넉히 두고 체크포인트를 저장해 두었다가 사후에 최적 시점을 고르는 방식도 쓰인다. 반대로 이중 하강이 뚜렷하지 않은 일반적인 설정에서는 전통적인 조기 종료가 여전히 효과적인 기본 선택이다. 어떤 경우든 전체 학습 곡선을 기록해 두는 것이 판단의 근거가 된다.
조기 종료는 신경망뿐 아니라 그래디언트 부스팅(Gradient Boosting) 모델에서도 표준적으로 쓰인다. 부스팅은 트리를 하나씩 추가하며 오차를 줄이므로 부스팅 라운드가 늘수록 과대적합 위험이 커진다. XGBoost는 early_stopping_rounds 인자로, LightGBM은 early_stopping 콜백의 stopping_rounds로 검증 지표가 정해진 라운드 동안 개선되지 않으면 학습을 멈추고 최적 반복 번호를 best_iteration에 기록한다.
라이브러리마다 세부 동작이 달라 주의가 필요하다. XGBoost의 xgboost.train은 최적 반복이 아니라 마지막 반복의 모델을 반환하므로, 예측 시 best_iteration으로 사용할 트리 범위를 지정해야 한다. 또한 여러 검증 세트를 넘기면 마지막 세트를, 여러 지표를 지정하면 마지막 지표를 기준으로 판단한다. LightGBM은 기본적으로 모든 지표를 확인하며 first_metric_only로 첫 지표만 쓰게 할 수 있고, DART 부스팅에서는 조기 종료가 동작하지 않는다.
하이퍼파라미터 튜닝(Hyperparameter Tuning)에서도 조기 종료 개념이 핵심 역할을 한다. 성능이 나쁜 후보 설정의 학습을 일찍 중단하고 유망한 후보에 자원을 몰아주면 같은 계산 예산으로 훨씬 많은 설정을 시험할 수 있다. Li 등(2020)의 ASHA(Asynchronous Successive Halving Algorithm)는 연속 반감(Successive Halving)을 비동기로 확장한 방법으로, 각 단계에서 상위 일부 후보만 다음 자원 단계로 승격하고 나머지는 조기 종료한다. 작업자가 다른 작업의 완료를 기다리지 않으므로 대규모 병렬 환경에 적합하다.
주요 딥러닝 프레임워크는 조기 종료를 학습 루프에 끼워 넣는 콜백 형태로 제공한다. 사용자는 감시 지표와 인내 횟수만 지정하면 되고, 지표 기록과 중단 처리는 프레임워크가 맡는다. 다만 기본값과 횟수를 세는 단위가 프레임워크마다 다르므로 문서를 확인해야 한다. 프레임워크별 구현은 다음과 같다.
프레임워크별 조기 종료 구현
  • Keras: keras.callbacks.EarlyStopping 콜백은 monitor 기본값이 val_loss이며 patience·min_delta·mode·baseline·restore_best_weights·start_from_epoch 인자를 제공한다. restore_best_weights의 기본값은 False이므로 최적 가중치를 쓰려면 명시적으로 켜야 한다.
  • PyTorch Lightning: EarlyStopping 콜백을 Trainer에 등록하며, patience는 에폭이 아니라 검증 수행 횟수를 기준으로 센다. stopping_threshold·divergence_threshold·check_finite로 목표 도달, 발산, NaN 발생 시 즉시 종료할 수 있고, 최적 가중치는 보통 ModelCheckpoint 콜백으로 저장해 불러온다.
  • XGBoost·LightGBM: 학습 함수 인자나 콜백으로 조기 종료 라운드를 지정한다. 검증 세트와 평가 지표가 최소 하나 있어야 동작한다.
조기 종료는 구현이 단순하지만 잘못 쓰면 오히려 성능을 해치거나 평가를 왜곡할 수 있다. 종료 시점이 검증 데이터로 결정되므로, 검증 데이터가 운영 환경의 분포를 대표하지 못하면 최적 시점 판단도 함께 틀어진다. 실무에서 자주 문제가 되는 지점과 대응 방법은 다음과 같다.
조기 종료 사용 시 주의점
  • 잡음이 큰 지표: 검증 세트가 작거나 지표 자체의 변동이 크면 우연한 정체에 학습이 멈춘다. 검증 세트를 키우거나 이동 평균을 감시하고 인내 횟수와 최소 개선폭을 함께 조정한다.
  • 검증 세트 과대적합: 같은 검증 세트로 종료 시점과 하이퍼파라미터를 반복해서 고르면 검증 성능이 낙관적으로 편향된다. 최종 성능은 학습 과정에 쓰이지 않은 별도의 테스트 세트로 보고해야 한다.
  • 학습률 스케줄과의 상호작용: 워밍업이나 학습률 감쇠 구간에서는 검증 지표가 일시적으로 정체하거나 나빠질 수 있다. 감시 시작 시점을 늦추거나 스케줄 주기를 고려해 인내 횟수를 정한다.
  • 지표 불일치: 손실이 개선되지 않아도 정확도나 비즈니스 지표는 개선될 수 있다. 실제 목표와 가장 가까운 지표를 감시 대상으로 삼는다.
정리하면 조기 종료는 추가 계산 비용이 거의 없이 과대적합을 줄이고 학습 시간을 절약하는 실용적인 기법이다. 드롭아웃·가중치 감쇠·데이터 증강 같은 다른 정칙화와 함께 쓰이는 경우가 많으며, 정기 재학습 파이프라인에서는 학습 비용 상한을 지키는 안전장치 역할도 한다. 종료 시점과 최적 시점, 전체 검증 곡선을 함께 기록해 두면 이후 재학습과 모델 비교가 쉬워진다.

#관련 용어

과대적합
모델이 훈련 데이터의 잡음까지 학습하여 새로운 데이터에 대한 성능이 떨어지는 현상
정칙화
모델의 복잡도를 제한하여 일반화 성능을 높이는 기법의 총칭
교차 검증
데이터를 여러 폴드로 나누어 학습과 검증을 반복하며 성능을 추정하는 방법
인내 횟수
검증 지표가 개선되지 않아도 학습을 계속하는 최대 평가 횟수
이중 하강
모델 크기나 학습 에폭이 늘 때 테스트 오차가 감소, 증가, 재감소하는 현상
하이퍼파라미터 튜닝
모델 성능이 가장 좋은 하이퍼파라미터 조합을 탐색하는 과정

#직무 연관도

DA
Data Analyst
낮음
부스팅 모델 등 예측 모델을 만들 때 적정 반복 수를 정하는 데 활용
DS
Data Scientist
밀접
모델 학습 시 과대적합을 제어하고 최적 학습 시점과 재학습 전략을 설계
DE
Data Engineer
높음
학습 파이프라인에 조기 종료 콜백과 체크포인트를 구성하여 학습 비용과 모델 품질을 관리

#사용 사례

전자상거래금융의료인터넷 서비스제조
개요
조기 종료는 신경망과 그래디언트 부스팅 모델을 학습하는 거의 모든 산업 분야에서 기본 설정으로 사용된다. 금융의 신용 위험 모델, 의료 영상 분류 모델, 전자상거래 추천·랭킹 모델처럼 정기적으로 재학습하는 모델에서 과대적합을 막고 학습 시간을 줄이는 데 활용되며, 대규모 하이퍼파라미터 탐색에서는 성능이 낮은 후보를 일찍 중단해 계산 자원을 절약한다.
사례
전자상거래 추천 모델을 매일 재학습할 때 검증 NDCG가 3회 연속 개선되지 않으면 학습을 멈추고, 지표가 가장 좋았던 시점의 체크포인트를 배포 후보로 등록한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.