Practica Inteligencia Artificial

download Practica Inteligencia Artificial

of 17

Transcript of Practica Inteligencia Artificial

Prctica de laboratorio N 1Inteligencia ArtificialProfesor: MSc. Zcimo aupari. Alumno: Ing. Jose Vidal Noblecilla

Practica Inteligencia ArtificialEntrenamiento de Redes Neuronales usando Matlab Ejercicio 1: 1. Se uso el siguiente DEMO de Simulink para la simulacin de una Red Neuronal

Con la opcin: 10-13 INTERNATIONAL THOMSON PUBLISHING CAP 11/BACKPROPAGATION CALCULATION.

Obtenindose el siguiente diseo de simulacin.

Inteligencia Artificial

Page 1

2. Se hicieron 30 iteraciones donde los resultados son mostrados en la Tabla 1 del Anexo. 3. A continuacin se muestran los resultados en forma grafica: Siendo la entrada p = 1.0, y la funcin objetivo t (target): ( )

Y, aplicando el entrenamiento en la Red Neuronal con los pasos de: a) b) c) d) Target. Simulate. Backpropagate. Update.

Se obtiene el resultado en a2. La siguiente grafica muestra que el error e converge a 0 y a2 converge a la funcin objetivo t.2 1.5 1 0.5 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 a2 e

Adems, los pesos W1 y W2 encuentran su valor estable: Para W1:0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 -0.1 -0.2 -0.3 -0.4 -0.5 W1 W1(1) W1 W1(2)

Inteligencia Artificial

Page 2

Para W20.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 W2 W2(1,1) W2 W2(1,2)

Ejercicio 2: A continuacin se desarrollan cada uno de los ejemplos propuestos en la presenta practica de laboratorio. 1. Entrenamiento de una RNA para mapeo de un conjunto de datos Se muestra el siguiente cdigo extrado de Matlab.

Para este primer ejemplo se har una breve descripcin de cada una de las lneas del cdigo, en los siguientes ejemplos ya no se repetirn los que fueron explicados. Linea 1. Comentario. Linea 2. La entrada de la red: p Linea 3. El objetivo (target) de la red: t Inteligencia Artificial Page 3

Linea 4.

Primera imagen que muestra las ubicaciones del objetivo usando plot.1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

0

1

2

3

4

5

6

7

8

Linea 5. newff: Es una red que se propaga hacia adelante (fed-forward). Hace referencia a las redes del tipo perceptrn multicapa, donde las salidas de las neuronas van a las siguientes capas y no existe retroalimentacin. En este caso ingresara como argumento 4 parmetros: i. [0 8]: valor mnimo (0) y mximo (8) de la entrada p. ii. [10 1]: numero de celdas en la capa oculta (10) y en la capa de salida (1). iii. (tansig purelin): funcin de activacin de cada capa. iv. trainlm: funcin de entrenamiento. Linea 6. Obtiene los valores y1 usando la funcin de simulacin (sim) de la red net con la entrada p. Linea 7. Grafica los valores obtenidos sin el entrenamiento, comparndolos con los valores del objetivo usando plot.2

1

0

-1

-2

-3

-4

-5 0

1

2

3

4

5

6

7

8

Se puede observar que los valores obtenidos (x), distan mucho del objetivo (o). Es necesario un entrenamiento. Linea 8. Se establece el numero mximo de las pocas (epochs) para el entrenamiento, que servirn para generar las iteraciones en el entrenamiento, en este caso 50. Inteligencia Artificial Page 4

Linea 9. Se establece el rendimiento del objetivo (goal), en este caso 0.01. Linea 10. Se realiza el enteramiento usando la funcin train, para ello se necesita la red, la funcin objetivo y la seal de entrada.

La imagen anterior indica que se realizaron 2 iteraciones para alcanzar el objetivo. Linea 11. Se obtienen los valores y2 usando la funcin de simulacin sim luego del entrenamiento. Linea 12. Grafica los valores y2 obtenidos con el entrenamiento y los compara tanto con los valores obtenidos sin el entrenamiento (y2) como con la funcin objetivo t.2

1

0

-1

-2

-3

-4

-5 0

1

2

3

4

5

6

7

8

Se puede observar que los valores obtenidos sin entrenamiento (x), distan mucho del objetivo (o). Sin embargo, los valores obtenidos despus del entrenamiento (*) estn bastante cerca del objetivo. Inteligencia Artificial Page 5

2. Entrenamiento de una RNA para mapeo de la funcin seno (x). Se muestra el siguiente cdigo extrado de Matlab.

Linea 1. Linea 2. Linea 3. Linea 4.1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

Comentario. Funcin de entrada p. Funcin sin para el objetivo t. Grafica la funcin objetivo usando plot.

0

1

2

3

4

5

6

7

Linea 5.

Red neuronal newff con los siguientes parmetros: a. [0 6.3]: valor mnimo (0) y mximo (6.3) de la entrada p. b. [4 1]: numero de celdas en la capa oculta (4) y en la capa de salida (1). c. (tansig purelin): funcin de activacin de cada capa. d. traingdx: funcin de entrenamiento. Linea 6. Obtener valores y1 sin entrenamiento. Linea 7. Grafica la imagen con los valores de y1 comparndolos con la funcin objetivo t. Inteligencia Artificial Page 6

1.5

1

0.5

0

-0.5

-1

0

1

2

3

4

5

6

7

Se puede observar que los valores obtenidos (x), distan mucho del objetivo (o). Es necesario un entrenamiento Linea 8. Numero mximo de pocas (epochs) = 2500. Linea 9. Rendimiento del objetivo (goal) = 0.001. Linea 10. Entrenamiento usando la funcin train.

La imagen anterior indica que se realizaron 128 iteraciones para alcanzar el objetivo. Linea 11. Obtener valores y2 despus del entrenamiento. Linea 12. Graficar los resultados.

Inteligencia Artificial

Page 7

1.5

1

0.5

0

-0.5

-1

0

1

2

3

4

5

6

7

Se puede observar que los valores obtenidos sin entrenamiento (x), distan mucho del objetivo (o). Sin embargo, los valores obtenidos despus del entrenamiento (*) estn bastante cerca del objetivo. 3. Entrenamiento de una RNA para mapeo de la funcin f(x) = 1/x del libro de Simon Haykin. Se muestra el siguiente cdigo extrado de Matlab.

Inteligencia Artificial

Page 8

Linea 1. Linea 2. Linea 3. Linea 4. Linea 5. Linea 6.0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0

Comentario. Comentario. Funcin de entrada p_treino. Funcin objetivo t_treino. Grfica de la funcin objetivo t_treino usando plot.

0

10

20

30

40

50

60

70

80

90

100

Linea 7. Linea 8. Linea 9.0.35

Funcin de entrada p_teste Funcin objetivo t_teste. Grfica de la funcin objetivo t_teste usando plot

0.3

0.25

0.2

0.15

0.1

0.05

0

0

10

20

30

40

50

60

70

80

90

100

Linea 10. Red neuronal newff con los siguientes parmetros: a. [1 100]: valor mnimo (1) y mximo (100) para ambas funciones p. b. [8 1]: numero de celdas en la capa oculta (8) y en la capa de salida (1). c. (tansig purelin): funcin de activacin de cada capa. d. trainlm: funcin de entrenamiento. Inteligencia Artificial Page 9

Linea 11. Numero mximo de pocas (epochs) = 800. Linea 12. Rendimiento del objetivo (goal) = 1e-8. Linea 13. Entrenamiento usando la funcin train.

La imagen anterior indica que se realizaron 247 iteraciones para alcanzar el objetivo. Linea 14. Obtener valores y_treino despus del entrenamiento. Linea 15. Generar la red neuronal newff. Linea 18. Entrenamiento usando la funcin train

La imagen anterior indica que se realizaron 37 iteraciones para alcanzar el objetivo.

Inteligencia Artificial

Page 10

Linea 19. Obtener valores y_teste despus del entrenamiento Linea 20. Graficar los resultados.0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 10 20 30 40 50 60 70 80 90 100

0.35 0.3 0.25 0.2 0.15 0.1 0.05 0

0

10

20

30

40

50

60

70

80

90

100

Se puede observar que los valores obtenidos despus del entrenamiento (*) estn bastante cerca del objetivo

Ejercicio 3: Hacer el programa computacional para entrenar una RNA Backpropagation de la siguiente funcin no lineal: ( Donde: ( ) ) ( ) (( ) )

Inteligencia Artificial

Page 11

Cdigo de Matlab:%Ejercicio N 3: % Programa computacional para una funcion no lineal. % f(x1,x2)=sin(x1).*cos((3?4)*x2) clear all; %limpiar datos anteriores clc; %limpiar la consola %Valores de entrada x = [-3.5:0.2:3.5 ; -3.5:0.2:3.5];%x = [x1 ; x2] %Funcion objetivo % x1 = x(1,:) % x2 = x(2,:) fx1x2 = sin(x(1,:)).*cos((3/4)*x(2,:)); %Grafica de la funcion objetivo figure (1) plot(x, fx1x2, 'o'); title('Funcion objetivo: f(x1,x2)=sin(x1).*cos((3?4)*x2)'); xlabel('x1, x2'); ylabel('f(x1,x2)'); %Red con los siguientes parametros % Rango de los valores de entrada x1: min=-3.5, max=3.5 % Rango de los valores de entrada x2: min=-3.5, max=3.5 % Numero de celdas en la capa oculta = 4 % Numero de celdas en la capa de salida = 1 % Funcion de activacion de cada capa: tansig, purelin % Funcion de entrenamiento: trainlm net = newff([min(x(1,:)) max(x(1,:)); min(x(2,:)) max(x(2,:))],[4 1],{'tansig' 'purelin'},'trainlm'); y1 = sim(net,x); %Simular sin entrenamiento figure (2) plot(x,fx1x2,'o',x,y1,'x'); title('Funcion objetivo (o) y simulacion sin entrenamiento (x)'); xlabel('x1, x2'); ylabel('f(x1,x2)'); %Parametros para el entrenamiento net.trainParam.epochs = 800; net.trainParam.goal = 0.00001; %Funcion de entrenamiento net = train(net,x,fx1x2); %Resultado despues de entrenamiento y2 = sim(net,x); %Imagen final figure (3) plot(x,fx1x2,'o',x,y1,'x',x,y2,'*'); title('Funcion objetivo (o), Sim sin entrenamiento (x), Sim con entrenamiento (*)'); xlabel('x1, x2'); ylabel('f(x1,x2)');

Inteligencia Artificial

Page 12

Resultados: Datos del entrenamiento:

Grfica 1: Funcin objetivo f(x1, x2)Funcion objetivo: f(x1,x2)=sin(x1).*cos((3 4)*x2) 0.8 0.6 0.4 0.2f(x1,x2)

0 -0.2 -0.4 -0.6 -0.8 -4

-3

-2

-1

0 x1, x2

1

2

3

4

Inteligencia Artificial

Page 13

Grfica 2: Funcin objetivo f(x1, x2) con los resultados y1 sin entrenamientoFuncion objetivo (o) y simulacion sin entrenamiento (x) 0.8 0.6 0.4 0.2f(x1,x2)

0 -0.2 -0.4 -0.6 -0.8 -1 -4

-3

-2

-1

0 x1, x2

1

2

3

4

Grfica 3: Funcin objetivo f(x1, x2) con la salida y1 sin entrenamiento (x) comparado con la salida y2 luego del entrenamiento (*).Funcion objetivo (o), Sim sin entrenamiento (x), Sim con entrenamiento (*) 0.8 0.6 0.4 0.2f(x1,x2)

0 -0.2 -0.4 -0.6 -0.8 -1 -4

-3

-2

-1

0 x1, x2

1

2

3

4

Inteligencia Artificial

Page 14

CONCLUSIONES: I. II. III. IV. V. Existen funciones en Matlab que realizan el proceso de las redes neuronales de manera rpida. Las grficas de las redes sin el entrenamiento supervisado, generan valores muy lejanos del objetivo. Las variables goal y epoch son importantes para poder realizar un mejor entrenamiento usando la funcin train. El parmetro trainlm es una funcin de entrenamiento que actualiza los valores segn la optimizacin Levenberg-Marquardt. Ofrece un algoritmo debackpropagation ms rpido en el toolbox, y es altamente recomendado. El parmetro traingdx es una funcin de entrenamiento que actualiza los valores segn el gradiente descendiente con momento y una tasa de aprendizaje adaptativo.

BIBLIOGRAFICA: http://www.mathworks.com

NDICE: Ejercicio 1...... Pg. 1. Ejercicio 2...... Pg. 3. Cdigo 1..... Pg. 3. Cdigo 2..... Pg. 6. Cdigo 3..... Pg. 8. Ejercicio 3...... Pg. 11. Conclusiones...... Pg. 15. Bibliografa...... Pg. 15. ndice...... Pg. 15. Anexo...... Pg. 16.

Inteligencia Artificial

Page 15

Anexo Tabla 1Input Target p t 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Simulate a1 a2 a1(1) a1(2) 0.321 0.323 0.326 0.329 0.332 0.335 0.337 0.338 0.340 0.341 0.341 0.342 0.342 0.343 0.343 0.343 0.343 0.343 0.343 0.343 0.344 0.344 0.344 0.344 0.344 0.344 0.344 0.344 0.344 0.344 0.368 0.364 0.362 0.362 0.362 0.363 0.364 0.364 0.365 0.365 0.366 0.366 0.366 0.366 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.367 0.446 0.759 0.994 1.172 1.305 1.406 1.482 1.539 1.581 1.613 1.637 1.655 1.668 1.678 1.685 1.691 1.695 1.698 1.700 1.702 1.703 1.704 1.705 1.706 1.706 1.706 1.706 1.707 1.707 1.707 Backpropagate s2 s1 W1 s1(1) s1(2) W1(1) W1(2) -0.270 -0.410 -2.522 -0.049 0.100 -0.265 -0.420 -1.896 -0.071 0.034 -0.258 -0.423 -1.425 -0.073 0.003 -0.251 -0.424 -1.071 -0.066 -0.011 -0.244 -0.423 -0.803 -0.056 -0.015 -0.239 -0.421 -0.602 -0.046 -0.015 -0.234 -0.419 -0.451 -0.036 -0.014 -0.230 -0.418 -0.337 -0.028 -0.012 -0.227 -0.417 -0.252 -0.022 -0.009 -0.225 -0.416 -0.188 -0.017 -0.007 -0.224 -0.415 -0.140 -0.013 -0.006 -0.222 -0.415 -0.105 -0.010 -0.004 -0.221 -0.414 -0.078 -0.007 -0.003 -0.221 -0.414 -0.058 -0.005 -0.003 -0.220 -0.414 -0.043 -0.004 -0.002 -0.220 -0.413 -0.032 -0.003 -0.001 -0.219 -0.413 -0.024 -0.002 -0.001 -0.219 -0.413 -0.018 -0.002 -0.001 -0.219 -0.413 -0.013 -0.001 -0.001 -0.219 -0.413 -0.010 -0.001 0.000 -0.219 -0.413 -0.007 -0.001 0.000 -0.219 -0.413 -0.006 -0.001 0.000 -0.219 -0.413 -0.004 0.000 0.000 -0.219 -0.413 -0.003 0.000 0.000 -0.219 -0.413 -0.002 0.000 0.000 -0.219 -0.413 -0.002 0.000 0.000 -0.219 -0.413 -0.001 0.000 0.000 -0.219 -0.413 -0.001 0.000 0.000 -0.219 -0.413 -0.001 0.000 0.000 -0.219 -0.413 -0.001 0.000 0.000 -0.219 -0.413 Update b1 W2 b1(1) b1(2) W2(1,1) W2(1,2) -0.480 -0.130 0.090 -0.170 -0.475 -0.140 0.171 -0.077 -0.468 -0.143 0.232 -0.008 -0.461 -0.144 0.279 0.043 -0.454 -0.143 0.314 0.082 -0.449 -0.141 0.341 0.111 -0.444 -0.139 0.361 0.133 -0.440 -0.138 0.376 0.149 -0.437 -0.137 0.387 0.162 -0.435 -0.136 0.396 0.171 -0.434 -0.135 0.402 0.178 -0.432 -0.135 0.407 0.183 -0.431 -0.134 0.411 0.187 -0.431 -0.134 0.413 0.190 -0.430 -0.134 0.415 0.192 -0.430 -0.133 0.417 0.193 -0.429 -0.133 0.418 0.195 -0.429 -0.133 0.419 0.195 -0.429 -0.133 0.419 0.196 -0.429 -0.133 0.420 0.197 -0.429 -0.133 0.420 0.197 -0.429 -0.133 0.420 0.197 -0.429 -0.133 0.421 0.197 -0.429 -0.133 0.421 0.198 -0.429 -0.133 0.421 0.198 -0.429 -0.133 0.421 0.198 -0.429 -0.133 0.421 0.198 -0.429 -0.133 0.421 0.198 -0.429 -0.133 0.421 0.198 -0.429 -0.133 0.421 0.198 -0.429 -0.133 0.421 0.198

Iteracin 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

e

b2 0.480 0.732 0.922 1.064 1.171 1.252 1.312 1.357 1.391 1.416 1.435 1.449 1.459 1.467 1.473 1.477 1.480 1.483 1.485 1.486 1.487 1.488 1.488 1.489 1.489 1.489 1.489 1.489 1.489 1.490 1.490

1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707 1.707

1.261 0.948 0.713 0.535 0.402 0.301 0.225 0.168 0.126 0.094 0.070 0.052 0.039 0.029 0.022 0.016 0.012 0.009 0.007 0.005 0.004 0.003 0.002 0.002 0.001 0.001 0.001 0.000 0.000 0.000

Inteligencia Artificial

Page 16