Quando ho iniziato con le reti neurali artificiali (NN), ho pensato che avrei dovuto combattere il sovraprezzo come problema principale. Ma in pratica non riesco nemmeno a far superare la barriera del tasso di errore del mio NN al 20%. Non riesco nemmeno a battere il mio punteggio sulla foresta casuale!
Sto cercando un consiglio molto generale o non così generale su cosa si dovrebbe fare per far iniziare una NN a catturare le tendenze nei dati.
Per implementare NN uso Theano Stacked Auto Encoder con il codice del tutorial che funziona benissimo (tasso di errore inferiore al 5%) per classificare il set di dati MNIST. È un perceptron multistrato, con uno strato di softmax in cima e ciascuno nascosto successivamente viene pre-addestrato come autoencoder (descritto in dettaglio nel tutorial , capitolo 8). Ci sono ~ 50 funzioni di input e ~ 10 classi di output. L'NN ha neuroni sigmoidi e tutti i dati sono normalizzati a [0,1]. Ho provato molte configurazioni diverse: numero di strati e neuroni nascosti (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15, ecc.), Apprendimento diverso e pre-training tariffe, ecc.
E la cosa migliore che posso ottenere è un tasso di errore del 20% sul set di convalida e un tasso di errore del 40% sul set di test.
D'altra parte, quando provo ad usare Random Forest (da scikit-learn) ottengo facilmente un tasso di errore del 12% sul set di validazione e del 25% (!) Sul set di test.
Come può essere che la mia NN profonda con pre-allenamento si comporti così male? Cosa dovrei provare?