dopo aver letto alcuni articoli sulla rete neurale (back-propagation) provo a scrivere una semplice rete neurale da solo.propagazione back-network neurale, errore nella formazione
ive ha deciso XOR neurale-rete, il mio problema è quando sto cercando di addestrare la rete, se io uso solo un esempio per addestrare la rete, consente di dire 1,1,0 (come input1, input2, targetOutput). dopo 500 treni + - la rete risponde 0.05. ma se sto provando più di un esempio (diciamo 2 diverse o tutte le 4 possibilità) la rete punta a 0.5 come output :( ho cercato in google per i miei errori senza risultati: S mal provate a dare tanti dettagli come posso per aiutare a trovare ciò che di sbagliato:.
reti provato -ive con 2,2,1 e 2,4,1 (inputlayer, hiddenlayer, outputlayer)
-la uscita per ogni neurale definita da:
double input = 0.0;
for (int n = 0; n < layers[i].Count; n++)
input += layers[i][n].Output * weights[n];
mentre 'i' è il livello corrente e il peso sono tutti i pesi dal precedente strato esterno.
-il ultimo strato (strato di output) errore è definito da:
value*(1-value)*(targetvalue-value);
mentre 'valore' è l'uscita neurale e 'targetvalue' è l'uscita di destinazione per la corrente neurale.
-il errore per gli altri neurals definiscono da:
foreach neural in the nextlayer
sum+=neural.value*currentneural.weights[neural];
-tutti i pesi della rete vengono adattarsi da questa formula (il peso da neurale -> neurale 2)
weight+=LearnRate*neural.myvalue*neural2.error;
mentre LearnRate è il tasso di apprendimento nework (definito 0,25 nella mia rete). biasweight -il per ogni neurale è definita da:
bias+=LearnRate*neural.myerror*neural.Bias;
bias valore const = 1.
che praticamente tutto quello che posso dettaglio, come ho detto l'obiettivo di essere uscita 0.5 con diversi esempi di addestramento :(
Grazie molto molto per il vostro aiuto^_ ^.
Hai scritto la tua implementazione o sta utilizzando un framework? –
È davvero divertente che non possa rispondere alla sua domanda dopo che è stata protetta :) – PythEch