Uso RNN bidirezionale per rilevare un evento di evento sbilanciato. La classe positiva è 100 volte meno spesso della classe negativa. Sebbene non sia possibile utilizzare la regolarizzazione, posso ottenere una precisione del 100% sul set di treni e del 30% sul set di convalida. Attivo la regolarizzazione l2 e il risultato è solo un'accuratezza del 30% anche sul set di treni anziché un apprendimento più lungo e un'accuratezza del 100% sul set di convalida.
Stavo pensando che forse i miei dati sono troppo piccoli, quindi solo per esperimento ho unito il set di treni con il set di test che non avevo usato prima. La situazione era la stessa che avrei usato per la regolarizzazione l2, cosa che non ho fatto ora. Ottengo una precisione del 30% su treno + test e convalida.
In uso 128 unità nascoste e 80 timestep negli esperimenti citati Quando ho aumentato il numero di unità nascoste a 256, posso nuovamente adattarmi al set treno + test per ottenere il 100% di precisione ma ancora solo il 30% sul set di validazione.
Ho provato così tante opzioni per iperparametri e quasi nessun risultato. Forse l'entropia crociata ponderata sta causando il problema, in determinati esperimenti il peso sulla classe positiva è 5. Mentre provando pesi più grandi, i risultati sono spesso peggiori del 20% circa della precisione.
Ho provato le celle LSTM e GRU, nessuna differenza.
I migliori risultati che ho ottenuto. Ho provato 2 livelli nascosti con 256 unità nascoste, ci sono voluti circa 3 giorni di calcolo e 8 GB di memoria GPU. Ho ottenuto un'accuratezza del 40-50% prima che ricominciasse a funzionare eccessivamente mentre la regolarizzazione l2 era attiva ma non così forte.
Uso gli ottimizzatori Adam, altri non hanno funzionato così bene. La funzione che ho è sufficiente, perché usando la macchina a stati posso ottenere una precisione del 90%. In quella macchina a stati la funzione principale è la somma e la soglia in base ad altre proprietà della caratteristica e la sua lunghezza variabile a volte è 10, a volte 20 timestamp che parla della funzione.
C'è qualche linea guida generale su cosa fare in questa situazione? Non sono riuscito a trovare nulla.