14/08/2013, 16:07
|
| | Fecha de Ingreso: agosto-2013
Mensajes: 4
Antigüedad: 11 años, 3 meses Puntos: 0 | |
Programacion inteligencia artificial 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 y comprobar que los pesos convergen, 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 |