작성
·
133
0
epoch 횟수를 증가시키면 증가시킬수록 당연히 최적의
파라미터 벡터를 찾아낼 수 있을테지만 그에 따라 과적합의 문제도 발생할 수 있잖아요?
그래서 만일 오차율이 이전 epoch보다 더 커지는 시점이 오게 되면 학습을 중지시키는 것이구요, 이게 earlystopping일텐데 보통 이런 경우에서만 놓고보면 iter_epoch가 증가함에 따라 과적합 / 최적 파라미터를 찾는 과정?이 반비례의 양상을 띄게 되잖아요?
그런데 earlystopping의 요지는 어디까지나 경험적으로 이전의 오차값과의 비교를 통해 과적합이 될 것 같으면 학습을 중지시킨다는 것인데,
만일 N차원의 그래프에서는 이 '학습의 중지'가 단지 국소적인 부분일 수도 있는 가능성이 있잖아요?
다시 말해1
전체 양상의 일부만을 놓고봤을 때에는 일시적으로 오차율이 증가했을 수도 있는데, 이런 문제는 어떻게 처리를 하나요?
다시 말해2
인간은 전체 그래프를 볼 수 있어서 더욱 알맞는 파라미터 벡터를 찾아낼 수도 있을 가능성을 알고 있을 텐데도 불구하고, 모델은 early stopping에 의거하면 단지 일부만의 오차 증가일 뿐인데, 그 오차 증가를 캐치하는 바람에(지금까지의 학습 경험에 의거) 적절하지 못한 시점에서 학습을 중단하게 될 수도 있을텐데, 이 문제는 어떻게 처리할 수 있는지 궁금합니다.
답변 1
0
early stopping이 무조건 과적합을 개선하기 위함은 아닙니다.
early stopping은 학습 epoch수행시 마다 학습 데이터가 아닌 (보통은) 검증 데이터를 기반으로 이전 epoch대비 loss나 성능 metric이 얼마나 개선되고 있는지, 오히려 악화되고 있는지를 확인하면서 더 이상 학습을 진행하지 않고 종료하는 방식입니다. 이런 방식을 통해 자연스럽게 과적합을 개선할 수 있는 기능을 하게 됩니다.
즉 학습데이터로 계속해서 loss/metric이 좋아지지만, 검증 데이터에서는 오히려 악화되는 학습 epoch진행이 계속된다면 이를 중지하면서 더 이상 과적합을 개선 할 수있는 역할을 수행할 수 있습니다.
다만 early stopping을 적용하더라도 검증 데이터에서 지속적으로 성능이 좋아지는 부분이 국소 구간에 해당 될 수는 있지만, 보통은 early stopping을 검증 데이터에 적용하므로 상대적으로 이럴 가능성이 줄어들게 됩니다.
감사합니다.