Impedire l'overfitting

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Un errore comune nell'addestramento di un modello BigQuery ML è l'overfitting. L'overfit si verifica quando il modello corrisponde troppo vicino ai dati di addestramento, il che comporta un rendimento scarso sui nuovi dati. BigQuery ML supporta due metodi per prevenire l'overfitting: interruzione anticipata e regolazione.

Per informazioni su come modificare le opzioni descritte di seguito, consulta l'istruzione CREATE MODEL.

Interruzione anticipata

L'interruzione anticipata è l'opzione predefinita per l'overfitting della prevenzione in BigQuery ML. Quando l'interruzione anticipata è abilitata, la perdita dei dati di holdout viene monitorata durante l'addestramento e l'addestramento viene interrotto quando il miglioramento della perdita nell'ultima iterazione scende al di sotto di una soglia. Poiché i dati di holdout non vengono utilizzati durante l'addestramento, è una buona stima della perdita del modello sui nuovi dati. Le opzioni early_stop, min_rel_progress, data_split_method e data_split_eval_fraction controllano il comportamento dell'interruzione anticipata.

Regolarizzazione

La regolazione impedisce che le ponderazioni del modello vengano troppo grandi, impedendo che il modello corrisponda troppo spesso ai dati di addestramento. BigQuery ML supporta due metodi per controllare le dimensioni delle ponderazioni del modello: regolarizzazione L1 e regolazione L2.

Per impostazione predefinita, i valori di l1_reg e l2_reg sono pari a zero, il che implica la disattivazione della regolazione. Su alcuni set di dati, l'impostazione di valori positivi per l1_reg e l2_reg migliorerà le prestazioni del modello addestrato sui nuovi dati. I migliori valori per i parametri di regolarizzazione si trovano in genere tramite prove ed errori ed è comune sperimentare valori in diversi ordini di grandezza (ad esempio, 0.01, 0.1, 1, 10 e 100).

Di seguito sono riportati alcuni consigli generali sull'utilizzo della regolazione:

  • Se stai sperimentando con i parametri di regolarizzazione, prova a disattivare l'interruzione anticipata in modo che l'effetto della regolarizzazione sia chiaro.

  • Se il numero di funzionalità è elevato rispetto alle dimensioni del set di addestramento, prova a utilizzare valori elevati per i parametri di regolarizzazione. Il rischio di overfit è maggiore quando ci sono solo alcune osservazioni per funzionalità.

  • Se temi che molte funzionalità possano non essere pertinenti per prevedere l'etichetta, prova a impostare l1_reg su un valore maggiore di l2_reg e viceversa. Ci sono prove teoriche che la regolarizzazione L1 funziona meglio quando molte funzionalità non sono pertinenti.

Un altro vantaggio della regolarizzazione L1 è che tende a impostare quasi tutti i pesi del modello su zero, il che è utile per identificare le funzionalità più pertinenti e addestrare un modello compatto.

Passaggi successivi