Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Interrompere in anticipo i processi di addestramento
Interrompi in anticipo i processi di addestramento avviati da un processo di ottimizzazione degli iperparametri quando non stanno migliorando in modo significativo in base alle misurazioni eseguite con il parametro obiettivo. L'interruzione anticipata dei processi di addestramento può aiutare a ridurre il tempo di calcolo e consente di evitare l'overfitting del modello. Per configurare un processo di ottimizzazione degli iperparametri per arrestare i processi di addestramento in anticipo, procedi in uno dei seguenti modi:
-
Se state usando AWS SDK for Python (Boto3), impostate il
TrainingJobEarlyStoppingType
campo dell'HyperParameterTuningJobConfig
oggetto su cui configurare il tuning job.AUTO
-
Se utilizzi Amazon SageMaker Python SDK
, imposta il early_stopping_type
parametro dell'HyperParameterTuneroggetto su. Auto
-
Nella SageMaker console Amazon, nel flusso di lavoro Crea processo di ottimizzazione iperparametrica, in Arresto anticipato, scegli Auto.
Per un notebook di esempio che dimostri come utilizzare l'arresto anticipato, consulta https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter_tuning/image_classification_early_stopping/hpo_image_classification_early_stopping.ipynb o apri il notebook nella sezione Hyperparameterhpo_image_classification_early_stopping.ipynb
SageMaker Per informazioni su come utilizzare i notebook di esempio in un'istanza del notebook, consulta Accedi a taccuini di esempio.
Come funziona l'interruzione anticipata
Quando si abilita l'arresto anticipato per un processo di ottimizzazione degli iperparametri, SageMaker valuta ogni processo di addestramento avviato dal processo di ottimizzazione degli iperparametri nel modo seguente:
-
Dopo ogni epoca (Unix epoch) di addestramento, ottieni il valore del parametro obiettivo.
-
Calcola la media mobile del parametro obiettivo per tutti i processi di addestramento precedenti fino alla stessa epoca, quindi calcola la mediana di tutte le medie mobili.
-
Se il valore della metrica oggettiva per il lavoro di formazione corrente è peggiore (superiore quando si minimizza o inferiore quando si massimizza la metrica dell'obiettivo) rispetto al valore mediano delle medie correnti della metrica oggettiva per i lavori di formazione precedenti fino alla stessa epoca, si interrompe il lavoro di formazione corrente. SageMaker
Algoritmi che supportano l'interruzione anticipata
Per supportare l'interruzione anticipata, un algoritmo deve emettere parametri obiettivi per ogni epoca. I seguenti algoritmi integrati supportano l'arresto anticipato: SageMaker
-
Algoritmo di apprendimento lineare: supportato solo se viene utilizzata
objective_loss
come parametro obiettivo.
Nota
Questo elenco di algoritmi predefiniti che supportano l'interruzione anticipata è aggiornato al 13 dicembre 2018. In futuro, potrebbero essere aggiunti altri algoritmi predefiniti a questo elenco. Se un algoritmo emette un parametro che può essere utilizzato come parametro obiettivo per un processo di ottimizzazione degli iperparametri (preferibilmente un parametro di convalida), supporta l'interruzione anticipata.
Per utilizzare l'interruzione anticipata con un algoritmo personalizzato, devi scrivere gli algoritmi in modo che emettano il valore del parametro obiettivo dopo ogni epoca. L'elenco seguente mostra in che modo farlo in diversi scenari:
- TensorFlow
-
Utilizza la classe
tf.keras.callbacks.ProgbarLogger
. Per informazioni, consulta tf.keras.callbacks. ProgbarLogger API. - MXNet
-
Utilizzo della
mxnet.callback.LogValidationMetricsCallback
. Per informazioni, vedete mxnet.callback APIs. - Chainer
-
Estendi Chainer utilizzando la classe
extensions.Evaluator
. Per informazioni, vedete Chainer.training.extensions.Evaluator. API - PyTorch e Spark
-
Non è fornito supporto di alto livello. Devi scrivere esplicitamente il codice di addestramento in modo che calcoli i parametri obiettivi e li scriva nei log dopo ogni epoca.