Algoritmo di apprendimento lineare - Amazon SageMaker AI

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 lineare di Amazon SageMaker AI offre una soluzione per problemi di classificazione e regressione. Con l'algoritmo SageMaker AI, 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

Rispetto ai metodi che forniscono una soluzione solo per obiettivi continui, l'algoritmo SageMaker AI linear learner offre un aumento significativo della velocità rispetto alle tecniche ingenue di ottimizzazione 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 AI 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 l’addestramento. Ad esempio, il numero di epoche (Unix epochs), la regolarizzazione e il tipo di perdita.

Se utilizzi Addestramento spot gestito, 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 lineare di Amazon SageMaker AI 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 addestramento 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 l’addestramento, 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.

EC2 esempio di raccomandazione per l'algoritmo Linear Learner

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 di apprendimento lineare di Amazon SageMaker AI.

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 di notebook Jupyter che puoi utilizzare per eseguire l'esempio in AI, vedi. SageMaker Istanze Amazon SageMaker Notebook Dopo aver creato un'istanza di notebook e averla aperta, scegli la scheda Esempi SageMaker AI per visualizzare un elenco di tutti gli esempi di IA. 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.