Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/08/2013, 16:07
pedroredneuronal
 
Fecha de Ingreso: agosto-2013
Mensajes: 4
Antigüedad: 10 años, 8 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