2011-11-08 15 views
11

Sto addestrando una rete neurale XOR tramite back-propagation utilizzando la discesa del gradiente stocastico. I pesi della rete neurale sono inizializzati su valori casuali compresi tra -0.5 e 0.5. La rete neurale si allena con successo circa l'80% delle volte. Tuttavia a volte diventa "bloccato" mentre si backpropagating. Per "bloccato", intendo che inizio a vedere un tasso decrescente di correzione degli errori. Ad esempio, nel corso di una formazione di successo, l'errore totale diminuisce piuttosto rapidamente come la rete apprende, in questo modo:L'errore di rete neurale XOR cessa di diminuire durante l'allenamento

... 
... 
Total error for this training set: 0.0010008071327708653 
Total error for this training set: 0.001000750550254843 
Total error for this training set: 0.001000693973929822 
Total error for this training set: 0.0010006374037948094 
Total error for this training set: 0.0010005808398488103 
Total error for this training set: 0.0010005242820908169 
Total error for this training set: 0.0010004677305198344 
Total error for this training set: 0.0010004111851348654 
Total error for this training set: 0.0010003546459349181 
Total error for this training set: 0.0010002981129189812 
Total error for this training set: 0.0010002415860860656 
Total error for this training set: 0.0010001850654351723 
Total error for this training set: 0.001000128550965301 
Total error for this training set: 0.0010000720426754587 
Total error for this training set: 0.0010000155405646494 
Total error for this training set: 9.99959044631871E-4 

Testing trained XOR neural network 
0 XOR 0: 0.023956746649767453 
0 XOR 1: 0.9736079194769579 
1 XOR 0: 0.9735670067093437 
1 XOR 1: 0.045068688874314006 

Tuttavia quando si blocca, gli errori totali sono in diminuzione, ma sembra di essere a un tasso decrescente :

... 
... 
Total error for this training set: 0.12325486644721295 
Total error for this training set: 0.12325486642503929 
Total error for this training set: 0.12325486640286581 
Total error for this training set: 0.12325486638069229 
Total error for this training set: 0.12325486635851894 
Total error for this training set: 0.12325486633634561 
Total error for this training set: 0.1232548663141723 
Total error for this training set: 0.12325486629199914 
Total error for this training set: 0.12325486626982587 
Total error for this training set: 0.1232548662476525 
Total error for this training set: 0.12325486622547954 
Total error for this training set: 0.12325486620330656 
Total error for this training set: 0.12325486618113349 
Total error for this training set: 0.12325486615896045 
Total error for this training set: 0.12325486613678775 
Total error for this training set: 0.12325486611461482 
Total error for this training set: 0.1232548660924418 
Total error for this training set: 0.12325486607026936 
Total error for this training set: 0.12325486604809655 
Total error for this training set: 0.12325486602592373 
Total error for this training set: 0.12325486600375107 
Total error for this training set: 0.12325486598157878 
Total error for this training set: 0.12325486595940628 
Total error for this training set: 0.1232548659372337 
Total error for this training set: 0.12325486591506139 
Total error for this training set: 0.12325486589288918 
Total error for this training set: 0.12325486587071677 
Total error for this training set: 0.12325486584854453 

mentre leggevo su reti neurali mi sono imbattuto in una discussione sui minimas locali e minimas globali e di come le reti neurali in realtà non "sanno", che la sua minimi suppone che sia in direzione.

La mia rete si blocca in un minimo locale anziché in un minimo globale?

risposta

6

Sì, le reti neurali possono rimanere bloccate nei minimi locali, a seconda della superficie dell'errore. Tuttavia, this abstract suggerisce che non ci sono minimi locali nella superficie dell'errore del problema XOR. Tuttavia non riesco ad arrivare al testo completo, quindi non posso verificare ciò che gli autori hanno fatto per dimostrarlo e come si applica al tuo problema.

Ci potrebbero anche essere altri fattori che portano a questo problema. Ad esempio se si scende molto velocemente in alcuni tratti ripidi, se si utilizza solo una discesa con gradiente di primo ordine, è possibile arrivare alla pendenza opposta e rimbalzare avanti e indietro per tutto il tempo. Potresti provare anche a dare il cambio medio su tutti i pesi ad ogni iterazione, per verificare se hai davvero una rete "bloccata", o meglio una, che è appena entrata in un ciclo limite.

Si dovrebbe prima provare a giocherellare con i parametri (velocità di apprendimento, quantità di moto se la si è implementata, ecc.). Se riesci a risolvere il problema, cambiando i parametri, probabilmente il tuo algoritmo è ok.

+0

Grazie! La tua risposta lo ha reso molto più chiaro. Sembra che le reti neurali non siano esatte e che sia coinvolta una certa quantità di sfocatura.Proverò a cambiare i parametri e cercherò di risolvere il problema. –

+0

Mi sono imbattuto in [questo documento] (http://www.ncbi.nlm.nih.gov/pubmed/18252598) (pubblicato nel '99, un anno dopo quello che hai citato) che dice che c'è un minimo locale per la rete XOR 2-3-1 (sto usando una rete XOR 3-3-1, non sono sicuro che la polarizzazione sul layer di input sia necessaria). Di nuovo, proprio come nel tuo caso questo è un abstract. –

+0

Ho visto anche [questo articolo] (http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CDMQFjAC&url=http%3A%2F%2Fciteseerx.ist.psu.edu % 2Fviewdoc% 2Fdownload% 3Fdoi% 3D10.1.1.31.4770% 26rep% 3Drep1% 26type% 3Dpdf & ei = -WK5TqjAGIaviAL636jTBA & usg = AFQjCNEaQ0jG2bkD4ipXcfgXDr9mHrxRMQ & sig2 = BD8IyRc8Clg2XftdR20W9w) che dice che non ci sono minimi per la rete XOR più semplice, ma questo non sembra essere un 2-3-1 o una rete 3-3-1. –

2

Discesa gradiente scarsa con passi eccessivamente grandi come descritto da LiKao è un possibile problema. Un altro è che ci sono regioni molto piatte del panorama degli errori XOR, il che significa che ci vuole molto tempo per convergere, e infatti il ​​gradiente può essere così debole che l'algoritmo di discesa non ti porta nella giusta direzione.

Questi due documenti esaminano i paesaggi XOR 2-1-1 e 2-2-1. Uno usa una funzione di errore "cross entropy" che non conosco. Nel primo dichiarano che non ci sono minimi locali ma nel secondo dicono che ci sono minimi locali all'infinito - fondamentalmente quando i pesi scorrono a valori molto grandi. Quindi, per il secondo caso, i loro risultati suggeriscono che se non si inizia vicino a minimi veri "sufficienti" si può rimanere intrappolati nei punti infiniti. Dicono anche che altre analisi di reti XOR 2-2-1 che non mostrano minimi locali non sono contraddette dai loro risultati a causa di particolari definizioni.

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.31.4770

http://www.ncbi.nlm.nih.gov/pubmed/12662806

1

ho incontrato lo stesso problema ed ha trovato che utilizzando la funzione di attivazione 1,7159 * tanh (2/3 * x) descritto in LeCun's "Efficient Backprop" paper aiuta. Questo è presumibilmente perché quella funzione non si satura intorno ai valori di destinazione {-1, 1}, mentre il tanh regolare lo fa.

Problemi correlati