Addestramento con l'impiego dell'algoritmo Linear Learner integrato

L'addestramento con algoritmi integrati in AI Platform Training ti consente di inviare il tuo set di dati e addestrare un modello senza scrivere alcun codice di addestramento. Questa pagina spiega come funziona e come utilizzare l'algoritmo Linear Learner integrato.

Panoramica

Questo algoritmo integrato esegue la pre-elaborazione e l'addestramento:

  1. Pre-elaborazione: AI Platform Training elabora il tuo mix di categorie e dati numerici in un set di dati numerico per prepararlo addestramento.
  2. Addestramento: utilizzando il set di dati e i parametri del modello che hai fornito, AI Platform Training esegue l'addestramento utilizzando Strumento di stima lineare.

Limitazioni

Le seguenti funzionalità non sono supportate per l'addestramento con la Linear Learner:

Tipi di macchine supportati

I seguenti livelli di scalabilità e tipi di macchine di AI Platform Training sono supportati:

Formatta i dati di input

Ogni riga di un set di dati rappresenta un'istanza e ogni colonna rappresenta un valore della funzionalità. La colonna di destinazione rappresenta il valore che vuoi prevedere.

Preparare il file CSV

I dati inseriti devono essere in un file CSV con codifica UTF-8. Se i tuoi dati di addestramento è costituito solo da valori categorici e numerici, puoi utilizzare modulo di pre-elaborazione per inserire i valori numerici mancanti, suddividere il set di dati e Rimuovere le righe in cui mancano più del 10% dei valori. Altrimenti, puoi eseguire l'addestramento senza pre-elaborazioni automatiche.

Devi preparare il file CSV di input per soddisfare i seguenti requisiti:

  • Rimuovi la riga di intestazione. La riga di intestazione contiene le etichette per ogni colonna. Rimuovi la riga di intestazione per evitare di inviarla con il resto delle istanze di dati come parte dei dati di addestramento.
  • Assicurati che la colonna di destinazione sia la prima. La colonna target contiene il valore che stai tentando di prevedere. Per una classificazione , tutti i valori nella colonna target sono una classe o una categoria. Per un algoritmo di regressione, tutti i valori nella colonna di destinazione sono numerici.

Gestire i valori interi

Il significato dei valori interi può essere ambiguo, il che rende problematiche le colonne di valori interi nella preelaborazione automatica. AI Platform Training determina automaticamente come gestire i valori interi. Per impostazione predefinita:

  • Se ogni valore intero è univoco, la colonna viene trattata come chiavi di istanza.
  • Se sono presenti solo alcuni valori interi univoci, la colonna viene trattata come categorica.
  • In caso contrario, i valori nella colonna vengono convertiti in valori float e trattati come numerici.

Per eseguire l'override di queste determinazioni predefinite:

  • Se i dati devono essere trattati come numerici, converti tutti i valori interi nella colonna in virgola mobile, ad es. {101.0, 102.0, 103.0}
  • Se i dati devono essere trattati come categorici, anteponi un prefisso non numerico a tutti i valori interi nella colonna, ad esempio {code_101, code_102, code_103}

Controlla le autorizzazioni del bucket Cloud Storage

Per archiviare i dati, utilizza un bucket Cloud Storage nello stesso Google Cloud progetto che stai utilizzando per eseguire job di AI Platform Training. Altrimenti, concedere ad AI Platform Training l'accesso al bucket Cloud Storage in cui sono archiviati i tuoi dati.

Invia un job di addestramento di Linear Learner

Questa sezione spiega come inviare un job di addestramento utilizzando Linear Learner.

Puoi trovare brevi spiegazioni di ogni iperparametro all'interno console Google Cloud e una spiegazione più completa nel riferimento per l'algoritmo Linear Learner integrato.

Console

  1. Vai alla pagina dei job di addestramento su AI Platform nella console Google Cloud:

    Pagina dei job di AI Platform Training

  2. Fai clic sul pulsante Nuovo job di addestramento. Dalle opzioni visualizzate di seguito, fai clic su Addestramento con algoritmi integrati.

  3. Nella pagina Crea un nuovo job di addestramento, seleziona Apprendimento lineare e fai clic su Avanti.

  4. Per scoprire di più su tutti i parametri disponibili, segui i link in alla console Google Cloud e consulta le di riferimento Linear Learner lineari per ulteriori dettagli.

gcloud

  1. Imposta le variabili di ambiente per il job, completando [VALUES-IN-BRACKETS] con i tuoi valori:

       # Specify the name of the Cloud Storage bucket where you want your
       # training outputs to be stored, and the Docker container for
       # your built-in algorithm selection.
       BUCKET_NAME='BUCKET_NAME'
       IMAGE_URI='gcr.io/cloud-ml-algos/linear_learner_cpu:latest'
    
       # Specify the Cloud Storage path to your training input data.
       TRAINING_DATA='gs://$BUCKET_NAME/YOUR_FILE_NAME.csv'
    
       DATE="$(date '+%Y%m%d_%H%M%S')"
       MODEL_NAME='MODEL_NAME'
       JOB_ID="${MODEL_NAME}_${DATE}"
    
       JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
    
  2. Invia il job di addestramento utilizzando gcloud ai-platform jobs training submit. Modifica questo esempio generico in modo che funzioni con il tuo set di dati:

       gcloud ai-platform jobs submit training $JOB_ID \
          --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \
          -- \
          --preprocess --model_type=$MODEL_TYPE --batch_size=250 \
          --learning_rate=0.1 --max_steps=1000 \
          --training_data_path=$TRAINING_DATA
    
  3. Monitora lo stato del job di addestramento visualizzando i log con gcloud. Consulta gcloud ai-platform jobs describe e gcloud ai-platform jobs stream-logs.

       gcloud ai-platform jobs describe ${JOB_ID}
       gcloud ai-platform jobs stream-logs ${JOB_ID}
    

Come funziona l'elaborazione preliminare

La pre-elaborazione automatica funziona per i dati categorici e numerici. La La routine di pre-elaborazione analizza prima i dati, poi trasforma.

Analisi

Innanzitutto, AI Platform Training rileva automaticamente il tipo di dati di ogni colonna, identifica il modo in cui ogni colonna deve essere trattata e calcola alcune statistiche dei dati al suo interno. Queste informazioni vengono acquisite nel metadata.json file.

AI Platform Training analizza il tipo di colonna target per identificare se il set di dati specificato è per la regressione o la classificazione. Se questa analisi è in conflitto con la tua selezione per model_type, determina restituisce un errore. Indica esplicitamente come deve essere trattata la colonna di destinazione formattando i dati in modo chiaro nei casi ambigui.

  • Tipo: la colonna può essere numerica o categorica.

  • Trattamento: AI Platform Training identifica come trattare ogni colonna come che segue:

    • Se la colonna include un singolo valore in tutte le righe, viene trattata come costante.
    • Se la colonna è categorica e include valori univoci in tutti alle righe, viene considerato come row_identifier.
    • Se la colonna è numerica con valori float o se è numerica con valori interi e contiene molti valori univoci, viene trattata come numerica.
    • Se la colonna è numerica con valori interi e contiene un numero sufficiente di valori univoci, la colonna viene trattata come una colonna categorica in cui i valori interi sono identity o vocabulary.
      • Una colonna viene considerata con pochi valori univoci se il numero di valori univoci nella colonna sono inferiori al 20% del numero di righe in il set di dati di input.
    • Se la colonna è categorica con cardinalità elevata, allora la colonna è trattati con l'hashing, dove il numero di bucket di hash è uguale radice quadrata del numero di valori univoci nella colonna.
      • Una colonna categorica è considerata ad alta cardinalità se il numero di valori univoci è maggiore della radice quadrata del numero di righe nel set di dati.
    • Se la colonna è categorica e il numero di valori univoci è inferiore o uguale alla radice quadrata del numero di righe nel set di dati, la colonna viene trattata come una normale colonna categorica con un vocabolario.
  • Statistiche: AI Platform Training calcola le seguenti statistiche, in base al tipo di colonna e al trattamento identificati, da utilizzare trasformare la colonna in una fase successiva.

    • Se la colonna è numerica, vengono calcolati i valori media e varianza.
    • Se la colonna è categorica e il gruppo sperimentale è identità o vocabolario, i singoli valori vengono estratti dalla colonna.
    • Se la colonna è categorica e il gruppo sperimentale è in hashing, la di hash di un bucket è calcolato in base alla cardinalità nella colonna.

Trasformazione

Una volta completata l'analisi iniziale del set di dati, AI Platform Training trasforma i dati in base ai tipi, ai trattamenti e alle statistiche applicati il tuo set di dati. AI Platform Training esegue trasformazioni ordine:

  1. Suddivide il set di dati di addestramento in set di dati di convalida e test se specificare le percentuali di suddivisione.
  2. Rimuove le righe in cui mancano più del 10% delle caratteristiche.
  3. Riempie i valori numerici mancanti utilizzando la media della colonna.

Trasformazioni di esempio

Le righe con il 10% di valori mancanti vengono rimosse. Negli esempi riportati di seguito, si suppone che la riga contenga 10 valori. Per semplicità, ogni riga di esempio viene troncata.

Problema con la riga Valori originali Valori trasformati Spiegazione
Riga di esempio senza valori mancanti [3; 0,45; ...,
"frutta", 0, 1]
[3; 0,45; ...,
1, 0, 0, 0, 1]
La stringa "frutta" viene trasformato nei valori "1, 0, 0" nel la codifica one-hot. Questo accade più avanti nel grafico TensorFlow.
Troppi valori mancanti [3; 0,45; ...,
"frutta", __, __]
Riga rimossa Manca più del 10% dei valori nella riga.
Valore numerico mancante [3, 0,45, ...,
'frutti', 0, __]
[3, 0,45, ...,
1, 0, 0, 0, 0,54]
  • Il valore medio della colonna sostituisce il numero mancante valore. In questo esempio, la media è 0,54.
  • La stringa "frutta" viene trasformato nei valori "1, 0, 0" nel la codifica one-hot. Questo accade più avanti nel grafico di TensorFlow.
Valore categorico mancante [3, 0,45, ...,
__, 0, 1]
[3, 0,45, ...,
0, 0, 0, 0, 1]
  • Il valore categorico mancante viene trasformato nei valori "0, 0, 0" nella codifica one-hot. Questo accade più avanti nel grafico di TensorFlow.

Colonne funzionalità

Durante la trasformazione, le colonne non vengono elaborate. Invece, i metadati generati durante l'analisi viene passato ad AI Platform Training per creare le colonne delle caratteristiche di conseguenza:

Tipo di colonna Trattamento delle colonne Colonna di caratteristiche risultante
Valori numerici (Tutti i tipi di trattamento delle colonne) tf.feature_column.numeric_column

I valori di media e varianza sono utilizzati per standardizzare valori:
new_value = (input_value - mean) / sqrt(variance)

Categorico Identità tf.feature_column.categorical_column_with_identity
Categorico Vocabolario tf.feature_column.categorical_column_with_vocabulary_list
Categorico Hashing tf.feature_column.categorical_column_with_hash_bucket
Categorico Costante o identificatore riga Ignorata. Nessuna colonna di caratteristiche creata.

Al termine della pre-elaborazione automatica, AI Platform Training carica i dati il set di dati elaborato nuovamente nel bucket Cloud Storage nella directory specificato nella richiesta di job.

Ulteriori risorse di apprendimento