Escolar Documentos
Profissional Documentos
Cultura Documentos
Práctica 1
Resumen
El campo de las redes neuronales fue inspirado por los estudios en re-
des neuronales reales que conforman el cerebro, en un intento por resolver
problemas mediante el empleo del conocimiento obtenido en casos simi-
lares resueltos en el pasado. lo que se buscar es emular ciertas cualidades
destacables de las redes neuronales reales de lo cual una computadora es-
tandar no puede realizar ya que estos son sistemas secuenciales y las redes
neuronales trabajan paralelamente.
En esta práctica se propuso un sistema cuyo comportamiento es no lineal,
el cual es un péndulo invertido sobre un carro en movimiento y para este
sistema se debe obtener el modelo matemático, para eso se implementa
el uso de funciones base polinimiales de Volterra (VPBF) por redes neu-
ronales. Para la implementación de este método se consideran datos de
experimentación del sistema el cual entrega una entrada y cuatro salidas
del sistema, las cuatro salidas son correspondientes a la posición angular,
posición lineal, velocidad angular y velocidad lineal; de las cuales utilizar
este metodo de (VPBF), las (VPBF) fueron desarrolladas en MATLAB,
este es un software matemático en el cual se analizan dichos datos del
sistema y las (VPBF) para así obtener el modelo matemático del sistema
no lineal.
1
ÍNDICE
Índice
1. Introducción 4
1.1. Introducción al tema . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Antecedentes del tema . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Desarrollo 7
2.1. Identificación de variables de entrada y salida . . . . . . . . . . . 7
2.2. Obtención de W . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3. Obtención de variables . . . . . . . . . . . . . . . . . . . . . . . . 9
3. Resultados 10
3.1. Salida X1 correspondiente a la posición angular . . . . . . . . . . 10
3.2. Salida X2 correspondiente a la posición lineal . . . . . . . . . . . 11
3.3. Salida X3 correspondiente a la velocidad angular . . . . . . . . . 13
3.4. Salida X4 correspondiente a la velocidad lineal . . . . . . . . . . 14
4. Conclusiones 16
5. Anexos 17
2
ÍNDICE DE FIGURAS
Índice de figuras
1. Péndulo invertido sobre Carro Móvil. . . . . . . . . . . . . . . . . 5
2. Esquema de Neurona. . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Entrenamiento de comparación de la salida X1 (Posición angular). 10
4. Validación de comparación de la salida X1 (Posición angular). . . 11
5. Error en comparación de la salida X1 (Posición angular). . . . . 11
6. Entrenamiento de comparación de la salida X2 (posición lineal). . 12
7. Validación de comparación de la salida X2 (posición lineal). . . . 12
8. Error en comparación de la salida X2 (posición lineal). . . . . . . 13
9. Entrenamiento de comparación de la salida X3 (velocidad angular). 13
10. Validación de comparación de la salida X3 (velocidad angular). . 14
11. Error en comparación de la salida X3 (velocidad angular). . . . . 14
12. Entrenamiento de comparación de la salida X4 (velocidad lineal). 15
13. Validación de comparación de la salida X4 (velocidad lineal). . . 15
14. Error en comparación de la salida X4 (velocidad lineal). . . . . . 15
Índice de listados
3
1. Introducción
1. Introducción
1.1. Introducción al tema
Las Redes Neuronales han recibido un interés particular como una tecnolo-
gía para minería de datos, puesto que ofrece los medios para modelar de manera
efectiva y eficiente los probremas grandes y complejos. Los modelos de Redes
neuronales son dirigidos a partir de los datos, es decir, son capaces de encontrar
relaciones (patrones) de forma indutiva por medio de los algoritmos de apren-
dizaje basado en los datos existentes más que requerir la ayuda de un modelado
para especificar la forma funcional y sus interacciones [1].
Las Redes Neuronales son un método de resolver problemas, de forma individual
o combinadas con otros métodos, para aquellas tareas de clasificación, identifica-
ción, diagnóstico, optimización o predicción en las que el balance datos/conocimiento
se inclina hacia los datos y donde, adicionalmente, puede haber la necesidad de
aprendizaje en tiempo de ejecución y de cierta tolerancia a fallos. En estos casos
las Redes Neuronales se adaptan dinánicamente reajustando constantemente los
pesos de sus interconexiones [2].
Utilice el modelo formado por las cinco funciones base de mayor varianza,
que representan el mejor arreglo de cinco funciones, con el 20 % restante
de los datos para validar el modelo.
4
1.2 Antecedentes del tema
5
1.3 Ecuaciones
1.3. Ecuaciones
6
2. Desarrollo
2. Desarrollo
2.1. Identificación de variables de entrada y salida
Se tienen datos experimentales de los cuales se tiene que:
y se considera que:
l=3 (1)
n=3 (2)
m=2 (3)
Por lo que:
(n + m + l)!
N= = 56 (4)
(n + m)! ∗ (i)!
Se tiene en cuenta que para la práctica el sistema es no lineal y los datos expe-
rimentales se encuentran en un archivo en .xls por lo que en MATLAB se crea
una función para la obtención de dichos datos y así poder obtener:
φ la cual es la matriz de funciones base.
Yaux donde se almacenan los datos reales de la salida del sistema para
cada Xn.
Uaux donde se almacenan los datos reales de la entrada del sistema.
ESTaux la cual es una matriz que sirve como identificador de la estructura
del sistema.
7
2.1 Identificación de variables de entrada y salida
(i) φTi Pj
αjk = , j = 1, 2, ..., k (10)
(Pj )T Pj
k−1
(i)
X
i
Pk = φ i − αjk Pj (11)
j=1
(i)
(i) Y T Pk
Vk = (i) (i)
(12)
(Pk )T Pk
(i) (i)
(i) Vk (Pk )T Y
rk = (13)
Y TY
Y asi de esa forma encontrar:
sk = argmax{rki , i = 1, 2, ..., N, i 6= s1 , ..., i 6= sk−1 } (14)
Y poder utilizar:
k−1
(sk) (s )
X
Pk = P1 = φsk − αjkk Pj (15)
j=1
8
2.2 Obtención de W
2.2. Obtención de W
Se debe realizar la descomposición ortogonal de la matriz φ, almacenando
los datos más relevantes dentro de una matriz Q, la matriz Q será la matriz
ortogonal.
Se crea un vector llamado V e en la cual se almacenarán los argumentos máximos
del vector V . Teniendo estos dos datos lo que se busca es obtener el vector W ,
es decir, el vector de pesos que influyen en la capa de la red neuronal.
9
3. Resultados
3. Resultados
A continuacion se mostrarán los resultados obtenidos en dicha práctica, se
mostrara por cada salida Xn, los datos de entrenamiento, datos de validación,
el error entre datos reales y modelos estimados.
M1 = 1,7918y(t−1)−0,9507y(t−2)−0,0035u(t−2)+0,0017u(t−1)+0,1415y(t−3)
(19)
Las respuestas de la salida X1 son los siguientes considerando datos de entrena-
miento (figura 3), datos de validación (figura 4) y el error entre los datos reales
y los datos del modelo (figura 5).
10
3.2 Salida X2 correspondiente a la posición lineal
M2 = 1,6249y(t−1)−0,4605y(t−2)−0,0041u(t−1)+0,0021u(t−2)−0,1642y(t−3)
(21)
11
3.2 Salida X2 correspondiente a la posición lineal
12
3.3 Salida X3 correspondiente a la velocidad angular
13
3.4 Salida X4 correspondiente a la velocidad lineal
14
3.4 Salida X4 correspondiente a la velocidad lineal
15
4. Conclusiones
4. Conclusiones
Se sabe que el uso de redes neuronales entregan altos grados de aproximación
en el uso de funciones no lineales. Se puede considerar que el modelado no lineal
por redes con polinomios de Volterra (VPBF) son muy efectivos en modelos
no lineales como el modelo del péndulo invertido sobre un carro móvil que
se realizó en esta práctica al haber utilizado datos reales calculados con un
tiempo de muestreo de 50ms con una entrada y cuatro salidas y considerar
que n = 3, m = 2 y l = 3; demostrando que cualquier presición requerida en
la aproximación puede ser alcanzada usando un número adecuado de funciones
base no lineales independientes, en este caso en particular, el uso de las funciones
polinomiales de Volterra.
16
5. Anexos
5. Anexos
Código implementado en Matlab usando Gram Schmidt.
1 %% Limpiar
2 clc
3 clear a l l
4 close a l l
5 %% Datos de l a practica
6 l =3; %Orden de l a e x p a n s i o n p o l i n o m i a l
7 n=3; %r e t a r d o s en y
8 m=2; %r e t a r d o s en u
9 M=3169; % Numero de d a t o s de m u e s t r a s d de l o s d a t o s
10
11 M1 = M∗ 0 . 8 ; %Porc de d a t o s e x p e r i m e n t a l e s para e n t r e n a m i e n t o 80 %
12 M2 = M1+1; %Para o b t e n e r e l p o r c e n t a j e de v a l i d a c i o n 20 %
13 N = f a c t o r i a l ( n+m+l ) / ( f a c t o r i a l ( l ) ∗ f a c t o r i a l ( n+m) ) ; 1
14
15 sum1 = 1 ;
16 [ FHIaux , Uaux , Yaux , ESTaux ] = ObtenerDatos (M, n ,m, l ) ;
17 f h i 1 = FHIaux ( 1 : M1 , : ) ; %Obtencion de d a t o s 80 %
18 f h i 2 = FHIaux (M2:M, : ) ; %Obtencion de d a t o s 20 %
19 Y1 = Yaux ( 1 :M1) ; %Obtencion de d a t o s 80 %
20 Y2 = Yaux (M2:M) ; %Obtencion de d a t o s 20 %
21
22 %% C a l c u l o s
23 f o r k =1:N
24 maxim = −100; %Dato a l e a t o r i o para r e a l i z a r comparacion
25 f o r i =1:N
26 i f k==1
27 P( : , i ) = fhi1 ( : , i ) ;
28 V( i ) = Y1 ’ ∗ P( : , i ) / (P ( : , i ) ’ ∗P ( : , i ) ) ;
29 r ( i ) = V( i ) ^2∗P ( : , i ) ’ ∗P ( : , i ) / (Y1 ’ ∗ Y1) ;
30 i f maxim<r ( i )
31 maxim = r ( i ) ;
32 argmax = i ;
33 end
34 else
35 i f i s e q u a l ( ( i==s ( : ) ) , zeros ( k −1 ,1) )
36 sum2 = 0 ;
37 f o r j =1:k−1
38 a l f a ( j , i ) = f h i 1 ( : , i ) ’ ∗ Pe ( : , j ) / ( Pe ( : , j ) ’ ∗ Pe ( : , j
));
39 sum2 = sum2 + a l f a ( j , i ) ∗Pe ( : , j ) ;
40 end
41 P ( : , i ) = f h i 1 ( : , i )−sum2 ;
42 V( i ) = Y1 ’ ∗ P ( : , i ) / (P ( : , i ) ’ ∗P ( : , i ) ) ;
43 r ( i ) = V( i ) ^2∗P ( : , i ) ’ ∗P ( : , i ) / (Y1 ’ ∗ Y1) ;
44 i f maxim<r ( i )
45 maxim = r ( i ) ;
46 argmax = i ;
47 end
48 end
49 end
50 end
51 R( k ) = maxim ;
52 s ( k ) = argmax ;
17
5. Anexos
53 Pe ( : , k ) = P ( : , s ( k ) ) ;
54 i f k<=10 %N %sum2>e r r o r
55 i f k==1
56 Q( k , k ) = 1 ;
57 else
58 Q( k , k ) = 1 ;
59 FHIaux = [ a l f a ( : , argmax ) ; 1 ] ;
60 Q( : , k ) = FHIaux ;
61 end
62 Ve ( k )=V( argmax ) ;
63 FHI1 ( : , k ) = f h i 1 ( : , argmax ) ;
64 FHI2 ( : , k ) = f h i 2 ( : , argmax ) ;
65 L = k;
66 end
67 sum1 = sum1 − R( k ) ;
68 error ( k ) = sum1 ;
69 end
70 s
71 L
72 sum1
73 e r r = error ’ ;
74 W = inv (Q) ∗Ve ’ ;
75 ye1 = FHI1∗W;
76 ye2 = FHI2∗W;
77 d a t a s = x l s r e a d ( ’ P r a c t i c a 1 ’ ) ;
78 %% T=1:M1 80 %
79 T = d a t a s ( 1 : M1, 1 ) ;
80 subplot ( 3 , 1 , 1 ) , plot (T, ye1 , ’ . ’ ,T, Y1 , ’ g ’ )
81 t i t l e ( ’ Datos de e n t r e n a m i e n t o d e l s i s t e m a ’ ) ;
82 xlabel ( ’ Tiempo ’ ) ;
83 ylabel ( ’ S a l i d a ’ ) ;
84 legend ( ’ Modelo e s t i m a d o ’ , ’ Datos R e a l e s ’ )
85 grid on
86 %% T=M1:M 20 %
87 T1=d a t a s (M2:M, 1 ) ;
88 subplot ( 3 , 1 , 2 ) , plot ( T1 , ye2 , ’ . ’ , T1 , Y2 , ’ g ’ )
89 t i t l e ( ’ Datos de v a l i d a c i à ş n d e l s i s t e m a ’ )
90 xlabel ( ’ Tiempo ’ ) ;
91 ylabel ( ’ S a l i d a ’ ) ;
92 legend ( ’ Modelo e s t i m a d o ’ , ’ Datos R e a l e s ’ )
93 grid on
94 %% E r r o r
95 subplot ( 3 , 1 , 3 ) , plot ( error , ’ b ’ )
96 t i t l e ( ’ E r r o r e n t r e d a t o s r e a l e s y modelo e s t i m a d o ’ )
97 xlabel ( ’ NÞmero de f u n c i o n e s p o l i n o m i a l e s ’ )
98 ylabel ( ’ E r r o r ’ ) ;
99 grid on
18
5. Anexos
9 M = length ( d a t a s ) ;
10 f o r t =1:M
11 u( t ) = datas ( t , 4 ) ;
12 % y ( t ) = d a t a s ( t , 2 ) ; %X1
13 y ( t ) = d a t a s ( t , 6 ) ; %X2
14 % y ( t ) = d a t a s ( t , 3 ) ; %X3
15 % y ( t ) = d a t a s ( t , 5 ) ; %X4
16 i f t==1
17 X = [0 0 0 0 0 ] ;
18 e l s e i f t==2
19 X = [ y ( t −1) 0 0 u ( t −1) 0 ] ;
20 e l s e i f t==3
21 X = [ y ( t −1) y ( t −2) 0 u ( t −1) u ( t −2) ] ;
22 else
23 X = [ y ( t −1) y ( t −2) y ( t −3) u ( t −1) u ( t −2) ] ;
24 end
25 %% Orden de l a e s t r u c t u r a
26 cont = 1 ;
27 f h i ( t , cont ) = 1 ;
28 S t r u c t u r e ( cont , 1 ) = 0 ;
29 S t r u c t u r e ( cont , 2 ) = 0 ;
30 S t r u c t u r e ( cont , 3 ) = 0 ;
31 f o r i =1:S
32 cont = cont + 1 ;
33 f h i ( t , c o n t ) = X( i ) ;
34 S t r u c t u r e ( cont , 1 ) = i ;
35 S t r u c t u r e ( cont , 2 ) = 0 ;
36 S t r u c t u r e ( cont , 3 ) = 0 ;
37 end
38 f o r i =1:S
39 f o r j=i : S
40 cont = cont + 1 ;
41 f h i ( t , c o n t ) = X( i ) ∗X( j ) ;
42 S t r u c t u r e ( cont , 1 ) = i ;
43 S t r u c t u r e ( cont , 2 ) = j ;
44 S t r u c t u r e ( cont , 3 ) = 0 ;
45 end
46 end
47 f o r i =1:S
48 f o r j=i : S
49 f o r k=j : S
50 cont = cont + 1 ;
51 f h i ( t , c o n t ) = X( i ) ∗X( j ) ∗X( k ) ;
52 S t r u c t u r e ( cont , 1 ) = i ;
53 S t r u c t u r e ( cont , 2 ) = j ;
54 S t r u c t u r e ( cont , 3 ) = k ;
55 end
56 end
57 end
58 end
59 u=u ’ ;
60 y=y ’ ;
61 end
19
REFERENCIAS
Referencias
[1] Rodrigo Salas Redes Neuronales Artificiales, Departamento de Compu-
tación, Universidad de Valparaíso.
[2] Andres Nacelle Redes Neuronales Artificiales, Núcleo de ingeniería bio-
médica facultades de medicina e ingeniería, Universidad de la república.
20