Abbiamo dovuto scegliere una serie di iperparametri per definire e addestrare il modello. Abbiamo fatto affidamento sull'intuizione, sugli esempi e sui consigli sulle best practice. La nostra prima scelta di valori di iperparametri, tuttavia, potrebbe non fornire i risultati migliori. Questo ci dà solo un buon punto di partenza per la formazione. Ogni problema è diverso e la regolazione di questi iperparametri aiuterà a perfezionare il nostro modello per rappresentare meglio le particolarità del problema in questione. Diamo un'occhiata ad alcuni degli iperparametri che abbiamo utilizzato e al loro significato:
Numero di livelli nel modello: il numero di livelli in una rete neurale è un indicatore della sua complessità. Dobbiamo fare attenzione a scegliere questo valore. Troppi livelli consentiranno al modello di apprendere troppe informazioni sui dati di addestramento, causando un overfit. Un numero troppo ridotto di livelli può limitare la capacità di apprendimento del modello, causando una suddivisione insufficiente. Per i set di dati di classificazione del testo, abbiamo sperimentato MLP a uno, due e tre livelli. I modelli a due livelli hanno avuto un buon rendimento e, in alcuni casi, sono migliori dei modelli a tre livelli. Analogamente, abbiamo provato sepCNN con quattro e sei livelli e i modelli a quattro livelli hanno funzionato bene.
Numero di unità per livello: le unità di un livello devono contenere le informazioni relative alla trasformazione eseguita in un livello. Per il primo livello, questo dipende dal numero di funzionalità. Nei livelli successivi, il numero di unità dipende dalla scelta di espandere o comprimere la rappresentazione dal livello precedente. Cerca di ridurre al minimo la perdita di informazioni tra i livelli. Abbiamo provato i valori delle unità nell'intervallo
[8, 16, 32, 64]
e 32/64 unità hanno funzionato bene.Tasso di abbandono: i livelli di abbandono vengono utilizzati nel modello per la regolazione. Definiscono la parte di input che cala come precauzione per l'overfitting. Intervallo consigliato: 0,2 - 0,5.
Tasso di apprendimento: la frequenza con cui la ponderazione della rete neurale cambia tra le iterazioni. Un tasso di apprendimento elevato può causare grandi sbalzi di peso, e potremmo non trovare mai i valori ottimali. Un basso tasso di apprendimento è positivo, ma il modello richiederà più iterazioni per convergere. È una buona idea iniziare con un tono basso, ad esempio in punto 1e-4. Se l'addestramento è molto lento, aumenta questo valore. Se il tuo modello non è in fase di apprendimento, prova a ridurre il tasso di apprendimento.
Abbiamo sintonizzato un paio di iperparametri aggiuntivi specifici per il nostro modello sepCNN:
Dimensioni del kernel: le dimensioni della finestra di convoluzione. Valori consigliati: 3 o 5.
Dimensioni di incorporamento: il numero di dimensioni che vogliamo utilizzare per rappresentare gli incorporamenti di parole, ovvero le dimensioni di ciascuna parola vettoriale. Valori consigliati: 50-300. Nei nostri esperimenti abbiamo utilizzato incorporamenti GloVe con 200 dimensioni con un livello di incorporamento preaddestrato.
Sperimenta con questi iperparametri e scopri qual è la soluzione migliore. Dopo aver scelto gli iperparametri con le migliori prestazioni per il tuo caso d'uso, il modello è pronto per il deployment.