Está en la página 1de 17

Prctica de

laboratorio
N 1
Inteligencia Artificial
Profesor: MSc. Zcimo aupari.
Alumno: Ing. Jose Vidal Noblecilla

Practica Inteligencia Artificial


Entrenamiento 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
a2

0.5
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31

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

W1 W1(1)

-0.3

W1 W1(2)

-0.4
-0.5

Inteligencia Artificial

Page 2

Para W2
0.5
0.4
0.3
0.2

W2 W2(1,1)

0.1

W2 W2(1,2)

0
-0.1

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31

-0.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

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

-2

-3

-4

-5
0

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

-2

-3

-4

-5
0

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.

Comentario.
Funcin de entrada p.
Funcin sin para el objetivo t.
Grafica la funcin objetivo usando plot.
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

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

0.5

-0.5

-1

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

0.5

-0.5

-1

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.

Comentario.
Comentario.
Funcin de entrada p_treino.
Funcin objetivo t_treino.
Grfica de la funcin objetivo t_treino usando plot.
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0

Linea 7.
Linea 8.
Linea 9.

10

20

30

40

50

60

70

80

90

100

Funcin de entrada p_teste


Funcin objetivo t_teste.
Grfica de la funcin objetivo t_teste usando plot
0.35

0.3

0.25

0.2

0.15

0.1

0.05

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

10

20

30

40

50

60

70

80

90

100

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

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

f(x1,x2)

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

Inteligencia Artificial

-3

-2

-1

0
x1, x2

Page 13

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

f(x1,x2)

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

-3

-2

-1

0
x1, x2

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

f(x1,x2)

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

Inteligencia Artificial

-3

-2

-1

0
x1, x2

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 de
backpropagation 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 1

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

Input 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

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

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

Inteligencia Artificial

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

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

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

Page 16

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

También podría gustarte