Parametri di addestramento - Amazon Machine Learning

Non aggiorniamo più il servizio Amazon Machine Learning né accettiamo nuovi utenti. Questa documentazione è disponibile per gli utenti esistenti, ma non la aggiorneremo più. Per ulteriori informazioni, consulta la paginaCos'è Amazon Machine Learning.

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

Parametri di addestramento

Di solito, gli algoritmi di machine learning accettano parametri che possono essere utilizzati per controllare determinate proprietà del processo di addestramento e del modello ML risultante. In Amazon Machine Learning, questi sono chiamatiparametri di addestr. È possibile impostare questi parametri utilizzando la console di Amazon ML, l'API o l'interfaccia a riga di comando (CLI). Se non si impostano i parametri, Amazon ML utilizzerà valori di default adatti a un'ampia gamma di attività di machine learning.

È possibile specificare i valori per i seguenti parametri di addestramento:

  • Massima dimensione del modello

  • Numero massimo di passate sui dati di addestramento

  • Tipo di mescolamento

  • Tipo di regolarizzazione

  • Quantità di regolarizzazione

Nella console di Amazon ML, i parametri di addestramento sono impostati di default. Le impostazioni di default sono adatte alla maggior parte dei problemi di ML, ma è possibile scegliere altri valori per ottimizzare le prestazioni. Altri parametri di addestramento, come ad esempio la velocità di apprendimento, sono configurati in base ai dati dell'utente.

Nelle seguenti sezioni vengono fornite ulteriori informazioni sui parametri di addestramento.

Massima dimensione del modello

La massima dimensione del modello è la dimensione totale, in unità di byte, dei modelli che Amazon ML crea durante l'addestramento di un modello ML.

Per impostazione predefinita, Amazon ML crea un modello di 100 MB. È possibile istruire Amazon ML affinché crei un modello più piccolo o più grande specificando una dimensione diversa. Per la gamma di dimensioni disponibili, consultare Tipi di modelli ML

Se Amazon ML non è in grado di trovare un numero sufficiente di pattern per riempire le dimensioni del modello, crea un modello più piccolo. Ad esempio, se si specifica un modello di dimensioni massime di 100 MB, ma Amazon ML trova pattern solo per un totale di 50 MB, il modello risultante sarà di 50 MB. Se Amazon ML individua più pattern adatti alla dimensione specificata, applica un limite massimo tagliando i pattern che influenzano di meno la qualità del modello appreso.

La scelta della dimensione del modello consente di trovare un compromesso tra la qualità predittiva di un modello e il costo di utilizzo. Modelli più piccoli possono far sì che Amazon ML rimuova molti pattern per rientrare nel limite massimo della dimensione, influenzando la qualità delle previsioni. Modelli più grandi, invece, hanno costi di esecuzione delle query più elevati per le previsioni in tempo reale.

Nota

Se si utilizza un modello ML per generare previsioni in tempo reale, verrà addebitato un piccolo costo di prenotazione di capacità determinato dalla dimensione del modello. Per ulteriori informazioni, consultare Prezzi di Amazon ML.

Set di dati di input più grandi non comportano necessariamente modelli più grandi, perché i modelli archiviano i pattern, non i dati di input; se i pattern sono pochi e semplici, il modello risultante sarà piccolo. Dati di input con un numero elevato di attributi grezzi (colonne di input) o di caratteristiche derivate (output delle trasformazioni dei dati Amazon ML) avranno probabilmente più pattern trovati e memorizzati durante il processo di addestramento. La scelta della corretta dimensione dei modelli per i propri dati è un problema che è meglio affrontare con alcuni esperimenti. Il log di addestramento del modello Amazon ML (che è possibile scaricare dalla console o tramite l'API) contiene messaggi relativi a quanto il modello deve essere (eventualmente) tagliato durante il processo di addestramento, consentendo di calcolare la potenziale qualità di previsione.

Numero massimo di passate sui dati

Per ottimizzare i risultati, Amazon ML potrebbe dover fare più passate sui dati per rilevare i pattern. Per impostazione predefinita, Amazon ML fa 10 passate, ma è possibile modificare l'impostazione predefinita impostando un numero fino a 100. Amazon ML tiene traccia della qualità dei pattern (convergenza del modello) mentre prosegue e interrompe automaticamente l'addestramento quando non vi sono più punti di dati o pattern da rilevare. Ad esempio, se si imposta il numero di passate su 20, ma Amazon ML scopre che non è possibile rilevare nuovi pattern alla fine di 15 passate, interrompe l'addestramento a 15 passate.

In generale, set di dati con poche osservazioni richiedono di norma più passate sui dati per ottenere un modello di qualità più elevata. Set di dati più grandi contengono spesso molti punti di dati simili, eliminando la necessità di un numero elevato di passate. L'impatto della scelta di più passate sui dati è duplice: l'addestramento del modello richiede più tempo e i costi sono più elevati.

Tipo di mescolamento dei dati di addestramento

In Amazon ML, è necessario mischiare i dati di addestramento. Il mescolamento consente di mischiare l'ordine dei dati in modo che l'algoritmo SGD non incontri un solo tipo di dati per troppe osservazioni in successione. Ad esempio, se si sta addestramento un modello ML per prevedere un tipo di prodotto e i dati di addestramento includono tipi di prodotti film, giocattoli e videogiochi, se i dati sono stati ordinati in base alla colonna tipo di prodotto prima di caricarli, l'algoritmo vede i dati alfabeticamente in base al tipo di prodotto. L'algoritmo vede per primi tutti i dati dei film e il modello ML inizia ad apprendere i pattern relativi ai film. Quindi, quando il modello rileva i dati sui giocattoli, ogni aggiornamento che l'algoritmo effettua adatta il modello al tipo di prodotto giocattoli, anche se gli aggiornamenti degradano i pattern che si adattano ai film. Questo improvviso passaggio dal tipo film al tipo giocattoli può produrre un modello che non apprende come prevedere in modo accurato i tipi di prodotto.

È necessario mischiare i dati di addestramento anche se si sceglie l'opzione di divisione casuale quando si divide l'origine dati di input in parti di addestramento e di valutazione. La strategia di divisione casuale sceglie un sottoinsieme di dati casuale per ogni origine dati, ma non modifica l'ordine delle righe nell'origine dati. Per ulteriori informazioni sulla divisione dei dati, consultare Divisione dei dati.

Quando si crea un modello ML utilizzando la console, per impostazione predefinita Amazon ML mischia i dati con una tecnica pseudocasuale. Indipendentemente dal numero di passate richieste, Amazon ML mischia i dati solo una volta prima di addestrare il modello ML. Se si mischiano i dati prima di fornirli ad Amazon ML e non si vuole che Amazon ML mischi di nuovo i dati, è possibile impostareTipo di mescolamentoanone. Ad esempio, se hai mischiato casualmente i record nel file con estensione csv prima di caricarlo su Amazon S3, utilizza ilrand()funzione nella query MySQL SQL durante la creazione dell'origine dati da Amazon RDS o si utilizza ilrandom()funzione nella query SQL di Amazon Redshift durante la creazione dell'origine dati da Amazon Redshift, impostazioneTipo di mescolamentoanonenon influirà sulla precisione predittiva del tuo modello ML. Se si mischiano i dati solo una volta si riduce il runtime e il costo di creazione di un modello ML.

Importante

Quando si crea un modello ML utilizzando l'API di Amazon ML, Amazon ML non mischia i dati per impostazione predefinita. Se si utilizza l'API al posto della console per creare il modello ML, è consigliabile mischiare i dati impostando il parametro sgd.shuffleType su auto.

Tipo e quantità di regolarizzazione

Le prestazioni predittive dei modelli ML complessi (quelli con molti attributi di input) ne risentono quando i dati contengono troppi pattern. Con l'aumento del numero di pattern cresce anche la probabilità che il modello apprenda artefatti di dati involontari invece di pattern di dati reali. In tal caso, il modello ha ottime prestazioni sui dati di addestramento, ma non è in grado di effettuare una generalizzazione corretta sui nuovi dati. Questo fenomeno è noto come overfitting dei dati di addestramento.

La regolarizzazione aiuta a evitare l'overfitting nei modelli lineari su esempi di dati di addestramento penalizzando i valori di ponderazione estremi. La regolarizzazione L1 riduce il numero di caratteristiche utilizzate nel modello spingendo a zero la ponderazione delle caratteristiche che in caso contrario avrebbero ponderazioni molto piccole. La regolarizzazione L1 produce modelli di tipo sparse e riduce la quantità di disturbo nel modello. La regolarizzazione L2 comporta valori di ponderazione globale più piccoli, il che stabilizza le ponderazioni quando vi è un'elevata correlazione tra le caratteristiche. È possibile controllare la quantità di regolarizzazione L1 o L2 utilizzando il parametro Regularization amount. Se si specifica un valore estremamente elevato di Regularization amount tutte le caratteristiche possono avere una ponderazione zero.

La selezione e il tuning del valore di regolarizzazione ottimale è un argomento attivamente discusso nell'ambito della ricerca sul machine learning. È probabilmente vantaggioso selezionare una quantità moderata di regolarizzazione L2, che è l'impostazione predefinita nella console di Amazon ML. Gli utenti esperti possono scegliere tra tre tipi di regolarizzazione (none, L1 o L2) e quantità. Per ulteriori informazioni sulla regolarizzazione, consultare la pagina Regolarizzazione (matematica).

parametri di addestramento: Tipi e valori predefiniti

La tabella seguente elenca i parametri di addestramento di Amazon ML, insieme ai valori di default e all'intervallo ammesso per ciascuno.

Parametro di addestramento

Type (Tipo)

Valore predefinito

Descrizione

maxMLModelSizeInBytes

Numero intero

100.000.000 byte (100 MiB)

Range consentito: 100.000 (100 KiB) a 2.147.483.648 (2 GiB)

A seconda dei dati di input, la dimensione del modello potrebbe influenzare le prestazioni.

sgd.maxPasses

Numero intero

10

Range consentito: 1-100

sgd.shuffleType

Stringa

auto

Valori accettabili: auto o none

sgd.l1RegularizationAmount

Doppio

0 (per impostazione predefinita, L1 non viene utilizzato)

Range consentito: 0 per MAX_DOUBLE

È emerso che valori L1 compresi tra 1E-4 e 1E-8 producono buoni risultati. Valori più elevati possono produrre modelli non molto utili.

Non è possibile impostare sia L1 sia L2. È necessario scegliere l'uno o l'altro.

sgd.l2RegularizationAmount

Doppio

1E-6 (Per impostazione predefinita, L2 viene utilizzato con questa quantità di regolarizzazione)

Range consentito: 0 per MAX_DOUBLE

È emerso che valori L2 compresi tra 1E-2 e 1E-6 producono buoni risultati. Valori più elevati possono produrre modelli non molto utili.

Non è possibile impostare sia L1 sia L2. È necessario scegliere l'uno o l'altro.