Reti neurali. Domande degli esperti. - pagina 19

 

È sorto un "piccolo" problema.

Se alimentiamo gli stessi esempi di allenamento (TS) alla stessa rete, ma inizializziamo con pesi casuali prima dell'allenamento,

allora ogni volta la rete può allenarsi in modo diverso, con risultati diversi sullo stesso campione di prova.

Viene utilizzata la libreria FANN.

Ha deciso di controllare come si comporterebbe Statistics 6 in una situazione simile?

E qui le reti con la stessa architettura danno risultati diversi.

Per illustrare ho scelto due reti con i risultati più diversi. Potete vedere che le loro prestazioni sono esattamente l'opposto.


I grafici delle soglie di attivazione confermano che queste due reti sullo stesso PO sono state addestrate in modo completamente diverso.

(I risultati completi per tutte le reti e i dati per tutti i campioni sono allegati)


...............................................

Qualche suggerimento su come raggiungere la stabilità nel processo di apprendimento della rete neurale?

 
lasso:

Un "piccolo" problema è emerso.....

la rete può allenarsi in modo diverso ogni volta, con risultati diversi sullo stesso campione di prova....

Puoi dirmi come raggiungere la stabilità nel processo di formazione delle reti neurali?


Quindi è una questione di domande) Molti metodi sono usati per addestrare NS, ma tutti sono comprensibilmente diversi dalla forza bruta diretta. E tutti hanno un inconveniente essenziale comune: la paralisi o il blocco in un estremo locale. Non c'è una soluzione universale, tranne che per aumentare la qualità del meccanismo/algoritmo di apprendimento e aumentare il tempo di apprendimento (il numero di epoche di apprendimento). E in ogni caso si risolve in modo diverso.
 
lasso:

Puoi dirmi come raggiungere la stabilità nel processo di apprendimento di una rete neurale?

Usare i GA.
 
lasso:


Puoi dirmi come raggiungere la stabilità nel processo di apprendimento di una rete neurale?


SVM.

Esempio per due classi:

Possibili piani di divisione.... MLP BP troverà uno dei due e fermerà .....

Come per SVM:

Questo mod troverà sempre un unico piano di divisione ....

O GA come suggerito sopra....

Buona fortuna ....

 
Figar0:

Quindi è una questione di domande) Molti metodi sono usati per addestrare NS, ma tutti, per ovvie ragioni, sono diversi dalla forza bruta diretta. E tutti hanno un inconveniente essenziale comune: la paralisi o il blocco in un estremo locale. Non c'è una soluzione universale, tranne che per aumentare la qualità del meccanismo/algoritmo di apprendimento e aumentare il tempo di apprendimento (il numero di epoche di apprendimento). E in ogni caso si risolve in modo diverso.

Se si tratta di rimanere bloccati in un estremo locale, allora penso che in questo caso, i risultati dovrebbero essere tutti "buoni", e differire solo in un certo intervallo -- "meglio", "peggio"...

Ma non cambiare drasticamente i risultati del test! Hai capito?

Ecco i risultati delle corse sul periodo di prova di 1 mese:

-9337

+5060

+14522

+7325

+12724

-3475

+10924

-9337

+5060

-3475

-9337

-3475

................................

Qui i compagni stranieri consigliano di applicare i comitati di rete

ma non credo che questa sia la soluzione migliore...

In particolare, vi ricordo che i dati OP proposti nel problema, sono abbastanza facilmente separabili con metodi lineari,

Ed è impossibile trovare una soluzione semplice e stabile sotto forma di NS.

 

Non capisco il GA, che cosa si applica alla ricerca?

...............

Cioè, applicare la GA non in aggiunta ai NS, ma al loro posto?

 
lasso:

Non capisco il GA, che cosa si applica alla ricerca?

...............

Cioè, applicare la GA non in aggiunta ai NS, ma al loro posto?


I GA possono raccogliere i pesi NS, e qualsiasi cosa può essere usata come funzione di fitness... Puoi cercare EMA GA per quanto mi ricordo...
Ma ad essere onesti non capisco come questo GA ti aiuterà, può anche fermarsi in diversi punti... proprio come il NS...

E in generale, onestamente, è un fenomeno normale, purché non differiscano troppo...

 
lasso:

Se si tratta di rimanere bloccati in un estremo locale, allora penso che in questo caso, i risultati dovrebbero essere tutti "buoni", e differire solo in un certo intervallo -- "meglio", "peggio"...

Ma non cambiare drasticamente i risultati del test! Capito?


In questo caso, è probabile che la rete non sia sovra-addestrata, ma sotto-addestrata. La ragione di questo, a quanto pare, non è un'architettura abbastanza buona.

Anche se ci può essere un sovrallenamento - se la struttura della rete è eccessivamente ridondante e l'inizializzazione iniziale è casuale, allora la rete può bloccarsi a diversi estremi ogni volta, da qui la forte differenza nei risultati

 
alsu:

Qui è probabile che la rete non sia sovra-addestrata, ma sotto-addestrata. La ragione sembra essere una mancanza di architettura di qualità.

Anche se ci può essere un sovrallenamento - se la struttura della rete è eccessivamente ridondante e l'inizializzazione iniziale è casuale, allora la rete può bloccarsi a diversi estremi ogni volta, da qui la forte differenza nei risultati

Quali dati o risultati devi fornire per determinare concretamente qual è l'intoppo?
 

Un'altra cosa. Sono allarmato dalla "ristrettezza" della gamma di uscite della rete attuale. Per chiarire:

-- la rete MLP è 1-7-1

-- Le uscite della rete sono distribuite uniformemente nell'intervallo [0;1], le uscite negli esempi di allenamento sono rappresentate dai valori 1 e -1.

Se dopo l'addestramento l'intera gamma di valori di input viene passata attraverso la rete, vediamo che le uscite della rete si trovano in una gamma molto stretta. Per esempio:

opt_max_act=-0.50401336 opt_min_act=-0.50973881 step=0.0000286272901034

o anche così

opt_max_real=-0.99997914 opt_min_real=-0.99999908 step=0.00000010

.............................

È corretto o no?