
253
7
장
파이썬으로 사용자 정의 ML 모델 학습시키기
일괄적으로 학습 루프에 보내고, 학습 데이터셋이
5
,
634
개의 데이터로 구성되었다고 가정해
보죠.
44
번의 배치(흔히
단계
step
라고 부르는 작업)가 끝나면 전체 데이터셋, 즉 한 에포크가 처
리됩니다. 그러면 다시 한번 전체 데이터셋을 학습하는 또 다른 에포크가 시작됩니다.
모델은 얼마나 오래 학습시켜야 할까요? 신뢰할 만한 좋은 법칙은 없습니다. 하지만 주의를 기
울이면 좋을 징후가 몇 가지 있습니다. 첫째, 한 에포크에서 다른 에포크로 넘어갔음에도 모델
이 더는 개선되지 않는다면, 이는 학습 과정이 수렴되었다는 신호로 볼 수 있습니다. 두 번째
징후는 평가 데이터셋에서의 모델 성능이 저하하기 시작하는 현상입니다. 이는 모델이 과대적
합되기 시작했다는 신호이며, 학습 데이터셋에서는 성능이 계속 향상되더라도 학습을 중단해
야 합니다.
fit
()
메서드에는
콜백
을 지정하는 파라미터도 선택적으로 입력할 수 있습니다. 콜백은 학습
단계의 다양한 지점에서 작업을 수행할 수 있는 기능입니다. 가령 에포크마다 모델의 체크포인
트를 저장하거나, 평가 데이터셋에서 모델 성능이 정체되거나 악화될 때 학습을 중지하는
조기
종료
등의 작업을 수행할 수 있습니다. 다음 코드로
keras
.
callbacks
.
EarlyStopping ...