You are on page 1of 71

Captulo 12 Redes Neuronales para la Identificacin de Sistemas

12.1. Introduccin Para definir a las Redes Neuronales (RN) debemos tener claras algunas ideas y varios conceptos. Podemos empezar por mostrar el modelo biolgico de una neurona, y describir su funcionamiento como un elemento simple que cuando un umbral es superado por un estmulo de una serie de entradas, se genera una salida. Esto se puede apreciar en la figura a continuacin:

Amp

Una vez definido el modelo biolgico, podemos hablar del modelo artificial o modelo de una neurona artificial (unidad). La neurona artificial estndar es un elemento de procesamiento que calcula una salida multiplicando su vector de entradas por un vector de pesos y este resultado es aplicado a una funcin de activacin, la cual ser definida posteriormente.

Enfoque Prctico del Control Moderno

El modelo de una unidad, se representa por la siguiente ecuacin:

n y = f xk wk + bk k =1
Donde: x w b f() y = vector de entradas = vector de pesos = bias (fija el nivel del umbral) = funcin de activacin = salida

Las funciones de activacin hacen las veces de la funcin umbral de la neurona biolgica. Dentro de las ms conocidas tenemos a las funciones de activacin lineal, tangente hiperblico, sigmoide, signo, umbral, etc. Como ejemplo citaremos algunas: a. Funcin de activacin lineal:

f ( x) = x
5 4 3 2 1 f(x) 0 -1 -2 -3 -4 -5 -5 0 x 5 Activacin Lineal F ti

318

Captulo 12

b.

Funcin de activacin tangente hiperblico:

f ( x)
1 0.8 0.6 0.4 0.2 tanh(x) 0 -0.2 -0.4 -0.6 -0.8 -1 -3 -2

e x ex = tanh( x) = x e + e x

Activacin Tangente Hiperblico F ti

-1

0 x

c.

Funcin de activacin sigmoide o logistic:


f ( x ) = log istic ( x) = ( x ) =
1 0.9 0.8 0.7 Funcin Sigmoide F ti

1 1 + e x

(x)

0.6 0.5 0.4 0.3 0.2 0.1 0 -5 0 x 5

319

Enfoque Prctico del Control Moderno Es importante resaltar que las funciones de activacin ms usadas son la funcin de activacin lineal y la funcin de activacin sigmoide o tambin llamada logistic por su definicin en ingls. Ya con la idea un poco ms clara al respecto de las unidades o neuronas biolgicas y artificiales, podemos definir las Redes Neuronales.

12.1.1. Definicin de las Redes Neuronales: 1ra. Definicin: El trmino Red Neuronal es utilizado para describir varias topologas o estructuras de elementos simples e idnticos de procesamiento altamente interconectados, que ofrecen una alternativa al enfoque tradicional de clculo secuencial. 2da. Definicin: La Red Neuronal es un sistema dinmico no-lineal de grandes dimensiones para procesamiento de datos distribuido en forma paralela, con la potencialidad de mejorar su desempeo a travs de un aprendizaje dinmico. DEFINICION: Las Redes Neuronales son parte de la Inteligencia Artificial (AI) caracterizadas por su capacidad de aprendizaje, su velocidad mediante el procesamiento masivo en paralelo de datos y por la facilidad del modelado de sistemas o controladores altamente no-lineales. 12.1.2. Resea Histrica: En la tabla se puede apreciar la evolucin con el pasar de los aos de las innovaciones en el rea de las redes neuronales. Es fcil observar que existe un periodo (1969-1982) en el cual se suspende la investigacin de las redes en mencin debido a que el simple problema del Or Exclusivo (XOR) no lo podan resolver. Luego de resuelto dicho problema, el trabajo en este campo se incrementa notablemente. AO 1943 1949 1958 1960 1969 1982 1982 1986 AUTOR Mc. Cullohch Pitts Hebb Rosenblatt Widrow Hoff Minsky Papera Hopfield Kohonen Rumerlhart Hinton Williams DESARROLLO Neurona como elemento biolgico. Modificacin Sinptica. Perceptrn. Aprendizaje LMS Adaline. Anlisis de los Perceptrones. Redes de Hopfield. Mapas Auto-Organizados (SOM). Algoritmo de Backpropagation.

12.1.3. Caractersticas de las Redes Neuronales: Las Caractersticas ms importantes de las redes neuronales son las siguientes:
a. b. c. Son dispositivos no-lineales. Pueden aprender un mapeo. Son adaptables.

320

Captulo 12 d. e. f. g. h. i. j. k. Las respuestas estn basadas en evidencia. Usan contexto, es decir, a ms informacin, la respuesta es ms veloz y mejor. Son tolerantes a fallas, o sea, que la falla es degradada. Su diseo y anlisis es uniforme. Tienen analoga neuro-biolgica. Su procesamiento es masivamente paralelo, distribuido y realizado con operaciones individuales simples. Aprenden por s mismas. Tienen capacidad de generalizar.

Sus aplicaciones son prcticamente ilimitadas, pero las ms frecuentes las podemos encontrar en: Representacin de comportamientos de funciones lineales y no-lineales. Identificacin de Patrones o Sistemas. Sistemas de Control. Reconocimiento de Imgenes. Reconocimiento de Caracteres. Reconstruccin de datos. Prediccin y Recomendacin para la Toma de Decisiones. Simulacin de Modelos Econmicos y Financieros. Clasificacin de Objetos. Administracin de Anestesia segn el Comportamiento de la Presin Arterial. Predicciones Climatolgicas.

Se pueden apreciar en las siguientes figuras los patrones de entrenamiento, la red neuronal y las salidas deseadas en la identificacin de caracteres escritos a mano.

El procedimiento para lograr esa identificacin de caracteres sera el de digitalizar la entrada, pasar el carcter digitalizado y obtener la respuesta. Todo esto luego de haber entrenado a la Red Neuronal con un gran nmero de formas de un solo tipo de letras.

321

Enfoque Prctico del Control Moderno

12.2. Aprendizaje
El aprendizaje es la accin de mejorar el comportamiento mediante la observacin de un error pasado con la finalidad de disminuir el error. Eso se produce modificando los pesos de la red neuronal. En las Redes Neuronales existen tres tipos de aprendizaje: a. b. c. Aprendizaje Supervisado. Aprendizaje No-Supervisado. Aprendizaje por Refuerzo.

12.2.1. Aprendizaje Supervisado: Es el aprendizaje producido por el error presentado entre una salida ideal menos una salida actual, de un sistema y una red neuronal respectivamente.
Una muestra de las entradas y las salidas ideales es presentada en forma de matriz como patrones de entrenamiento, tal como se presenta en la tabla: ENTRADAS i12 ... i11 i21 i22 ... ... ... ... ij1 ij2 ... SALIDAS o12 ... o1m o22 ... o2m ... ... ... oj2 ... ojm

CANT. DE PATRON.

i1n i2n ... ijn

o11 o21 ... oj1

Donde j es igual a la cantidad de patrones de entrenamiento, n es la cantidad de entradas i y m es la cantidad de salidas o.

Para una apreciacin mejor veamos la siguiente figura que representa a la red neuronal con sus entradas y sus salidas.

322

Captulo 12 Para la determinacin del error se realiza la diferencia entre la salida ideal del patrn de entrenamiento y la salida de la red neuronal, segn se representa en la figura:

Ejemplos E.12.1: Diferenciar cual de los resultados generaliza mejor. Solucin: Entradas Salidas 001 011 100 111 0 1 0 1 Salida 1 de la RN. 0.1 0.9 0.1 0.9 Salida 2 de la RN. 0.00001 0.99999 0.00001 0.99999

Generaliza bien Generaliza mal (En su debido momento definiremos generalizar)

12.2.2. Aprendizaje No-Supervisado: El aprendizaje no-supervisado es en el cual no es necesario mostrar o disponer de las respuestas correctas para estmulos de entrada definidos. El sistema debe auto-organizarse exclusivamente basndose en los estmulos recibidos en la entrada. En otras palabras, este tipo de aprendizaje intenta obtener propiedades o caractersticas comunes de los datos presentados a las entradas del sistema.

323

Enfoque Prctico del Control Moderno Ejemplo E.12.2: Graficar cmo se vera la clasificacin realizada por una red neuronal dado el siguiente sistema: Entrada 0.1 0.1 0.2 0.3 0.7 0.8 0.9 0.9 1.0 0.1 0.5 0.1 0.8 0.9 0.7 0.7 0.8 1.0 Clase x x o x x o o o x

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Solucin: Luego del entrenamiento se produce una o varias clasificaciones lineales, en el caso del ejemplo se podra apreciar la clasificacin en la figura siguiente:
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Si el aprendizaje es excesivo, es decir, si obtenemos un error aproximadamente de cero (error 0), la red neuronal de clasificacin se convierte en una red neuronal de reconocimiento.

12.2.3. Aprendizaje por Refuerzo: El aprendizaje por refuerzo es un aprendizaje on-line que corresponde al mapeo entrada / salida a travs de un proceso de intento error, maximizando una seal externa llamada robusta o de refuerzo.

324

Captulo 12

La seal de refuerzo o robusta ayuda a minimizar el error inicial mientras que la red neuronal aprende el comportamiento del sistema. Una vez aprendido el comportamiento del sistema, la seal robusta desaparece debido a que tambin es aprendida. Pero, esta seal robusta se volver a activar cuando un nuevo factor no modelado o perturbador aparezca, ello iniciar un nuevo aprendizaje. Ejemplo E.12.3: Plantear una funcin que cumpla con el aprendizaje por refuerzo. Solucin:

u( t ) = f ( t ) + K v r + v(t )
Donde: u(t) f(t) Kvr v(t) = seal de control. = funcin estimada del modelo. = trmino PD. = seal robusta o de refuerzo.

12.2.4. Generalizacin: La generalizacin es una medida de cuan bien se debe comportar la red neuronal una vez terminado su entrenamiento ante datos de entrada nuevos (ver el Ejemplo E.12.1).
La generalizacin es funcin principalmente de: 1. 2. 3. 4. Cantidad de datos para el entrenamiento (patrones). Calidad de la muestra de los patrones de entrenamiento. Complejidad del problema en s mismo. Tamao de la Red.

325

Enfoque Prctico del Control Moderno

12.3. Perceptrn
La capa ms simple de una sola neurona es el perceptrn desarrollado por Frank Rosenblatt en el ao de 1958. En esa poca contaba solamente con dos entradas mientras que ahora se complic su uso, quedando de esta manera.

Donde:

1 y(t ) = ( v ) = 0

v0 v<0

v = xi wi
i =1

Usamos como ejemplo la compuerta lgica Y (AND): Entradas Salidas 0 0 1 1 0 1 0 1 0 0 0 1

326

Captulo 12 As como se ha probado con los valores de: w1 = 0.4, w2 = 0.4 y = 0.5, tambin lo podemos hacer para los siguientes valores: w1 = 0.5 w2 = 0.5 = 0.8 0.3 0.3 0.4 0.1 0.2 0.3 0.4 0.6 0.7 ... ... ...

12.3.1. Separabilidad Lineal: El perceptrn puede representar solamente las funciones que sean linealmente separables. Para lo cual su funcionamiento queda reducido notablemente conforme se va incrementando el nmero de bits de las entradas, tal como se puede apreciar en la tabla:
Funciones Linealmente Separables 14 104 1882 94572 Porcentaje de Trabajo del Perceptrn (%) 87 40 3 0.00002

# de bits 2 3 4 5

Cantidad de Funciones 16 256 65536 10E+09

Nmero de Funciones Linealmente Separables

12.3.2. Teorema del Convergencia del Perceptrn:


Un perceptrn es capaz de aprender todo lo que pueda representar. Por la propiedad de la separabilidad lineal, se gener el cuestionamiento del perceptrn debido a que la sencilla funcin O Exclusivo (XOR) no era posible resolverla.

327

Enfoque Prctico del Control Moderno Compuerta Lgica XOR: Entradas Salidas 0 0 1 1 0 1 0 1 0 1 1 0

En la figura anterior se puede apreciar que el XOR no es linealmente separable ya que requerira de dos lneas para agrupar sus resultados.

12.3.3. Algoritmo de Aprendizaje: A continuacin presentamos el algoritmo que define el aprendizaje en todo sistema:
1. Inicializacin x(o) = xo; 2. Activacin wi = random; Para todo i = 1, 2, 3, ...

y( x ) = ( v )

p = xi wi i =1

donde ( ) es la funcin de activacin. 3. Actualizacin del error y de los pesos Error:

e( k ) = d ( k ) y( k )
e(k) = error en la iteracin k. d(k) = salida deseada en la iteracin k. y(k) = salida actual en la iteracin k. Pesos:

wi ( k +1) = wi ( k ) + e( k ) xi ( k )
= factor de aprendizaje.
4. Condicin de Parada: Si el error es igual o menor al error deseado es igual a fin, si no es as se vuelve al paso N 2.

328

Captulo 12

12.4. MLP (Perceptrn de Mltiple Capa)


Los perceptrones de mltiple capa (MLP) hacen posible resolver problemas no-linealmente separables tales como el O Exclusivo (XOR), con unidades lineales agrupadas en mltiples capas.

Compuerta Lgica XOR: Entradas Salidas 0 0 1 1 0 1 0 1 0 1 1 0

Es importante resaltar que cuando el bias no figura se debe asumir como 1.

12.4.1. Algoritmo LMS: Filtro Adaptivo:

Su funcin es la de encontrar el valor de los pesos que produzcan el menor error posible, aprendiendo del error mnimo medio cuadrtico (LMS).

e=dy

329

Enfoque Prctico del Control Moderno

E=
12.4.2. Criterio de Correccin de Pesos:

1 (d y )2 = 1 e 2 2 2

wo = pesos ptimos = f (E ms pequeos) El criterio procura ubicar los pesos en el menor error posible. El cambio de los pesos es inversamente proporcional al gradiente del error:

wi ( n ) = wi E( n )
wi E ( n ) =
E ( n ) Wi ( n )
E ( n ) Wi ( n )
=

E ( n )

Wi ( n )

E i ei y i ei y i Wi

1 (d i xiWi )2 1 2 = 2(d i x iWi )( x i ) 2 Wi ( n )

E ( n ) Wi ( n )

= (d i x i Wi )( x i ) = e x i

wi E( n ) =

E( n ) = e( n ) xi ( n ) Wi ( n )

330

Captulo 12

12.4.3. Algoritmo:
1. Inicializacin: wi(1) = 0 2. Clculo de la Salida: Para todo i desde 1,..., p.

y( n) = (v )
3. Clculo del Error y de los Pesos: Error:

p = xi wi i =1

e( n ) = d ( n ) y ( n )
e(n) = error en la iteracin k. d(n) = salida deseada en la iteracin k. y(n) = salida actual en la iteracin k. Pesos:

wi ( n+1) = wi ( n ) wi E( n ) wi ( n +1) = wi ( n ) + e( n ) xi ( n )
= factor de aprendizaje.

4.

Condicin de Parada: Si el valor del Error Mnimo Cuadrtico (E) es igual o menor al error deseado es igual a fin, si no es as se vuelve al paso N 2.

12.4.4. MLP ms Popular: El Perceptrn de Mltiple Capa es el ms popular, y dentro de ste una de sus configuraciones es la ms usada. Esta es la Red Neuronal de dos (02) capas donde la primera tiene unidades no-lineales con funciones de activacin sigmoides y la segunda con funciones de activacin lineales. Es necesario que las entradas y las salidas sean escaladas dentro del rango de trabajo de las funciones de activacin de las unidades no-lineales. El algoritmo de entrenamiento es el Backpropagation.
La Estructura del perceptrn antes descrito es la que se muestra en la figura siguiente:

331

Enfoque Prctico del Control Moderno

Para efecto de los pesos, tenemos: W tiene qxr elementos iguales a w(q,r). V tiene pxq elementos iguales a v(p,q). Donde: q = cantidad de unidades de la capa oculta. p = cantidad de entradas o unidades de entrada. r = cantidad de salidas o de unidades de salida. La forma de x e y sera aproximadamente la siguiente: X tiene p elementos de entrada de las formas x(1,p) x(p,1). Y tiene r elementos de salida de las formas y(1,r) y(r,1). Del grfico de la estructura podemos analizar: a. b. Definiendo h- al punto antes de entrar a la capa oculta h: Definiendo h+ al punto despus de la salida de la capa oculta h: h+ = h En la salida de la red y:

h = x V

c. d.

y = h+ W
Reemplazando (b) en (c):

y = h W
332

Captulo 12 e. Reemplazando (a) en (d):

y = ( x V ) W

Es importante resaltar que no es necesario usar el bias.

12.4.5. Criterio de Seleccin de Unidades de la Capa Oculta: Se deber comenzar por un nmero similar al mayor entre la cantidad de entradas y de salidas. Luego se entrenar y se buscar un comportamiento adecuado. Posteriormente se prepara una red con una unidad ms y se vuelve a entrenar. Si el compromiso entre la cantidad de neuronas o unidades de la capa oculta y la cantidad de ciclos o etapas de entrenamiento no es adecuado, se vuelve a entrenar. Cuando el entrenamiento no es sustancialmente diferente, uno deja la cantidad de neuronas anterior y puede decir que ha llegado a obtener el mejor nmero de unidades ocultas.
Ejemplo E.12.4: Dado un sistema que presente 5 unidades de entrada (x) y 2 unidades de salida (y), determinar el mejor nmero de unidades para la capa oculta. Solucin: El nmero inicial de unidades ocultas ser el mximo entre x e y (5 y 2), es decir 5. Se entrena este caso para una seria de patrones definidos previamente y se obtiene que: A los 1000 ciclos o etapas se consigue reducir el error al 3%. Luego, incrementamos una neurona a la capa oculta, es decir de 5 pasa a tener 6 unidades. Se entrena y se llega a este nuevo resultado: A los 703 ciclos o etapas se consigue reducir el error al 3%. Posteriormente, incrementamos una neurona ms a la capa oculta, es decir de 6 pasa a tener 7 unidades. Se vuelve a entrenar y se llegamos a este nuevo resultado: A los 687 ciclos o etapas se consigue reducir el error al 3%. Como la cantidad de ciclos necesaria para obtener el error deseado ha sido casi igual a la anterior. Asumimos que el mejor nmero de unidades para la capa oculta es de 6 neuronas. Cabe resaltar que con siete unidades ocultas el trabajo sera algo ms lento que con seis y sin embargo se tiene el mismo resultado.

333

Enfoque Prctico del Control Moderno

12.4.6. Algoritmo de Aprendizaje de BACKPROPAGATION: El algoritmo de aprendizaje de Backpropagation es una tcnica de optimizacin que procura minimizar una funcin de costo.
La funcin de costo ms usada, pero no nica, es la del error cuadrtico:

J = e2 2 e 2 = ( yd y )
Para comenzar es conveniente tener presenta algunas de las derivadas de las funciones de activacin ms usadas: a. Funcin de Activacin Lineal: Funcin Derivada

( x) = x
b.

d ( x ) dx

=1

Funcin de Activacin No-Lineal Sigmoide o Logistic: Funcin Derivada

( x) =
c.

1 1 + e x

d ( x ) = ( x ) (1 ( x ) ) dx

Funcin de Activacin No-Lineal Tangente Hiperblico: Funcin Derivada


x

( x) =

e e ex + e x

d ( x ) dx

= 1 2( x)

se asume normalmente igual a 1.


Ahora, vamos a entrar a la ecuacin para la actualizacin de pesos ms utilizada por el backpropagation, sta es:

w( N +1) = w( N ) +

J w

w = parmetro a ser actualizado, en nuestro caso el peso. J = funcin de costo. N = nmero de iteraciones ocurridos. = factor de aprendizaje.

334

Captulo 12

Es conveniente recordar que para la situacin ms comn vamos a utilizar el error cuadrtico como funcin de costo.

J e 2 = w w
Para resolver la derivada parcial anterior vamos a recurrir a la regla de la cadena de la siguiente manera:

e 2 e 2 y = w y w
Donde: a. La derivada parcial del error cuadrtico con respecto a la variable de la capa.

e 2 = 2( y d y )
b. La derivada parcial de la variable de la capa con respecto a la salida, la cual ya definimos anteriormente.

c. La derivada parcial de la salida con respecto al peso (parmetro a actualizar).

y g w = =g w w
Donde g es la entrada a la capa del peso a actualizar. El algoritmo es utilizado una vez por cada parmetro a actualizar, en el caso del MLP ms utilizado se usar dos veces, es decir, se usar una vez para el peso W y otra vez para el peso V. Ejemplo E.12.5: Aplicar el Algoritmo de Backpropagation a una red neuronal que tenga funciones de activacin sigmoides en la capa oculta y lineales en la salida. El sistema a ser aprendido tiene dos entradas y una salida. Programar en Matlab sabiendo que contamos con 4 patrones de entrenamiento: x = [ 0.4 0.8 1.3 -1.3 0.7 0.9 1.8 -0.9 ]; yd = [ 0.1 0.3 0.6 0.2 ];

335

Enfoque Prctico del Control Moderno Solucin: Comenzamos a trabajar directamente en Matlab e iremos comentando las consideraciones: % bpt % % Este es el algoritmo de entrenamiento del % backpropagation utilizado en un MLP de capa % funciones de activacin de la capa oculta % sigmoides y de salida lineales. clear all; close all % Inicializando los datos x = [ 0.4 0.8 1.3 -1.3 0.7 0.9 1.8 -0.9 ]; yd = [ 0.1 0.3 0.6 0.2 ]; [entradas,patrones] = size(x); [salidas, patrones] = size(yd); u_ocultas = 6; W1 = 0.1*ones(u_ocultas,entradas+1);% Inicializando la matriz con 0.1 W2 = 0.1*ones(salidas,u_ocultas+1); % Inicializando la matriz con 0.1 maxciclos = 200; Error_Deseado = 0.03; fa = 0.5; sy = size(yd); terminos = sy(1,1)*sy(1,2); X = [ ones(1,patrones) x ]; % Cantidad mxima de cilcos % Mnimo Error deseado % Factor de aprendizaje (lr) % Cantidad de trminos en una salida % del entrenamiento % Aumento del vector x con el bias.

for i = 1:maxciclos h = sigmoide(W1*X); H = [ ones(1,patrones) h ]; e = yd - sigmoide(W2*H); Error(i) = sum(sum(e.^2))/terminos; ciclos(i) = i; if Error(i) < Error_Deseado; break; end y = sigmoide(W2*H); delta2 = y.*(1-y).*e; del_W2 = 2*fa* delta2*H';

336

Captulo 12 W2 = W2 + del_W2; delta1 = h.*(1-h).*(W2(:,2:u_ocultas+1)'*delta2); del_W1 = 2*fa*delta1*X'; W1 = W1 + del_W1; end % Grfica del Error por los Ciclos figure(1) plot(ciclos,Error); title('Entrenamiento de Backpropagation'); xlabel('Ciclos');ylabel('Media del Error Cuadrtico') grid on; zoom on if i < 200; fprintf('El Error Deseado se ha alcanzado en %i ciclos.',i);end Sabiendo que la funcin sigmoide es: function [y] = sigmoide(x); %SIGMOIDE o Logistic, Funcin de Activacin % [y] = sigmoide(x) % x : la entrada % y : la funcin sigmoide de cada una de las entradas % % Devuelve el resultado de aplicar la funcin % sigmoide a la entrada x. y = 1./(1+exp(-x));

12.4.7.

Desarrollo del Algoritmo de Backpropagation para ms parmetros: Intentaremos presentar nuevamente el Algoritmo de Backpropagation, de una manera ms sencilla. Posteriormente el lector deber ordenar los trminos de manera que los rdenes de las matrices sean los apropiados.
Comenzaremos describiendo la red neuronal MLP que utilizaremos:

337

Enfoque Prctico del Control Moderno A simple vista podemos apreciar que es un MLP con una capa oculta y una capa de salida no-lineal con unidades que poseen funcin de activacin sigmoide.

( x) =

1 , donde es igual a 1. 1 + e x

Las ecuaciones que describen el comportamiento de esta Red Neuronal son:

y = ( y )
y = Wh +

h + = (h )
h = Vx La funcin para la Actualizacin de los Parmetros de Backpropagation es:

p (i +1) = p ( i ) +

J p
p

donde:

= parmetro a actualizar. = factor de aprendizaje. = funcin de costos.

La funcin de costos utilizada es:

J=E
donde:

1 2 e 2 e = yd y E=

1.

Aplicacin del Algoritmo para el peso W:

W(i +1) = W( i ) +

J W

por la regla de la cadena, podemos descomponer la derivada parcial en:


J J E e y y = W E e y y W

Sabemos que cada una de las derivadas parciales es:


y y J E 1 e , , , = y (1 y ) , = h + = (Vx ) =1 = 2e = e = 1 y W E e 2 y

338

Captulo 12

Para el caso de la derivada parcial continuacin:

y = y (1 y ) , la demostraremos a y

( x ) d (1 + e x ) 1 y = x dx y

(x)

x ( x )

= 1 (1 + e

) 2 ( )e

x
( x ) x

1 1 1 + e x = = (1 + e x ) 2 1 + e x 1 + e x

e x

1 + e x 1 = ( x ) = ( x ) 1 ( x ) x 1 + e x 1 + e ( x ) = ( x ) 1 ( x ) x

Por lo tanto, al reemplazar quedara la siguiente expresin:

J = 1 e(1) y[1 y ] (Vx ) W J = e y [1 y ] (Vx ) W


De esta manera, la actualizacin del peso W, sera:

W( i +1) = W(i ) e y [1 y ] (Vx )


2. Aplicacin del Algoritmo para el peso V:

V( i +1) = V(i ) +

J V

por la regla de la cadena, podemos descomponer la derivada parcial en:


J J E e y y h + h = V E e y y h + h V

Donde sabemos que cada una de las derivadas parciales es: y e J E 1 =1, = 2e = e , = 1 , = y (1 y ) , y E e 2 y

y =W , h +

h + = h + (1 h + ) , h

h =x V

339

Enfoque Prctico del Control Moderno

Por lo tanto:

J = 1 e(1) y[1 y ] W h + [1 h + ]x V J = e y[1 y ] W (Vx ) [1 (Vx ) ]x V

De esta manera, la actualizacin del peso V, sera:

V( i +1) = V(i ) e y[1 y ] W (Vx ) [1 (Vx ) ]x


12.4.8. Mnimos Locales y Mnimos Globales: Los mnimos locales son mnimos de un rango determinado de una funcin, mientras que el mnimo global es el mnimo de la funcin, se puede decir que es el mnimo de todos los mnimos locales.

En la figura anterior podemos apreciar que los puntos 1, 2, 3 y 4 son mnimos locales pero que a su vez el punto 2 es el mnimo global. Cuando al entrenar una red neuronal se cae en un mnimo local, lo ms probable es que nunca se llegue al error mnimo deseado. Este problema de caer en un mnimo local se soluciona adicionando una neurona a la capa oculta, y a su vez para llegar mejor e ese mnimo se puede hacer que el factor de aprendizaje sea adaptivo. Para que el factor de aprendizaje sea adaptivo se debe colocar la condicin de que si el error actual es mayor que el anterior, no se deben modificar los parmetros y el factor de aprendizaje se multiplica por un nmero sustancialmente menor que cero. Si el error actual es menor que el anterior, se deben modificar los parmetros y el factor de aprendizaje se multiplica por un nmero ligeramente mayor que cero.

340

Captulo 12

12.4.9. Mejoras en el Algoritmo de Backpropagation:


a. Adicin del Elemento Momento o Momentum:

wi ( n +1) = wi ( n ) +
Donde:

J wi

- es el factor de momento y normalmente es ligeramente menor que 1. - es el factor de aprendizaje y normalmente es ligeramente mayor que cero.

b.

Inicializacin: Los pesos se deben inicializar con valores pequeos obtenidos por una distribucin uniforme. Se debe evitar la existencia de unidades que comiencen a trabajar en saturacin. Se debe escalar las entradas y desescalar las salidas.

c.

Funciones de Activacin: El algoritmo trabaja mejor si la funcin de activacin () es asimtrica, tal como las funciones de activacin antes descritas: lineal, sigmoide y tangente hiperblico.

( v ) = ( v )
d. Patrones: e. Deben tener valores que estn dentro del sector de trabajo y no de saturacin de las funciones de activacin. Del mismo modo, los valores deben ser mayores que el valor del error deseado. Los patrones de entrenamiento deben presentarse desordenados y normalmente distribuidos, nunca en forma ordenada.

Generalizacin: Es importante evitar el sobreentrenamiento, para poder representar correctamente una entrada diferente a cualquiera de los patrones luego del entrenamiento.

12.5. Escalamiento
El escalamiento es la transformacin de un conjunto de datos en un rango determinado, a otro rango mayor o menor que mantenga relacin entre la informacin guardada en sus relaciones matemticas, pudiendo inclusive variar el inicio del nuevo rango.

341

Enfoque Prctico del Control Moderno

El escalamiento puede ser lineal o no lineal, siendo el ms usado el primero. El escalamiento lineal responde a la frmula siguiente: y = m x +b donde:
x = datos iniciales. m = nueva pendiente. b = desplazamiento. y = datos de salida.

La intencin es concentrar los datos en un rango prefijado y desplazarlos hasta el origen deseado. Ejemplo E.12.6: Escalar el siguiente conjunto de datos, en un rango de 0.1 a 0.9. x = 2, 5, 3, 8, 19 Solucin: a. Determinamos el rango original de los datos: Rango_actual = max(x) min(x) Rango_actual = 19 2 = 17 Determinamos el rango de destino de los datos: Rango_destino = 0.9 0.1 = 0.8 Calculamos la pendiente del escalamiento: m = Rango_destino / Rango_actual m = 0.8 / 17 = 0.0471 m Fijamos el valor de b para que coincida con el origen del nuevo rango: b = 0.1 - m min(x) b = 0.1 - 0.0471*2 b = 0.0059 Aplicamos la ecuacin de escalamiento: y = m x +b y = 0.0471x + 0.0059 X 2 5 3 8 19 y 0.1000 0.2412 0.1471 0.3824 0.9000

b. c.

d.

e.

342

Captulo 12 Tambin podemos aplicar la siguiente funcin general en Matlab:


function [y,m,b]=escala(x,intervalo,valormenor) % [y,m,b]=escala(x,intervalo,valormenor) % % Escalamiento lineal entre valores a ser definidos % por defecto se escala a un intervalo de 0.8 que comienza de % el valor 0.1. % % y = m*x + b % %x = datos a ser escalados. % intevalo = rango de datos final. % valormenor = valor menor de datos escalados. if nargin == 1 intervalo valormenor end = 0.8; = 0.1;

del = max(x) - min(x); m = intervalo./del; b = valormenor - m.*min(x); y = m.*x + ones(size(x))*b;

12.6. Validacin Cruzada


Debido a que no se puede determinar si una red neuronal a generalizado bien o no, es conveniente validar o comprobar su entrenamiento. Para ello, del total de patrones disponibles para el entrenamiento se deben reservar de un 10 a 20 % para la validacin cruzada, los dos grupos de patrones, el de entrenamiento y el de validacin deben estar distribuidos normalmente.

343

Enfoque Prctico del Control Moderno

El entrenamiento se detiene cuando el error en el conjunto de validacin comienza a crecer. En ese punto se llega a la mejor generalizacin.

12.7. Reglas de Baum y Hausster


La relacin existente entre la cantidad de elemento de una capa y la precisin deseada nos entrega una cantidad mnima de patrones requerida.

N>
Donde:

N es la cantidad de patrones. W es la cantidad de elementos de los pesos. es la precisin deseada.

Del mismo modo, si tenemos una cantidad de patrones definida, tenemos establecidas las entradas y las salidas de la red, y deseamos cierta precisin, podemos establecer la cantidad de unidades de la capa oculta.

N > W

Recordemos que las dimensiones del peso W estn en funcin a las unidades de la capa oculta.

12.8. Redes de Funcin de Base Radial


Las Redes de Funcin de Base Radial (RBF) son utilizadas como un aproximador universal de funciones. Su arquitectura es diferente a la de los perceptrones de mltiple capa. Primero examinaremos la arquitectura del RBF y luego examinaremos las diferencias con la del MLP.

344

Captulo 12

Las redes de funcin de base radial son de dos capas que tienen diferentes tipos de neuronas en la capa oculta, la cual se encarga de realizar un mapeo local del espacio de entrada y sus campos receptores. Las neuronas de la capa oculta son neuronas de funcin de base radial cuya funcin de activacin, en el mayor de los casos, es la funcin gaussiana (g(x)).
x u j

)2

g j ( x) = e

2 j

Donde:
x es al vector de entrada. uj es el centro de la regin llamada campo receptor. j es el alcance del campo receptor. gj(x) es la salida de la jsima neurona.

Cada funcin de activacin de cada neurona se encuentra centrada sobre un campo receptor.

La ltima capa es de neuronas lineales y sus pesos se actualizan mediante el error mnimo cuadrtico del backpropagation. Tal como en los casos anteriores, se pueden utilizar o no los valores del bias. El aprendizaje utilizado es de tipo supervisado.

345

Enfoque Prctico del Control Moderno

12.8.1. Aprendizaje de los Centros, Alcances y Pesos de las RBF: El algoritmo de aprendizaje de las redes de funcin de base radial difiere un poco ya que se busca mejorar los centros y alcances de las neuronas en lugar de optimizar los pesos.
a. El aprendizaje de los centros: Se pueden colocar fijos todo iguales o todos diferentes, la opcin es pobre y carece de aprendizaje de centros. Colocar los centros en forma aleatoria y actualizar basndose en:

ui ( n +1) = ui ( n ) +
b. El aprendizaje de los alcances: -

Se pueden inicializar fijos todo iguales o todos. Actualizar basndose en:

i ( n +1) = i ( n ) +
c. El aprendizaje de los pesos de la ltima capa: Se deben inicializar en forma aleatoria. Actualizar basndose en:

wi ( n +1) = wi ( n ) +

Ejemplo E.12.7: Disear y entrenar una red neuronal RBF para aproximar la siguiente funcin:

y = 0.05x 3 0.2 x 2 3x + 20
Solucin: Para solucionar el problema, estructuraremos una RBF de 7 unidades ocultas con centros en -8, -5, -2, 0, 2, 5, 8 y un ancho de la funcin de 6.
clear all; close all disp('Veremos la Funcin Mexican Hat.') disp(' ') disp('Pulse una tecla para continuar') pause

346

Captulo 12
x=[-3:.1:3]'; y=gaussian(x,0,1); % Rango de Entrada. % Funcin de Base Racial con centro en 0.

figure(1) plot(x,y); % con un ancho de 1. grid; xlabel('Entrada');ylabel('Salida') title('Neurona de Base Radial')

La figura que representa a la Funcin de Activacin de una Neurona de Funcin de Base Radiales la Gausiana:
Neurona de Base Radial 1 0.9 0.8 0.7 0.6 Salida 0.5 0.4 0.3 0.2 0.1 0 -3 -2 -1 0 Entrada 1 2 3

disp('Ahora veremos la funcin a ser aprendida.') disp(' ') disp('Pulse una tecla para continuar') pause clear all x=[-10:1:10]'; y=.05*x.^3-.2*x.^2-3*x+20; figure(2) plot(x,y); xlabel('Entrada'); ylabel('Salida'); title('Funcion a ser aproximada') % Entradas. % Salida deseada.

347

Enfoque Prctico del Control Moderno La funcin a ser aproximada es la siguiente:


Funcion a ser aproximada 30 25 20 15 10 Salida 5 0 -5 -10 -15 -20 -10 -8 -6 -4 -2 0 Entrada 2 4 6 8 10

width=6; w1=[-8 -5 -2 0 2 5 8]; num_w1=length(w1); a1=gaussian(x,w1,width); w2=inv(a1'*a1)*a1'*y; pesos.

% Ancho de la funcin de base radial. % Centro de los Campos. % Cantidad de Campos. % Salidas de la Capa oculta. % Pseudo inversa para la solucin de salida de

test_x=[-15:.2:15]'; % Entradas de prueba. y_target=.05*test_x.^3-.2*test_x.^2-3*test_x+20; % Salidas de prueba. test_a1=gaussian(test_x,w1,width); % Salidas de la capa oculta. yout=test_a1*w2; % Salida de la Red Neuronal. disp('A continuacin est el resultado de la Red.') disp(' ') disp('Pulse una tecla para continuar') pause plot(test_x,[y_target yout]); title('Probando la Red RBF') xlabel('Entrada') ylabel('Salida')

348

Captulo 12 Ahora podemos comparar la funcin original y la representada por la Red Neuronal (RBF).
Probando la Red RBF 100

50

0 Salida -50 -100

Deseado RBF

-150 -15

-10

-5

0 Entrada

10

15

Con estos resultados, vemos que el comportamiento de nuestra red RBF es bueno para el rango de -9.5 hasta 10. Se puede seguir varias pruebas teniendo en cuenta que nuestra RBF no est entrenando, como por ejemplo: a. b. c. Cambiando el centro de los campos a: 0, 1, 4, 10, 20, 30 y 100. Probando con anchos muy pequeos como 0.2. Probando con anchos muy grandes como 200.

12.8.2. Comparacin de los Modelos RBF y MLP:


a. b. c. Una RBF tiene una sola capa oculta, mientras que el MLP puede tener ms de una capa oculta. Todas las unidades de un MLP realizan una tarea similar. En la RBF la tarea y la forma de cada unidad oculta es completamente distinta. En un RBF, la capa oculta y la de salida son no-lineal y lineal respectivamente. En el MLP la capa de salida puede ser no-lineal y la oculta puede ser lineal, indistintamente. Las unidades ocultas de una RBF calculan una distancia euclidiana mientras que en un MLP calculan un producto interior.

d.

349

Enfoque Prctico del Control Moderno e. f. g. El MLP es un aproximador global de funciones mientras que el RBF es un aproximador local de funciones. El RBF es ms rpido en su entrenamiento y en sus rangos de operacin es ms potente que el MLP. El MLP requiere de menos clculos para obtener una respuesta y tambin requiere menos patrones de entrenamiento para lograr una buena generalizacin.

12.9. Redes Competitivas


Generalmente, estas redes de aprendizaje competitivo son redes de una sola capa, pero existen muchas variantes multicapa. Por ahora nos ocuparemos simplemente de las de una capa. Estas redes se caracterizan por extraer las similitudes de los vectores de entrada y las agrupan o categorizan en conjuntos especficos. Estos vectores de entrada similares, activarn a la misma unidad o neurona. Estas redes son muy usadas en problemas de cuantificacin y de compresin de datos. Las redes neuronales artificiales que usan el aprendizaje competitivo tienen solamente una salida activada por vez. Las salidas compiten por ser la nica en activarse, su algoritmo es:
y = wil x l = w i x
l

donde:

i = ndice de la salida l = ndice de la entrada

Los pesos entre las entradas y las salidas (wil) son escogidos inicialmente como valores aleatorios pequeos bajo una distribucin normal. Cuando comienza en el entrenamiento, el vector de entrada (x) busca al vector de pesos (wi*) ms prximo a s mismo.
w* x wi x i

El vector de pesos ms cercano se actualiza y se hace ms prximo an al vector de entrada. La relacin de cambio del vector de pesos est dado por el factor de aprendizaje .
* wij = (

x
j

xj

wij )
j

El entrenamiento comprende la aplicacin repetitiva de los vectores de entrada a la red en un orden aleatorio. Los pesos son actualizados continuamente en cada ciclo. Este proceso puede continuar cambiando los pesos siempre; por ello el factor de aprendizaje es reducido cuando el entrenamiento va progresando hasta que no se percibe ningn cambio

350

Captulo 12 sustancial. Esto hace que los vectores de pesos (+) sean centrados en los grupos de los vectores de entrada (*), tal como se muestra en las figuras a continuacin:

* * +* * * * * + + * ** * + * * * *
Antes del Entrenamiento Before Training

* + * * +* * * * * +* *+* * * * *
Despus del Entrenamiento A fter Training

Generalmente, estas redes de aprendizaje competitivo son redes de una sola capa, pero existen muchas variantes multicapa. Por ahora nos ocuparemos simplemente de las de una capa. Estas redes se caracterizan por extraer las similitudes de los vectores de entrada y las agrupan o categorizan en conjuntos especficos. Estos vectores de entrada similares, activarn a la misma unidad o neurona. Estas redes son muy usadas en problemas de cuantificacin y de compresin de datos.

12.9.1. Implementacin de una Red Competitiva: Una red competitiva de una capa posee solamente una neurona de salida active por cada vez. Esta salida corresponde a la neurona cuyos pesos se encuentran ms prximos al vector de entrada.

Ejemplo E.12.8: Supongamos que tenemos tres vectores de pesos almacenados en una red competitiva. La salida de la red para un vector de entrada est encontrada por el siguiente procedimiento:
w=[1 1; 1 -1; -1 1]; % Centros de los Grupos. x=[1;3]; % Entradas a ser clasificadas. y=compete(x,w); % Clasificacin. plot(w(:,1),w(:,2),'*') hold on plot(x(1),x(2),'+') hold on plot(w(find(y==1),1),w(find(y==1),2),'o') title('Red Competitiva') xlabel('Entrada 1');ylabel('Entrada 2') axis([-1.5 1.5 -1.5 3.5])

351

Enfoque Prctico del Control Moderno

Red Competitiva 3.5 3 2.5 2 1.5 Entrada 2 1 0.5 0 -0.5 -1 -1.5 -1.5 -1 -0.5 0 Entrada 1 0.5 1 1.5

Describir qu ha sucedido. Solucin: En este ejemplo lo que sucede grficamente es lo siguiente:

Donde el procedimiento matemtico es: min_dist_1 = sum( ( [ 1 3 ] [ 1 1 ] ) .^ 2 ) min_dist_1 = sum( ( [ 0 2 ] ) .^ 2 ) min_dist_1 = sum( 0 4 ) min_dist_1 = 4 min_dist_2 = sum( ( [ 1 3 ] [ 1 -1 ] ) .^ 2 ) min_dist_2 = sum( ( [ 0 4 ] ) .^ 2 ) min_dist_2 = sum( 0 16 ) min_dist_2 = 16 min_dist_3 = sum( ( [ 1 3 ] [ -1 1 ] ) .^ 2 ) min_dist_3 = sum( ( [ 2 2 ] ) .^ 2 ) min_dist_3 = sum( 4 4 ) min_dist_3 = 8 min_dist = min( [ min_dist_1 min_dist_2 min_dist_3 ] ) 352

Captulo 12 min_dist = min( [ 4 min_dist = 4 16 8])

El par ganador correspondiente a esta distancia es el que se activa: [ 1 1 ], tal como se ve en la figura del enunciado. Ejemplo E.12.9: Supongamos que tenemos 11 vectores de entrada (11x2) en tres grupos de datos, donde las salidas sern w (3x2). 8 5 5 1 1.2 1.5 3 4 9.5 1.1 9 x= 6 0.5 1 2 3.3 5 2.7 3.7 1.1 1.2 5 Elaborar un programa que clasifique o agrupe a estos datos. Solucin: Con el siguiente programa entrenaremos 20 ciclos con un factor de aprendizaje de 0.8 y con pesos iniciales aleatorios.
clear all close all x = [ -1 5; -1.2 6; -1 5 .5; 3 1; 4 8 3.7; 5 1.1; 5 1.2 ]; 2; 9.5 3.3; -1.1 5; 9 2.7;

figure(1) plot(x(1,:),x(2,:),'*'); title('Datos de Entrenamiento'); xlabel('Entrada 1'); ylabel('Entrada 2');

Las respuestas las tenemos en los siguientes grficos:


Datos de Entrenamiento 6 5.5 5 4.5 4 Entrada 2 3.5 3 2.5 2 1.5 1 -2 0 2 4 Entrada 1 6 8 10

353

Enfoque Prctico del Control Moderno


w=rand(3,2); a=0.8; w=trn_cmpt(x,w,a,20);

% Factor de aprendizaje y olvido. % Entrenamiento de 20 ciclos.

figure(2) plot(x(1,:),x(2,:),'k*'); title('Datos de Entrenamiento + Unidades sin entrenar') axis([ -2.5 10.5 -0.5 6.5]) xlabel('Entrada 1') ylabel('Entrada 2') hold on plot(w(:,1),w(:,2),'o') hold off disp('Hay una neurona muerta!') disp('Vamos a agregarle bias para mejorar el aprendizaje.') disp(' ' ) disp('Pulse una tecla para continuar'); pause
Datos de Entrenamiento + Unidades sin entrenar 6

4 Entrada 2

0 -2 0 2 4 Entrada 1 6 8 10

Hay una neurona muerta! Vamos a agregarle bias para mejorar el aprendizaje. Pulse una tecla para continuar
Al decir neurona muerta, nos referimos a una neurona que no ha servido durante el entrenamiento y que no tiene funcin alguna para la clasificacin. Vamos a agregarle bias al sistema con la finalidad de hacer trabajar a esta neurona.
dimension=2; grupos=3; w=rand(grupos,dimension); % Dimensin del Espacio de Entrada. % Nmero de grupos a clasificar. % Inicializacin de pesos.

354

Captulo 12
b=.1*ones(grupos,1); a=0.8; ciclos=5; w=trn_cptb(x,w,b,a,ciclos); % Inicializacin de bias. % Factor de aprendizaje y de olvido. % 5 Ciclos de Entrenamiento. % Entrenamiento de la Red.

figure(3) plot(x(1,:),x(2,:),'k*') title('Datos de Entrenamiento Entrenado'), xlabel('Entrada 1'); ylabel('Entrada 2') axis([ -2.5 10.5 -0.5 6.5]); hold on plot(w(:,1),w(:,2),'o') hold off
Datos de Entrenamiento Entrenado 6

4 Entrada 2

0 -2 0 2 4 Entrada 1 6 8 10

La neurona RESUCIT y se encuentra clasificando a un grupo de patrones.

12.10. Mapas Autoorganizados (Self Organized Feature Map)


Los Mapas Autoorganizados o Redes de Kohonen, son redes cuya intencin es mapear o proyectar un vector de entrada multidimensional sobre un patrn de una o dos dimensiones, siendo las ltimas las ms usada.

X x1 x2 xn

De esta figura podemos decir: Si x1 es parecida a x2 Si x1 no es parecida a x2 entonces entonces estarn cerca. estarn lejos. 355

Enfoque Prctico del Control Moderno

Solamente competirn los pesos prximos. El algoritmo de aprendizaje de Kohonen es:

w = ( x wi )

para wi cerca de x i .

Dentro de las propiedades ms importantes de los Mapas Autoorganizados, tenemos: a. b. c. d. e. f. g. h. i. j. La Unidad ganadora es la que tiene el vector de pesos ms cercano al vector de entrada. Los pesos de esta unidad y su vecindario se actualizan para hacerlos ms parecidos al vector de entrada. Las respuestas de activacin se asemejan a burbujas frente a las entradas. Los vectores de pesos se convierten en aproximaciones de los vectores de entrada. Los vectores de pesos vecinos se asemejan. El mapa completo se transforma en un mapa ordenado del espacio de entrada. Permite proyectar espacios de muchas dimensionesen espacios ms simples. Aproxima el espacio de entrada. Es topolgicamente ordenado. Tiene en cuenta la densidad.

12.10.1. Algoritmo de Entrenamiento:


1. 2. 3. Inicializacin: Se eligen valores aleatorios de los pesos. Muestreo: Se selecciona un vector de entrada x. Se busca la unidad ganadora mediante el criterio de la mnima distancia. Cuando i(x) tiende a CERO (0):
i( x ) = arg j (min[ xn w j ]) para un tiempo n.

4.

Actualizacin de los pesos:

j i( x ) (n ) w j (n ) + (n ) [x(n ) w(n ) ], w j (n +1) = w j (n ) , en _ otro _ caso donde es la unidad ganadora y su vecindario.


5. Retornar hasta el paso 2, hasta que el cambio no sea perceptible.

356

Captulo 12

Unidad Ganadora Vecindario del


La funcin de activacin de este tipo de redes, es la conocida como Sombrero Mexicano o Mexican Hat. 2 2 z = (1 x 2 + y 2 )e 0.8( x + y )
Mexican Hat Function

1 0.5 0 30 20 10 0 0 10 30 20

Ejemplo E.12.10: Definir la proyeccin o mapeo de un sistema de dos dimensiones a un sistema de una sola dimensin de cinco unidades de salida.

x1 x2

1 2 3 4 5

357

Enfoque Prctico del Control Moderno Solucin: Para este ejemplo, prepararemos 18 pares de entradas, lo cual puede tomar algo de tiempo. Hemos seleccionado los que figuran como patrones x.
x=[1 2;8 9;7 8;6 6;2 3;7 7;2 2;5 4;3 3;8 7;4 4; 7 6;1 3;4 5;8 8;5 5;6 7;9 9]'; plot(x(1,:),x(2,:),'*'); title('Datos de Entrenamiento') xlabel('Entrada 1') ylabel('Entrada 2'); b=.1*ones(5,1); % Bias iniciales pequeos. w=rand(5,2); % Inicializacin de los pesos en forma aleatoria. tp=[0.7 20]; % Factor de aprendizaje y nmero mximo de iteraciones. [w,b]=kohonen(x,w,b,tp); % Entrenamiento de un mapa autoorganizado. ind=zeros(1,18); for j=1:18 y=compete(x(:,j),w); ind(j)=find(y==1); end [x;ind]

A lo que el Matlab responde con: ans = Columns 1 through 12 1 8 7 6 2 7 2 9 8 6 3 7 1 5 4 3 1 4 Columns 13 through 18 1 4 8 5 6 9 3 5 8 5 7 9 1 2 5 3 4 5


9

2 2 1

5 4 2

3 3 1

8 7 4

4 4 2

7 6 4

Datos de Entrenamiento

Entrada 2

5 Entrada 1

358

Captulo 12 Para poder observar el orden de las clasificaciones, usaremos diferentes smbolos en su ploteo.
clg plot(w(:,1),w(:,2),'+') hold on plot(w(:,1),w(:,2),'-') hold on index=find(ind==1); plot(x(1,index),x(2,index),'*') hold on index=find(ind==2); plot(x(1,index),x(2,index),'o') hold on index=find(ind==3); plot(x(1,index),x(2,index),'*') hold on index=find(ind==4); plot(x(1,index),x(2,index),'o') hold on index=find(ind==5); plot(x(1,index),x(2,index),'*') hold on axis([0 10 0 10]); xlabel('Entrada 1'), ylabel('Entrada 2'); title('Salida del Mapa Autoorganizado'); hold off
Salida del Mapa Autoorganizado 10 9 8 7 6 Entrada 2 5 4 3 2 1 0 0 1 2 3 4 5 6 Entrada 1 7 8 9 10

La apariencia de la ltima figura nos indica que la red no solamente ha agrupado los datos, sino que tambin ordena los grupos uno a continuacin del otro. El uso de los mapas autoorganizados preserva la topografa de los datos. 359

Enfoque Prctico del Control Moderno

12.11. Redes de Hopfield


Las redes de Hopfield se caracterizan por ser redes recurrentes que pueden almacenar patrones a travs de dinmicamente estables. Tambin se les conoce como memorias asociativas o memorias direccionales por su contenido. Su funcin principal es la de reconstruccin de patrones o, dicho de otra manera, correccin de errores. Su estructura responde a las siguientes funciones:
v j = wij s i j
i =1 N

+1 s j = 1 anterior

vj > 0 vj < 0 vj = 0

y al siguiente esquema:

sj

s1

12.11.1. Desarrollo del Algoritmo de Trabajo:


1. Almacenamiento: Dados los patrones { / = 1,2,... p} , para almacenarlos, se obtienen los pesos a partir de la siguiente frmula:
1 w ji = N


=1 j

ji

j=i donde N es la cantidad de unidades.

2.

Recuperacin: a. Se debe presentar el patrn x incompleto o con ruido. b. Inicializamos s j ( 0 ) = x j , j = 1,2,..., N . Iteracin hasta la convergencia: Se deben actualizar los elementos del vector de estado s en forma aleatoria, de la siguiente manera:

3.

360

Captulo 12 N s j ( n +1) = signo w ji si ( n ) i =1 donde la funcin signo entrega el signo del argumento. Repetir hasta que no haya cambios en el vector s, es decir hasta que s ( n +1) = s ( n ) . 4. Salida (y): El vector de la salida y es el valor de estado estable obtenido en s, o sea y = s ( n +1)

Ejemplo E.12.11: Disear una Red de Hopfield que aprenda a reconstruir los siguientes patrones: P1 = (1,1,1) P 2 = ( 1,1,1) Solucin: Para comenzar debemos calcular los pesos mediante la forma descrita en el punto (1) del algoritmo. Vale la pena aclarar lo siguiente. En la expresin patrn. Comenzando los clculos tenemos:

a , es el patrn y a es el elemento del

w11 = 0 w12 = w12 w13 w13 1 [( 11 )( 12 ) + ( 21 )( 22 )] 3 1 2 = [(1)(1) + (1)(1)] = 3 3 1 = [( 11 )( 13 ) + ( 21 )( 23 )] 3 1 2 = [(1)(1) + (1)(1)] = 3 3 1 = [(12 )(11 ) + ( 22 )( 22 )] 3 1 2 = [(1)(1) + (1)(1)] = 3 3 =0

w21 w21 w22

1 [(12 )(13 ) + ( 22 )( 23 )] 3 1 2 w23 = [(1)(1) + (1)(1)] = 3 3 w23 =

361

Enfoque Prctico del Control Moderno w31 = w31 w32 w32 w33 1 [(13 )(11 ) + ( 23 )( 21 )] 3 1 2 = [(1)(1) + (1)(1)] = 3 3 1 = [(13 )(12 ) + ( 23 )( 22 )] 3 1 2 = [(1)(1) + (1)(1)] = 3 3 =0

Con estos resultados armamos la matriz de pesos: u1 u 2 u 3 2 u 0 2 3 3 1 W = 2 2 u2 0 3 2 3 2 0 u3 3 3 Ahora, ya comenzamos. Primero con una iteracin con un patrn conocido para ver que se nada cambia en esa iteracin. Asumimos el patrn P1 = (1,-1,1). Condiciones iniciales: u1( 0 ) = 1
u 2 ( 0) = 1 u 3( 0 ) = 1

1
u1

-2/3 -2/3

2/3

u2

u3

-1
1ra. Iteracin:

362

Captulo 12
u1(1) = signo((2 / 3)(u 2 ( 0 ) ) + (2 / 3)(u 3( 0 ) )) = signo ((2 / 3)(1) + (2 / 3)(1)) = signo (4 / 3) = 1 u 3(1) = signo ((2 / 3)(u1(1) ) + (2 / 3)(u 2 ( 0 ) )) = signo ((2 / 3)(1) + (2 / 3)(1)) = signo (4 / 3) = 1 u 2 (1) = signo ((2 / 3)(u1(1) ) + (2 / 3)(u 3(1) )) = signo ((2 / 3)(1) + (2 / 3)(1)) = signo (4 / 3) = 1

1 1
u1

-2/3 -2/3

2/3

u2

u3

-1

-1

1 1

El nuevo patrn es P1 = (1,-1,1), es decir que no hubo cambio. Esto es lo que se quera demostrar. Para este nuevo caso, utilizaremos el otro patrn para el ejemplo: P2 = (-1,1,-1) Condiciones iniciales: u1( 0 ) = 1
u 2( 0) = 1 u 3( 0 ) = 1

-1
u1

-2/3 -2/3

2/3

u2

u3

-1

363

Enfoque Prctico del Control Moderno 1ra. Iteracin:


u 3(1) = signo((2 / 3)(u1( 0 ) ) + (2 / 3)(u 2 ( 0 ) )) = signo((2 / 3)(1) + (2 / 3)(1)) = signo(4 / 3) = 1 u 2 (1) = signo((2 / 3)(u1( 0) ) + (2 / 3)(u 3(1) )) = signo((2 / 3)(1) + (2 / 3)(1)) = signo(4 / 3) = 1 u1(1) = signo((2 / 3)(u 2 (1) ) + (2 / 3)(u 3(1) )) = signo((2 / 3)(1) + (2 / 3)(1)) = signo(4 / 3) = 1

-1 -1
u1

-2/3 -2/3

2/3

u2

u3

1 -1

El nuevo patrn es P2 = (-1,1,-1), es decir que no hubo cambio. Esto es lo que se quera demostrar. Ahora, con un valor completamente diferente vamos a ver como reconstruye o corrige los errores. Para ello, proponemos trabajar con el Patrn P = (-1,-1,-1). Condiciones iniciales:
u1( 0 ) = 1 u 2 ( 0) = 1 u 3( 0 ) = 1

-1
u1

-2/3 -2/3

2/3

u2

u3

-1

-1

364

Captulo 12 1ra. Iteracin:


u1(1) = signo((2 / 3)(u 2 ( 0) ) + (2 / 3)(u 3( 0 ) )) = signo((2 / 3)(1) + (2 / 3)(1)) = signo(0) = 1 u 2 (1) = signo((2 / 3)(u1(1) ) + (2 / 3)(u 3( 0 ) )) = signo((2 / 3)(1) + (2 / 3)(1)) = signo(4 / 3) = 1 u 3(1) = signo((2 / 3)(u1(1) ) + (2 / 3)(u 2 (1) )) = signo((2 / 3)(1) + (2 / 3)(1)) = signo(4 / 3) = 1

-1 -1
u1

-2/3 -2/3

2/3

u2

u3

-1

-1

-1

P(0) = (-1,-1,-1) es diferente que P(1) = (-1,1,-1), As que continuamos iterando. 2da.Iteracin:
u 2 ( 2 ) = signo ((2 / 3)(u1(1) ) + ( 2 / 3)(u 3(1) )) = signo ((2 / 3)(1) + (2 / 3)(1)) = signo ( 4 / 3) = 1 u 3( 2 ) = signo ((2 / 3)(u1(1) ) + ( 2 / 3)(u 2 ( 2 ) )) = signo ((2 / 3)(1) + ( 2 / 3)(1)) = signo (4 / 3) = 1 u1( 2 ) = signo ((2 / 3)(u 2 ( 2 ) ) + (2 / 3)(u 3( 2 ) )) = signo ((2 / 3)(1) + ( 2 / 3)(1)) = signo ( 4 / 3) = 1

-1 -1
u1

-2/3 -2/3

2/3

u2

u3

-1 -1

P(1) = (-1,1,-1) es igual que P(2) = (-1,1,-1), entonces ya se puede verificar que el patrn inicial ha sido corregido a uno de los esperados.

365

Enfoque Prctico del Control Moderno


12.12. Funcin de Energa

Con la intencin de demostrar la estabilidad, trabajamos con la funcin de energa. Esta se define de la siguiente forma:

E=

1 N N w ji si s j 2 i =1 j =1

El cambio de energa debido al cambio de estado de la unidad j es:


E = s j w ji s i
i =1 i j N

Este cambio es negativo debido a que el funcionamiento del algoritmo hace que la energa como funcin sea decreciente. Los cambios deben continuar hasta que la funcin de energa E sea el mnimo, donde se la denomina estado estable. A modo de conclusin, podemos afirmar que los patrones memorizados en la red corresponden a estados estables y que los mnimos locales atraen al espacio de estados. Si comparramos al Backpropagation con Hopfield, podramos decir que mientras el primero tiene un grafico de error para conseguir la estabilidad a travs de la minimizacin del error, el segundo utiliza un grfico de energa para verificar la estabilidad a travs de la minimizacin de ella misma.
12.13. Modelo Estocstico

La Red de Hopfield presenta similitudes con el modelo conocido como spin-glass, debido a sus consideraciones para con el ruido. Si deseamos agregar ruido a un sistema, es necesario definir una funcin estocstica como funcin de activacin: +1
sj =

con probabilidad P( v j ) con probabilidad 1 P( v j )

-1

P( v ) =

1 1 + e ( 2 v / T )

Donde T es el parmetro que controla el ruido. De esta manera podemos apreciar que si T tiende a 0, entonces no hay ruido.

366

Captulo 12
12.14. Diagrama de Fase

Para poder determinar las capacidades de almacenamiento, debemos definir la eficiencia con una funcin, donde = P / N . Es valor crtico de es 0.138.

T (Ruido)

T grande

Zona 1: Zona 2: Zona 3: Zona 4:

Sin errores. Pocos Errores. Confusin. Todos Errores

1
T medio

0.5 1

T chico

= Eficiencia. P = Patrones. N = Nmero de Unidades.

2 0

0.05 0.10 0.15

De la grfica extraemos que si P 0.15N , el almacenamiento es perfecto. Si deseamos evaluar el almacenamiento de caractersticas, veamos:
P 0.75 0.60 0.45 0.30 0.15 Almacenamiento Adecuado

= 0.15 = 0.138

= 0.15 Almacenamiento Perfecto. = 0.138 Almacenamiento en Valor Crtico. < 0.138 No almacena bien.

N
1 2 3 4 5

367

Enfoque Prctico del Control Moderno

12.15. Redes Modulares

Las Redes Modulares combinan las ventajas de las redes RBF y de las MLP, teniendo en cuenta las ventajas principales de cada una de ellas:
Red Neuronal MLP RBF Tipo de Aplicacin Global Local Aprendizaje Lento Rpido Cantidad de Memoria Reducida Grande

Dentro de sus principales caractersticas resaltan claramente el hecho de usar dos o ms mdulos que operan sin comunicacin, que sus salidas son unidas por una unidad integradora y por ltimo, que esta unidad integradora decide cmo combinar las salidas y qu mdulo es el que debe aprender. Este tipo de redes presenta como ventajas el hecho de poseer una mayor velocidad de aprendizaje, de representar datos de manera ms adecuada y de tener la habilidad de considerar restricciones en el hardware.

+x
g ( x) =

x>0 x0

-x

12.15.1. Modelo de Mezcla Gaussuiana Asociativa: Las redes del Modelo de Mezcla Gaussiana Asociativa, son redes modulares que responden a la siguiente representacin:

E1 E2

g1 y2 g2

y1 y / yd yk

En

gk G

368

Captulo 12 Su funcionamiento es como sigue: 1. Las redes expertas Ei producen la salida yi al recibir a x como patrn de entrada. 2. La red de gating G define los porcentajes en los que las salidas se combinan:
0 gi 1

g
i =1

=1

3. La unidad integradora produce la salida y.


y = g i yi
i =1 k

4. Al comparar y con la salida esperada yd se calcula el error que se utiliza para actualizar los pesos de las redes que corresponden. El objetivo de la red es el de aprender la distribucin de patrones {x, y d } , mediante el siguiente procedimiento: a. b. c. Seleccionar un patrn x . Elegir al experto E i con probabilidad P(i x ) . Generar la respuesta y d de acuerdo a:
y d = Ei ( x ) +

donde es una distribucin gaussiana con media 0, por lo que y d es la media condicional de una distribucin gaussiana condicionada. La distribucin del vector deseado

y d dado el vector de entrada x y la seleccin del i-simo experto E i , estn dados por:

f ( y d / x, i ) =

1 2 1 exp y d y i q/2 (2 ) 2

Entonces, el modelo combinado es:

f ( yd / x ) =

1 (2 ) q / 2

g exp 2
i =1 i

2 y d yi

369

Enfoque Prctico del Control Moderno

12.16. Algoritmo Backpropagation de Sintonizacin en Tiempo Continuo para MLP


A continuacin veremos la formulacin del Algoritmo de Backpropagation de Sintonizacin en tiempo Continuo para MLP. Al aplicar este algoritmo, uno pierde la nocin de realimentacin hacia atrs y se substituye por una interaccin continua en el tiempo en cuanto a la evaluacin del error y la modificacin de los parmetros. La aplicacin que desarrollaremos ser para una Red Neuronal MLP de una capa oculta con unidades sigmoides que tiene la siguiente forma:

a.

Salida de la Red Neuronal:

h = (V T x) y = (W T h)
b. Clculo de los errores del Backpropagation:

e = yd y

2 = y e 1 = h W 2
c. Variacin de los pesos:

& W = h( 2 ) T & V = x( 1 ) T

370

Captulo 12 d. Actualizacin de los pesos. Se debe integrar y as conseguir los pesos actualizados, por ejemplo: & W = W + Wdt &dt V = V +V

12.16. Sistemas Dinmicos


Los sistemas dinmicos se caracterizan por utilizar la salida de la red neuronal no entrenada como entrada de la siguiente red neuronal. Al terminar, se calcula el error, se aplica el aprendizaje y se aumenta el sistema en una red neuronal ms en la salida para poder continuar con la siguiente iteracin. El error es utilizado para aprender al final de cada iteracin, como se plante en el prrafo anterior, o para aprender al final de toda la etapa completa. Red Esttica

u(i)

X(i)

RN

X(i+1) XD(i+1)

E(i+1)

donde se itera hasta conseguir el error deseado. Red Dinmica

1er. Mtodo
1ra. Iteracin:

u(0)

W1
bp

X(0)

RN1

X(1) XD(1)

E(1)

371

Enfoque Prctico del Control Moderno 2da. Iteracin:

u(0) X(0) RN1 XD(1)

u(1) X(1) RN2 XD(2) W1 E(2) X(2)

E(1)
i-sima Iteracin:

bp

bp

W2

u(0) X(0) RN1 XD(1)

u(1) X(1) RN2

u(i-1) X(i-1) RNi XD(i) E(i) X(i)

E(1)

bp

XD(i-1) W1

E(i-1) Wi-1

bp

bp

Wi

Es importante tener presente que los clculos del Backpropagation de cada red son diferentes en cada iteracin, es decir:

W1( n ) W1( m )
Los resultados de actualizacin de cada red por cada iteracin los podemos visualizar en la siguiente tabla:

Iteracin 1 2 3 i-1 i TOTAL

Backpropagation
W1(1)
W1( 2 ) + W 2 ( 2 ) W1( 3) + W 2 ( 3) + W 3( 3)

. W1( i 1) + W 2 ( i 1) + W 3( i 1) + .... + Wi 1( i 1)
W1( i ) + W 2 ( i ) + W3( i ) + .... + Wi 1( i ) + Wi ( i )

W
k =1 j =1

j (k )

372

Captulo 12

Para actualizar los pesos calculamos la media de todas las actualizaciones de los pesos:

W =

W
k =1 j =1

j(k )

k
k =1

Sumatoria de Ws Cantidad de Ws

Aplicamos la correccin W y se repite todo el proceso.

2do. Mtodo
Otro mtodo, es el que detallamos a continuacin: a. La red se entrena con los datos de entrada X 0 + u 0 , para ello la salida es X 1 , se aplica el Backpropagation y se determina el W pero no se aplica la actualizacin. La red crece por incrementarse en una unidad, su entrada es X 0 + u 0 , y para la segunda red es X 1 + u1 , se aplica Backpropagation y se determina W de la segunda red y se lleva el error calculado mediante ms Backpropagation para determinar el W de la primera red. An no se aplican las actualizaciones. c. d. e. Se itera hasta la cantidad de iteraciones o redes fijadas. Se calcula la media de W , se actualiza y se calcula el error. Si el error no ha sido alcanzado se repite todo el procedimiento.

b.

Como ejemplo, desarrollaremos las iteraciones de manera grfica. En esas figuras podremos apreciar la retropropagacin del error para su final aplicacin. 1ra. Iteracin:

u(0)

E(1)

X(0)

RN1

X(1) XD(1)

W11

373

Enfoque Prctico del Control Moderno 2da. Iteracin:

u(0) X(0)

W12 RN1

u(1) X(1) RN2 W22 X(2)

E(2)

XD(2)

i-sima Iteracin:

u(0) X(0) RN1 W1i

u(1) X(1)

W2i X

u(i-1) RNi Wii X(i)

E(i)

RN2

(i-1)

XD(i)

En este momento se suman todos los W , se saca el promedio y se repite el proceso hasta alcanzar el error deseado.

12.17. Aplicaciones de las Redes Neuronales:


1. Identificacin de Sistemas. La estructura del Modelo Neural que representa a esta aplicacin de identificacin de sistemas sera la siguiente: yd(k) u(k) Sistema x(k) o Planta e

Red Neuronal

y(k)

Se debe entrenar con informacin randmica inicialmente para no aprender las secuencias sino los parmetros de los sistemas y su comportamiento. Al trmino de

374

Captulo 12 este entrenamiento inicial, se volver a entrenar varios patrones debidamente ordenados de manera continua en el tiempo, es decir, ordenados cronolgicamente. De manera similar se consiguen las aplicaciones de Clasificacin y Reconstruccin de Patrones 2. Control Neural. Control Neural Supervisado: u(k) Controlador
e(k) Neuro Controlador un(k)

r(k)

Sistema o Planta

y(k)

Entrenamiento del Control Neural Supervisado Control Referido al Neuro-Sistema: Como primer paso se tiene que identificar al sistema para poder continuar con el neuro-comtrolador.
em(k) r(k) Neuro Controlador un(k) Neuro Sistema e(k) Sistema yd(k) y(k)

Su principal aplicacin est en la generacin o diseo de neurocontroladores adaptivos.

375

Enfoque Prctico del Control Moderno

12.18. Aplicacin de Redes Neuronales utilizando el Toolbox de Matlab


El empleo del Toolbox de Matlab, aporta herramientas grficas que facilitarn el trabajo y diseo de una Red Neuronal, pero debemos ser cuidadosos en su uso. La mejor forma de explicar los pasos a seguir es a travs de un ejemplo. En esta caso trataremos de identificar un Motor DC con un perceptrn de mltiple capa. Ejemplo E.12.8: Este problema busca identificar un Motor DC a travs de una Red Neuronal tipo Perceptrn de Mltiple Capa. Solucin: 1. Para comenzar debemos plantear al sistema:

Las Ecuaciones que representan a este sistema son:

V( t ) = Ri (t ) + L

di (t ) dt

& & & + e b ( t ) , J&(t ) + b ( t ) = (t ) , eb ( t ) = k (t ) y ( t ) = ki ( t )

De estas ecuaciones, deducimos las siguientes ecuaciones de estado:

R L x= 0 & k J

y = [0 1 0]x + [0]u

k 1 0 L L 0 1 x + 0 u b 0 0 J

376

Captulo 12

Donde el vector de estado es:


i x = &

Dados los siguientes valores para los parmetros, tenemos:


J b k R L V(t)

= 0.01 Kgm2/s2 = 0.1 Nms = 0.01 Nm/Amp. =1 = 5 Henrios = Voltaje de Entrada u.


2 0 0.02 2 1 x + 0 u x= 0 0 & 1 0 10 0 y = [0 1 0]x + [0]u

Programando la simulacin del sistema tenemos:

% Modelo del Motor de Posicin. close all clear all clc % Matrices del Sistema: A = [ -2 0 1 B=[ C=[ D = [ 0 ]; 0 0 0 2 0 -0.02 1 -10 ]; 0 0 ]'; 1 0 ];

% Definicin de Tiempos: ti = 0; dt = 0.001; tf = 3; % Condiciones Iniciales.

377

Enfoque Prctico del Control Moderno

x = [ 0 0 0 ]'; u = 1; % Simulacin: k = 1; for t = ti:dt:tf TI(k,1) = t; X1(k,1) = x(1,1); X2(k,1) = x(2,1); X3(k,1) = x(3,1); xp = A*x + B*u; y = C*x + D*u; Y(k,1) = y; x = x + xp*dt; k = k + 1; end figure(1) plot(TI,Y,'k-') grid on zoom on
Comportamiento del Motor DC de Posicion 0.25

0.2

0.15

0.1

0.05

0.5

1.5

2.5

378

Captulo 12 2. Una vez conseguida la simulacin, y verificado de esta manera el sistema, debemos disear la Red Neuronal. Vamos a escoger una red MLP con 10 unidades no-lineales sigmoides en la capa oculta y tres lineales en la salida, ambas con bias. La entrada va a ser un vector compuesto por u y x, es decir: u u i entrada = = x & y la salida ser el vector x en el instante siguiente, en el cual la identificacin depender del valor del intervalo de tiempo o periodo de muestreo asumido:

i salida = ( k +1) &


El trabajo de la red se puede apreciar en la siguiente figura:

u(k ) i(k )
(k )
&(k )
3.

RED NEURONAL

i( k +1)
( k +1)
& ( k +1)

Como paso siguiente preparamos los datos para el entrenamiento y la validacin. Los datos van a ser asumidos de manera aleatoria normalmente distribuidos en vectores de dos mil datos de los cuales doscientos sern reservados para la validacin. Los rangos de estos datos debern ser:
u desde -12 hasta 12 voltios. i desde -5 hasta 5 amperios. desde hasta radianes. & desde /2 hasta /2 radianes por segundo.

379

Enfoque Prctico del Control Moderno Esto lo realizamos agregando las siguientes lneas al archivo-M generado anteriormente, donde al final ordenamos los datos en los vectores de entrada y de objetivo, tanto para el entrenamiento como para la validacin, y los guardamos.

% Preparacion de los datos. u = 12*randn(1,2000);i = 5*randn(1,2000); th = pi*randn(1,2000);thp = pi/2*randn(1,2000); xd = [i; th; thp]; P = [u; i; th; thp]; figure(2) subplot(211) plot(P') ylabel('Datos Entrada');legend('u','i','th','thp') xpd = A*xd + B*u; xd = xd + xpd*dt; subplot(212) plot(xd') ylabel('Salidas Objetivo');legend('i','th','thp') entradas = P(:,1:1800); objetivos = xd(:,1:1800); valid_entradas = P(:,1801:2000); valid_objetivos = xd(:,1801:2000); save motor_datos entradas objetivos valid_entradas valid_objetivos
Al correr el programa vemos los datos y su distribucin normal.
50 Datos Entrada u i th thp

-50

200

400

600

800

1000

1200

1400

1600

1800

2000

20 Salidas Objetivo 10 0 -10 -20 -30 0 200 400 600 800 1000 1200 1400 1600 1800 2000 i th thp

380

Captulo 12

Ahora en el Workspace del Matlab borramos todas las variables y cerramos todas las figuras (clear all; close all). 4. Armamos la red neuronal ya diseada en el paso 2 en la herramienta grfica del Matlab de la siguiente manera: a. b. c. Cargamos los datos generados en nuestro archivo-M, digitando: >> load motor_datos Abrimos la herramienta de redes neuronales: >> nntool Importamos los datos llevando a inputs los datos cargados en las variables entradas y valid_entradas, del mismo modo importamos a targets los datos de de las variables objetivos y de valid_objetivos. Todo esto mediante el cuadro de dilogo que aparece cuando se hace click sobre el botn Import. Generamos la red neuronal con las caractersticas dadas, haciendo click sobre el botn New Network. Ah llenaremos los campos Network Name como MotorIS, Number of Layers 3, dado que considera que las entradas son una capa (layer), y en los datos para la capa 1 (Layer 1) colocamos cantidad de 10 unidades con funcin de transferencia LOGSIG:

d.

381

Enfoque Prctico del Control Moderno

As mismo, debemos cargar los datos de las entradas expandiendo el men de Input Ranges y seleccionando la variable entradas. Luego, seleccionamos la segunda capa (Layer 2), en Properties for y cambiamos las unidades a PURELIN y cantidad de 3.

e.

En este momento ya podemos hacer click sobre Create para disear la Red Neuronal.

382

Captulo 12 f. Ahora, al hacer click sobre View vamos a ver la red y debemos actualizar todas las pestaas como se indica en las figuras siguientes:

383

Enfoque Prctico del Control Moderno

384

Captulo 12

g.

Luego en la ventana de parmetros de entrenamiento cambiamos los datos a 1000 ciclos y goal a 10e-009:

h.

Ahora en el Manager podemos entrenar haciendo click sobre el botn de Train. Como resultado debe aparecer una figura con el error alcanzado.

385

Enfoque Prctico del Control Moderno i. Como resultado debe aparecer una figura donde se comparen los datos del entrenamiento y los de la validacin.
Performance is 9.96802e-010, Goal is 1e-009 10 Training-Blue Goal-Black Test-Red
0

10

-2

10

-4

10

-6

10

-8

10

-10

100

200

300

400 500 923 Epochs

600

700

800

900

j. k.

Una vez alcanzado el error deseado, podemos exportar los datos de la Red Neuronal MotorIS al Workspace a travs del botn Export. Ya en el Workspace, debemos guardar los datos de W1, W2, b1 y b2 de la siguiente manera:

>> W1=MotorIS.IW{1,1} >> W2=MotorIS.LW{2,1} >> b1=MotorIS.b{1} >> b2=MotorIS.b{2} >> save IDMotorIS W1 W2 b1 b2
sabiendo que la red neuronal es:

Salida = purelin(W2 logsig(W1 Entrada + b1) + b2)


l. Ahora simularemos en forma continua ante una entrada escaln al motor real y a la red neuronal. Al final debemos presentar ambos resultados en una sola figura para poder compararlos.

% Modelo del Motor de Posicin. close all;clear all; clc % Matrices del Sistema: A = [ -2 0 -0.02; 0 0 1; 1 0 -10 ];

386

Captulo 12

B=[ 2 0 C=[ 0 1 D = [ 0 ];

0 ]'; 0 ];

% Definicin de Tiempos: ti = 0;dt = 0.001;tf = 3; % Condiciones Iniciales. x = [ 0 0 0 ]'; u = 1; load IDMotorIS % Simulacin: k = 1; for t = ti:dt:tf TI(k,1) = t; X1(k,1) = x(1,1); X2(k,1) = x(2,1); X3(k,1) = x(3,1); xp = A*x + B*u; y = C*x + D*u; YNN(:,k) = purelin(W2*logsig(W1*[u;x]+b1)+b2); Y(k,1) = y; x = x + xp*dt; k = k + 1; end figure(1) plot(TI,Y,'k+',TI,YNN(2,:)','r') legend('Real','Neural'); grid on; zoom on
La figura final muestra la simulacin del motor DC y sobre ella la simulacin conseguida usando como modelo al MLP diseado con los datos iniciales. Las dos son iguales.
Comparacion del Motor Real con la Red 0.3 Real Neural 0.25

0.2

0.15

0.1

0.05

-0.05

0.5

1.5

2.5

387

You might also like