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?