조기종료 (Early Stopping)

컴퓨터과학·AI
한 줄 정의: 검증 데이터 성능이 더 이상 좋아지지 않는 시점에 모델 학습을 멈추는 기법입니다.

쉽게 풀면

시험공부를 하는 학생을 떠올려봅시다. 처음에는 공부할수록 실력(이해도)이 쭉쭉 오르지만, 어느 순간부터는 교과서를 통째로 외우는 데만 몰두해서 정작 새로운 문제에는 오히려 약해지는 경우가 있습니다. 신경망 학습도 비슷합니다. 학습을 계속할수록 훈련 데이터 성적은 계속 좋아지지만, 한 번도 보지 않은 검증 데이터에 대한 성적은 어느 시점부터 오히려 나빠지기 시작합니다. 조기종료는 바로 이 "검증 성적이 나빠지기 시작하는 지점"을 감시하다가, 그 시점에서 학습을 멈춰버리는 방법입니다.

왜 중요한가

대형 신경망은 표현력이 매우 커서 충분한 시간 동안 학습시키면 훈련 데이터를 거의 암기하듯 맞출 수 있는데, 이는 새로운 데이터에 대한 일반화 성능을 해칩니다. 조기종료는 별도의 구조 변경이나 추가 계산 없이 학습 시점만 조절해 과적합을 억제할 수 있어, 이미지 분류부터 자연어처리, 강화학습에 이르기까지 거의 모든 딥러닝 논문의 실험 설정(training setup) 절에서 표준적으로 언급되는 기법입니다.

논문에서는 이렇게 쓰입니다

"검증 손실이 10 에폭 연속으로 개선되지 않을 경우 조기종료를 적용하여 과적합을 방지하였다."

이 문장은 "모델이 검증 데이터에서 10번 연속 나아지지 않으면 학습을 자동으로 중단해, 훈련 데이터에만 지나치게 맞춰지는 것을 막았다"는 뜻입니다.

"사전학습된 언어모델을 downstream 태스크에 미세조정할 때, 검증 세트의 F1 점수를 기준으로 조기종료를 적용하여 최적의 체크포인트를 선택하였다."

자연어처리 분야에서는 손실뿐 아니라 태스크에 맞는 평가지표(F1, 정확도 등)를 기준으로 조기종료 시점을 정하는 경우가 많다.

"강화학습 에이전트의 평균 보상이 일정 구간 동안 향상되지 않을 때 학습을 조기종료하여 불필요한 연산 자원 소모를 줄였다."

강화학습 연구에서는 과적합 방지뿐 아니라 학습이 정체된 상태에서 자원을 아끼려는 목적으로도 조기종료가 사용된다.

조금 더 깊게 보면

조기종료를 실제로 적용할 때는 몇 번의 연속된 에폭 동안 개선이 없어도 기다려줄지를 정하는 인내심(patience) 값과, 개선으로 인정할 최소 변화폭(min delta)을 함께 설정하는 경우가 많습니다. 또한 검증 성능이 가장 좋았던 시점의 모델 가중치를 별도로 저장해두었다가, 학습이 끝난 뒤 그 체크포인트로 되돌리는 방식이 흔히 함께 쓰입니다. 이론적으로도 조기종료는 모델 파라미터가 지나치게 커지는 것을 억제한다는 점에서 가중치 감쇠와 같은 다른 정규화 기법들과 유사한 효과를 낸다고 설명되기도 합니다.

주의할 점

조기종료는 학습을 너무 일찍 멈추면 모델이 아직 충분히 배우지 못한 상태(과소적합)로 끝날 수 있고, 너무 늦게 멈추면 과적합을 막지 못합니다. 그래서 "몇 번 연속 개선이 없으면 멈출지"를 정하는 인내심(patience) 값을 적절히 설정하는 것이 중요합니다.

관련 용어