조기에 훈련 작업 중지 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

조기에 훈련 작업 중지

목표 지표로 측정한 결과를 봤을 때 훈련 작업이 크게 개선되지 않는 경우 하이퍼파라미터 튜닝 작업이 시작한 훈련 작업을 조기에 중지합니다. 훈련 작업을 조기에 중지하면 컴퓨팅 시간을 줄이고 모델 과적합(overfitting)을 피할 수 있습니다. 훈련 작업을 조기에 중지하도록 하이퍼파라미터 튜닝 작업을 구성하려면 다음 중 하나를 수행하세요.

  • AWS SDKfor Python (Boto3) 을 사용하는 경우 조정 작업을 구성하는 데 사용하는 HyperParameterTuningJobConfig객체의 TrainingJobEarlyStoppingType 필드를 설정하십시오. AUTO

  • Amazon SageMaker SDK Python을 사용하는 경우 HyperParameterTuner객체의 early_stopping_type 파라미터를 로 설정하십시오Auto.

  • Amazon SageMaker 콘솔의 하이퍼파라미터 조정 작업 생성 워크플로의 조기 중지에서 자동을 선택합니다.

조기 중지를 사용하는 방법을 보여주는 샘플 노트북을 보려면 https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter_tuning/image_classification_early_stopping/hpo_image_classification_early_stopping.ipynb를 참조하거나 hpo_image_classification_early_stopping.ipynb 노트북 인스턴스의 SageMaker 예제의 하이퍼파라미터 조정 섹션에서 노트북을 여십시오. 노트북 인스턴스의 샘플 노트북 사용에 대한 자세한 정보는 예제 노트북 단원을 참조하세요.

조기 중지의 작동 원리

하이퍼파라미터 조정 작업에 대해 조기 중지를 활성화하면 각 교육 작업을 SageMaker 평가하여 다음과 같이 하이퍼파라미터 조정 작업이 시작됩니다.

  • 훈련의 각 epoch 후 목표 지표의 값을 가져옵니다.

  • 모든 이전 훈련 작업에 대한 목표 지표의 이동 평균을 동일한 epoch까지 계산한 다음 이동 평균 전체의 중간값을 계산합니다.

  • 현재 훈련 작업에 대한 목표 지표의 값이 같은 시대까지 이전 훈련 작업에 대한 목표 지표의 실행 평균 중앙값보다 나쁠 경우 (목표 지표를 최대화할 때는 더 높거나, 목표 지표를 최대화할 때는 더 낮음) 현재 훈련 작업이 중지됩니다. SageMaker

조기 중지를 지원하는 알고리즘

조기 중지를 지원하려면 알고리즘에서 각 epoch에 대한 목표 지표를 내보내야 합니다. 다음과 같은 내장 SageMaker 알고리즘이 조기 중지를 지원합니다.

참고

조기 중지를 지원하는 기본 제공 알고리즘 목록은 2018년 12월 13일을 기준으로 최신 목록입니다. 다른 기본 제공 알고리즘은 앞으로 조기 중지를 지원할 수 있습니다. 알고리즘에서 하이퍼파라미터 튜닝 작업에 대한 목표 지표(검증 지표 권장)로 사용할 수 있는 지표를 내보내는 경우 해당 알고리즘은 조기 중지를 지원하는 것입니다.

자체 알고리즘에서 조기 중지를 사용하려는 경우 각 epoch 이후 목표 지표 값을 내보내도록 알고리즘을 작성해야 합니다. 다음 목록에는 여러 프레임워크에서 이와 같이 알고리즘을 작성하는 방법이 나와 있습니다.

TensorFlow

tf.keras.callbacks.ProgbarLogger 클래스를 사용합니다. 자세한 내용은 tf.keras.콜백을 참조하십시오. ProgbarLogger API.

MXNet

mxnet.callback.LogValidationMetricsCallback를 사용합니다. 자세한 내용은 APIsmxnet.콜백을 참조하십시오.

Chainer

extensions.Evaluator 클래스를 사용하여 chainer를 확장합니다. 자세한 내용은 chainer.training.Extensions.Evaluator를 참조하십시오. API

PyTorch 그리고 스파크

상위 수준 지원은 없습니다. 따라서 목표 지표를 계산해 각 epoch 이후에 로그에 기록하도록 훈련 코드를 명시적으로 작성해야 합니다.