Hola, estoy intentando reproducir la función sim de matlab con el fin de obtener las salidas de la red neuronal, para una aplicación de android...el problema es que no funciona y no sé porqué..
Tengo estos datos:
3.12 2.21 6.14 8.24 1 50
3.51 2.61 5.32 6.79 2 50
2.41 9.18 3.14 3.45 3 50
8.81 6.54 4.16 2.67 4 50
El 1 es la solución de la primera salida. Y el 50 representa el valor de la segunda neurona de salida.
3.12 2.21 6.14 8.24 son los datos de entrada.
Aplico la siguiente red neuronal
net=newff(p',t',2,{'tansig','tansig'},'trainscg');
Después de entrenar, obtengo los siguientes datos:
Datos de pesos que van de la capa de entrada a la oculta
matrizPesosEntradaOculta=net.IW{1};
datos pesos que van de la capa1 a la oculta
1.3062 1.0525 0.2176 0.3767
0.2298 0.7281 -0.7726 -1.2693
datos del bias de la capa 1
biasCapa1 = net.b{1};
-1.5481
1.6630
Pesos que van de la capa oculta a la capa de salida
net.LW{2,1}
0.7312 1.3382
los bias de la capa 2 son
0.2205
Lo que quiero es hacer lo mismo que haría la función sim de matlab.
Lo primero que hago es obtener la salida de la capa oculta: (Ent -->son los datos de entrada) (W11-->son los pesos que van de la entrada a la oculta)
mc1 = Ent1*W11 + Ent2*W21 + Ent3*W31 + Ent4*W41 + bias =
mc1 = 8,81*(1,3062) + 6,54*(1,0525) + 4,16*(0,2176) + 2,67*(0,3767) - 1,5481 = 18,75
mc2 = Ent1*W12 + Ent2*W22 + Ent3*W32 + Ent4*W42 =
mc2 = 8,81*(0,2298) + 6,54*(0,7281)+ ....+ 1,663 = 1,8462
Por último intento obtener los datos de salida (V11--> son los pesos que van de la oculta a la de salida
sal1 = mc1* v11 + mc2*V21 + b = 18,75*0,7312 + 1,8462*1,3382 + 0,2205 = 16,4 y debería dar 4
No sé qué pasa y no se me ocurre en qué he fallado