después de leer algunos artículos sobre la red neuronal (propagación de retorno) intento escribir una red neuronal simple por mi cuenta.propagación de la red neuronal, error en el entrenamiento
ive XOR red neuronal decidió, mi problema es cuando estoy tratando de entrenar a la red, si yo uso sólo un ejemplo para entrenar la red, que permite decir 1,1,0 (como INPUT1, INPUT2, targetOutput) después de 500 trenes + - la red responde 0.05. pero si estoy tratando más de un ejemplo (digamos 2 diferentes o todas las 4 posibilidades) la red apunta a 0.5 como salida :( busqué en google mis errores sin resultados: S intentaré dar todos los detalles como pueda para ayudar a encontrar lo malo:
.redes tratado -ive con 2,2,1 y 2,4,1 (inputlayer, hiddenlayer, outputlayer)
-la salida para cada neuronal definido por:
double input = 0.0;
for (int n = 0; n < layers[i].Count; n++)
input += layers[i][n].Output * weights[n];
mientras que 'i' es la capa y el peso actuales son todos los pesos del anterior capa ous.
, la última capa (capa de salida) de error es definido por:
value*(1-value)*(targetvalue-value);
mientras que el 'valor' es la salida neural y 'targetvalue' es la salida de destino para el neural actual.
-el error para los demás neurales definen por:
foreach neural in the nextlayer
sum+=neural.value*currentneural.weights[neural];
-todos los pesos de la red se adaptan por esta fórmula (el peso de neural -> neural 2)
weight+=LearnRate*neural.myvalue*neural2.error;
mientras que LearnRate es la tasa de aprendizaje de nework (definida 0.25 en mi red). biasweight -la para cada neural se define por:
bias+=LearnRate*neural.myerror*neural.Bias;
sesgo es valor const = 1.
que más o menos todo lo que puedo detalle, como he dicho, el objetivo salida sea 0,5 con diferentes ejemplos de entrenamiento :(
muchas gracias mucho por su ayuda^_ ^.
¿Ha escrito su propia implementación o está utilizando un marco? –
Es muy gracioso que no haya podido responder a su pregunta después de haber sido protegido :) – PythEch