La rete neurale converge a 0,5 per XoR

1

Sto codificando una rete neurale in C per un progetto OCR. Prima di provare con il riconoscimento dei caratteri, sto facendo in modo che apprenda l'operazione XoR. Sebbene, i risultati che ottengo convergono sempre a 0,5 invece di 1 o 0 per tutte le combinazioni di input.

Sto utilizzando un tasso di apprendimento di 0,35 e la funzione di attivazione è la funzione standard sigmoid (1 / (1 + exp (-x)). La rete ha 2 ingressi, 1 neurone di polarizzazione, 1 livello nascosto con 2 neuroni e 1 neurone di uscita.

L'algoritmo per l'apprendimento delle operazioni ha questo aspetto:

initialise network with random weights
while networks doesn't know all operations with 5% precision do:
    compute output for all combinations
    run the retropropagation algorithm for all combinations
endwhile

Ho provato a cambiare il tasso di apprendimento e la funzione di attivazione, ma nessuno di questi ha risolto il problema. Perché la rete continua a convergere a 0,5 e come posso risolverlo?

    
posta moray95 29.11.2014 - 20:37
fonte

0 risposte