

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

# 조기에 훈련 작업 중지
<a name="automatic-model-tuning-early-stopping"></a>

목표 지표로 측정한 결과를 봤을 때 훈련 작업이 크게 개선되지 않는 경우 하이퍼파라미터 튜닝 작업이 시작한 훈련 작업을 조기에 중지합니다. 훈련 작업을 조기에 중지하면 컴퓨팅 시간을 줄이고 모델 과적합(overfitting)을 피할 수 있습니다. 훈련 작업을 조기에 중지하도록 하이퍼파라미터 튜닝 작업을 구성하려면 다음 중 하나를 수행하세요.
+  AWS SDK for Python(Boto3)을 사용하는 경우 튜닝 작업을 구성하는 데 사용하는 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html) 객체의 `TrainingJobEarlyStoppingType` 필드를 로 설정합니다`AUTO`.
+ [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)를 사용하는 경우, [HyperParameterTuner](https://sagemaker.readthedocs.io/en/stable/tuner.html) 객체의 `early_stopping_type` 파라미터를 `Auto`(으)로 설정합니다.
+ Amazon SageMaker AI 콘솔의 **하이퍼파라미터 튜닝 작업 생성** 워크플로에 있는 **초기 중지** 아래에서 **자동**을 선택합니다.

초기 중지 사용 방법을 보여주는 샘플 노트북을 [https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter\_tuning/image\_classification\_early\_stopping/hpo\_image\_classification\_early\_stopping.ipynb](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 AI 예시**)에서 엽니다.

## 조기 중지의 작동 원리
<a name="automatic-tuning-early-stop-how"></a>

하이퍼파라미터 튜닝 작업에 대한 초기 중지를 사용하는 경우 SageMaker AI는 하이퍼파라미터 튜닝 작업이 시작한 각 훈련 작업을 다음과 같이 평가합니다.
+ 훈련의 각 epoch 후 목표 지표의 값을 가져옵니다.
+ 모든 이전 훈련 작업에 대한 목표 지표의 이동 평균을 동일한 epoch까지 계산한 다음 이동 평균 전체의 중간값을 계산합니다.
+ 현재 훈련 작업에 대한 목표 지표의 값이 동일한 에포크까지 이전 훈련 작업에 대한 목표 지표의 이동 평균에 대한 중간값보다 낮아지면 SageMaker AI는 현재 훈련 작업을 중지합니다.

## 조기 중지를 지원하는 알고리즘
<a name="automatic-tuning-early-stopping-algos"></a>

조기 중지를 지원하려면 알고리즘에서 각 epoch에 대한 목표 지표를 내보내야 합니다. 다음 내장된 SageMaker AI 알고리즘은 초기 중지를 지원합니다.
+ [LightGBM](lightgbm.md)
+ [CatBoost](catboost.md)
+ [AutoGluon-Tabular](autogluon-tabular.md)
+ [TabTransformer](tabtransformer.md)
+ [선형 학습자 알고리즘](linear-learner.md)-`objective_loss`을(를) 목표 지표로 사용하는 경우에만 지원.
+ [Amazon SageMaker AI를 사용한 XGBoost 알고리즘](xgboost.md)
+ [이미지 분류 - MXNet](image-classification.md)
+ [객체 감지 - MXNet](object-detection.md)
+ [Sequence-to-Sequence 알고리즘](seq-2-seq.md)
+ [IP Insights](ip-insights.md)

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

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

TensorFlow  
`tf.keras.callbacks.ProgbarLogger` 클래스를 사용합니다. 자세한 내용은 [tf.keras.Callbacks.ProgbarLogger API](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/ProgbarLogger)에서 확인하세요.

MXNet  
`mxnet.callback.LogValidationMetricsCallback`를 사용합니다. 자세한 내용은 [mxnet.callback APIs](https://mxnet.apache.org/versions/master/api/python/docs/api/legacy/callback/index.html)에서 확인하세요.

Chainer  
`extensions.Evaluator` 클래스를 사용하여 chainer를 확장합니다. 자세한 내용은 [chainer.training.Extensions.Evaluator API](https://docs.chainer.org/en/v1.24.0/reference/extensions.html#evaluator)에서 확인하세요.

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