Algoritmo di apprendimento lineare - Amazon SageMaker

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à.

Algoritmo di apprendimento lineare

I modelli lineari sono algoritmi di apprendimento supervisionato utilizzati per risolvere i problemi di classificazione o regressione. Per l'input, fornisci esempi di etichette del modello (x, y). x è un vettore altamente dimensionale e y è un'etichetta numerica. Per i problemi di classificazione binari, l'etichetta deve essere 0 o 1. Per i problemi di classificazione multiclasse, le etichette devono essere comprese tra 0 a num_classes - 1. Per i problemi di regressione, y è un numero reale. L'algoritmo apprende una funzione lineare o, per i problemi di classificazione, una funzione di soglia lineare e mappa un vettore x a un'approssimazione dell'etichetta y.

L'algoritmo di apprendimento SageMaker lineare di Amazon fornisce una soluzione per problemi di classificazione e regressione. Con l' SageMaker algoritmo, puoi esplorare contemporaneamente diversi obiettivi di formazione e scegliere la soluzione migliore da un set di convalida. Puoi anche esplorare un ampio numero di modelli e scegliere il migliore. Il modello migliore ottimizza uno dei seguenti:

  • Obiettivi continui, come errore quadratico medio, perdita di entropia incrociata, errore assoluto.

  • Obiettivi discreti adatti per la classificazione, come la misura F1, la precisione della richiamata o l'accuratezza

Confrontato con i metodi che forniscono una soluzione solo per obiettivi continui, l'algoritmo Linear Learner SageMaker fornisce un notevole aumento della velocità con le tecniche di ottimizzazione naive degli iperparametri. Offre inoltre una maggiore convenienza.

L'algoritmo Linear Learner richiede una matrice dei dati, con righe che rappresentano le osservazioni e con colonne che rappresentano le dimensioni delle caratteristiche. Richiede inoltre un'altra colonna contenente le etichette che corrispondono ai punti di dati. Come minimo, Amazon SageMaker linear learner richiede di specificare come argomenti le posizioni dei dati di input e output e il tipo di obiettivo (classificazione o regressione). Anche le dimensioni della caratteristica sono necessarie. Per ulteriori informazioni, consulta CreateTrainingJob. Puoi specificare ulteriori parametri nella mappa di stringhe HyperParameters del corpo della richiesta. Questi parametri controllano la procedura di ottimizzazione o le specifiche della funzione obiettivo sulla quale esegui il training. Ad esempio, il numero di epoche (Unix epochs), la regolarizzazione e il tipo di perdita.

Se utilizzi Addestramento spot gestita, l'algoritmo di apprendimento lineare supporta l'utilizzo di checkpoint per scattare un'istantanea dello stato del modello.

Interfaccia di input/output per l'algoritmo di apprendimento lineare

L'algoritmo di apprendimento SageMaker lineare di Amazon supporta tre canali di dati: addestramento, convalida (opzionale) e test (opzionale). Se fornisci dati di convalida, S3DataDistributionType devono essere FullyReplicated. L'algoritmo registra la perdita di convalida in ogni epoca (Unix epoch) e usa un esempio dei dati di convalida per calibrare e selezionare il modello migliore. Se non fornisci dati di convalida, l'algoritmo usa un esempio di dati di training per la calibrazione e la selezione del modello. Se fornisci i dati di test, i log dell'algoritmo includono il punteggio del test per il modello finale.

Per il training, l'algoritmo Linear Learner supporta i formati recordIO-wrapped protobuf e CSV. Per il tipo di input application/x-recordio-protobuf, solo i tensori Float32 sono supportati. Per il tipo di input text/csv, la prima colonna viene considerata l'etichetta, ossia la variabile target per la previsione. Puoi utilizzare la modalità file o la modalità pipe per addestrare i modelli Linear Learner sui dati formattati come recordIO-wrapped-protobuf o CSV.

Per l'inferenza, l'algoritmo Linear Learner supporta i formati application/json, application/x-recordio-protobuf e text/csv. Quando esegui previsioni su nuovi dati, il formato della risposta dipende dal tipo di modello. Per la regressione (predictor_type='regressor'), score è la previsione prodotta dal modello. Per la classificazione (predictor_type='binary_classifier' o predictor_type='multiclass_classifier'), il modello restituisce un score e un predicted_label. predicted_label è la classe prevista dal modello e score misura la forza di quella previsione.

  • Per la classificazione binaria, predicted_label è 0 o 1 e score è un singolo numero con virgola mobile che indica quanto fortemente l'algoritmo ritiene che l'etichetta debba essere 1.

  • Per la classificazione multiclasse, predicted_class sarà un numero intero compreso tra 0 e num_classes-1 e score sarà un elenco di un numero con virgola mobile per ogni classe.

Per interpretare score nei problemi di classificazione, occorre considerare la funzione di perdita utilizzata. Se il valore dell'iperparametro loss è logistic per la classificazione binaria o softmax_loss per la classificazione multiclasse, score può essere interpretato come la probabilità della classe corrispondente. Questi sono i valori di perdita utilizzati Linear Learner quando il valore loss è il valore predefinito auto. Se però la perdita è impostata su hinge_loss, il punteggio non può essere interpretato come probabilità. Questo perché la funzione hinge loss corrisponde a un Support Vector Classifier, che non produce stime di probabilità.

Per ulteriori informazioni sui formati di file di input e output, consulta Formati di risposta di Linear Learner. Per ulteriori informazioni sui formati di inferenza, consulta Notebook di esempio di apprendimento lineare.

Raccomandazione istanza EC2 per l'algoritmo di apprendimento lineare

L'algoritmo di apprendimento lineare supporta sia istanze CPU che GPU per l'addestramento e l'inferenza. Per quanto riguarda la GPU, l'algoritmo di apprendimento lineare supporta le famiglie di GPU P2, P3, G4dn e G5.

Durante i test, non abbiamo trovato prove considerevoli del fatto che le istanze con più GPU siano più veloci delle istanze con una sola GPU. I risultati possono variare a seconda del caso d'uso specifico.

Notebook di esempio di apprendimento lineare

La tabella seguente illustra una serie di notebook di esempio che affrontano diversi casi d'uso dell'algoritmo Amazon SageMaker Linear Learner.

Titolo del notebook Descrizione

Introduzione al set di dati MNIST

Utilizzando il set di dati MNIST, addestriamo un classificatore binario a prevedere un'unica cifra.

Come realizzare un classificatore multiclasse?

Dimostriamo come addestrare un classificatore multiclasse utilizzando il set di dati Covertype di UCI.

Come realizzare una pipeline di Machine Learning (ML) per l'inferenza?

Utilizzando un contenitore Scikit-learn, dimostriamo come creare una pipeline ML. end-to-end

Per istruzioni su come creare e accedere alle istanze del notebook Jupyter che è possibile utilizzare per eseguire l'esempio, vedere. SageMaker Istanze Amazon SageMaker Notebook Dopo aver creato un'istanza di notebook e averla aperta, scegli la scheda SageMakerEsempi per visualizzare un elenco di tutti gli esempi. SageMaker I notebook di esempio di modellazione dell'argomento che utilizzano gli algoritmi Linear Learner sono disponibili nella sezione con l'introduzione agli algoritmi di Amazon. Per aprire un notebook, seleziona la relativa scheda Utilizza e scegli Crea copia.