Está en la página 1de 54

Unidad II.

Redes Neuronales para la Clasificación de Patrones

2.1. Arquitecturas Típicas

A continuación se muestran las arquitecturas típicas en que se pueden clasificar las


redes neuronales.

2.1.1. Red Neuronal de Capa Simple

Las redes neuronales de una sola capa tiene una interfaz de entrada conocida como
nodos de entrada en donde no se realiza ninguna operación (definida como X). Y también
esta compuesta por la capa de salida en donde se tienen las redes neuronales en si mismo
(definida como Y). En la fig. 2.1, se muestra una red neuronal de una capa con n nodos de
entrada y m neuronas de salida.

Figura 2.1. Red neuronal de una sola capa.

De la fig. 2.1, se puede observar que existen una serie de pesos sinápticos
que unen los nodos de entrada con cada una de las neuronas. De este grupo de pesos se
puede crear una matriz de pesos, como la que se describe en la ec. (1.1). El primer
subíndice de cada peso representa el nodo de entrada y el segundo subíndice hacía que
neurona se conecta.

(1.1)
Donde n= # de nodo de entrada; m= # de neuronas de salida; normalmente nm. De
la matriz se observa que cada columna de pesos representa los pesos sinápticos que se
conectan de los nodos de entrada a cada uno de las neuronas de la red.

2.1.2. Red Neuronal Multicapa

La red neuronal multicapa esta compuesta no solamente de una sola capa sino que la
integran 2 o más capas. En la fig. 2.2, se muestra la arquitectura de una red con una capa de
nos de entrada una capa oculta o intermedia y una segunda capa o de salida.

Figura 2.2. Red neuronal multicapa.

Al igual que la red neuronal de una capa, por cada capa de neuronas que se tiene se
asocia una matriz de pesos. De acuerdo con la fig. 2.2, se tendrán las siguientes dos
matrices. Nuevamente cada una de las columnas de las dos matrices representan los pesos
sinápticos que se conectan a cada neurona. De la fig. 2.2, se puede observar que la
respuesta de las neuronas de la primera capa se convierten ahora en las señales de entrada
de la segunda capa. Esta idea, como ya se mencionó, se puede extender y se pueden llegar a
conectar más capas a esta red neuronal. Además, el numero de neuras puede llegar a ser
distinto del número de neuronas de la segunda capa.
(1.2)

2.1.3. Redes Basadas en Competencia

La arquitectura de las redes basadas en competencia normalmente comparten


señales de conexión. En la fig. 2.3, se observa como todas las neuronas se conectan a todas
las otras neuronas a través de un peso sináptico fijo -. E inclusive hay una
retroalimentación unitaria de cada neurona consigo misma.

Figura 2.3. Arquitectura típica de una red basada en competencia.

2.1.4. Redes con Aprendizaje Supervisado

Una arquitectura de red, ampliamente utilizada en la actualidad es la que se


denomina como RNA multicapa, la cual a diferencia del perceptron original presenta una
arquitectura como la que se muestra en la fig. 2.4. Este tipo de arquitectura también se
conoce como del tipo de procesamiento de datos por avance, esto es, las conexiones entre
las neuronas pertenecientes a distintas capas siempre se realizan desde la entrada hacia la
salida, no existiendo ninguna conexión física en forma inversa.

La metodología más común para realizar el ajuste de los pesos de conexión


sináptica de este tipo de red, entrenada bajo un esquema de entrenamiento supervisado, se
conoce como algoritmo de entrenamiento con propagación inversa de error (error back-
propagation), desarrollada en forma independiente por los científicos estadounidenses Paul
Werbos, David Parker, y David Rumelhart, Ronald Williams y otros.

Básicamente, el algoritmo de aprendizaje de retropropagación del error consiste en


dos etapas a través de las diferentes capas que definen a la red: Una etapa hacia adelante y
otra etapa hacia atrás. En la etapa hacia adelante, se aplica un vector de entrada a los nodos
de entrada de la red, y su efecto se propaga a través de la red, pasando por todas las capas,
obteniéndose finalmente la respuesta real de la red en la capa de salida (durante la etapa de
entrenamiento hacía adelante los pesos sinápticos de la red permanecen fijos). En la etapa
de entrenamiento hacía atrás (proceso de aprendizaje), todos los pesos sinápticos se ajustan,
de acuerdo con la regla de corrección del error; específicamente, la respuesta real de la red
se compara con la respuesta deseada para producir una señal de error. Esta señal de error se
propaga hacía atrás a través de la red en contra de la dirección de las conexiones sinápticas,
de aquí el nombre “retropropagación del error”, realizándose el ajuste de los pesos en forma
secuencial desde la capa de salida hasta la capa de entrada. Los pesos sinápticos de la red se
ajustan paso a paso, de tal forma que la respuesta real de la red se acerque cada vez más a la
respuesta deseada.

En resumen, en este tipo de redes la señal correspondiente a los datos de entrada se


propagan desde la entrada hasta la salida y el factor de corrección o ajuste de los pesos
sinápticos se propaga secuencialmente desde la etapa de salida hasta la etapa de entrada.

Figura 2.4 Resumen gráfico del flujo de señales en una red multicapa. Parte superior de la figura:
Propagación. Parte inferior de la figura: Retro-propagación.

Existen otro tipo de redes, denominadas recurrentes en las cuales se realiza una
retroalimentación de la señal de salida hacia alguna de las capas anteriores a la capa de
salida; ejemplo de éstas es la denominada red de Hopfield. Sin embargo, es necesario
aclarar que los algoritmos de entrenamiento o de ajuste de parámetros tienen como objetivo
la minimización de una función de error, la que como se mencionó, en ocasiones se le
denomina función de energía la cual es necesario minimizar. Así, en general una regla de
aprendizaje se deriva al aplicar una técnica de optimización específica a una medida de
error dada. Las técnicas más comunes son las denominadas por gradiente descendiente
abrupto (GD), y por estimación de mínimos cuadrados (LSE).

2.1.5. Redes con Aprendizaje no Supervisado

Tradicionalmente las redes con aprendizaje no supervisado son denominadas


también como redes basadas en competencia. Generalmente, este grupo de redes se utiliza
para realizar clasificación de vectores de datos característicos. De las redes más importantes
de este grupo se encuentran las redes de mapas de características auto-organizadas.

2.2. Formas de Conexión Entre Neuronas

La conectividad entre los nodos de una red neuronal está relacionada con la forma
en que las salidas de las neuronas están canalizadas para convertirse en entradas de otras
neuronas. La señal de salida de un nodo puede ser una entrada de otro elemento de proceso,
incluso ser una entrada de su propia salida (conexión autorrecurrente).

Cuando ninguna salida de la neurona es entrada de neuronas del mismo nivel o de


niveles precedente, la red se describe como de propagación hacia adelante. Cuando las
salidas pueden ser conectadas como entradas de neuronas de niveles previos o del mismo
nivel, incluyéndose ellas mismas, la red es de propagación hacia atrás. La fig. 2.5, muestra
la forma en que se clasifican las redes neuronales.

 Figura 2.5. Clasificación de las Redes Neuronales de Acuerdo a su Conectividad.


1 : Radial Basis Function 2 : Self Organizing Map 3 : Adaptive Resonance Theory .

2.3. Fases de Aplicación de las Redes Neuronales


Existen dos fases en toda aplicación de las redes neuronales: la fase de aprendizaje
o entrenamiento y la fase de prueba. En la fase de entrenamiento, se usa un conjunto de
datos o patrones de entrenamiento para determinar los pesos (parámetros de diseño) que
definen el modelo neuronal. Una vez entrenado este modelo, se usará en la llamada fase de
prueba o funcionamiento directo, en la que se procesan los patrones de prueba que
constituyen la entrada habitual de la red, analizándose de esta manera las prestaciones
definitivas de la red.
 Fase de Aprendizaje: una característica de las redes neuronales es su capacidad de
aprender. Aprenden por la actualización o cambio de los pesos sinápticos que
caracterizan a las conexiones. Los pesos son adaptados de acuerdo a la información
extraída de los patrones de entrenamiento nuevos que se van presentando.
Normalmente, los pesos óptimos se obtienen optimizando (minimizando o
maximizando) alguna "función de energía". Por ejemplo, un criterio popular en el
entrenamiento supervisado es minimizar el least-square-error (error cuadratico
medio) entre el valor del maestro y el valor de salida actual.
 Fase de Prueba: los parámetros de diseño de la red neuronal se han obtenido a
partir de unos patrones representativos de las entradas que se denominan patrones
de entrenamiento. Los resultados pueden ser tanto calculados de una vez como
adaptados iterativamente, según el tipo de red neuronal, y en función de las
ecuaciones dinámicas de prueba. Una vez calculados los pesos de la red, los valores
de las neuronas de la última capa, se comparan con la salida deseada para
determinar la validez del diseño.

Las aplicaciones del mundo real deben acometer dos tipos diferentes de requisitos
en el procesado. En un caso, se requiere la prueba en tiempo real pero el entrenamiento ha
de realizarse "fuera de línea". En otras ocasiones, se requieren las dos procesos, el de
prueba y el de entrenamiento en tiempo real. Estos dos requisitos implican velocidades de
proceso muy diferentes, que afectan a los algoritmos y hardware usados.

2.4. Polarizaciones y Umbrales

La polarización (bias) actúa exactamente como un peso sobre una conexión desde
una unidad cuya activación es siempre uno. Al momento de incrementar la polarización se
aumenta la entrada de la red a la unidad. Si la polarización es incluida, la función de
activación típica esta definida por la ec. (1.3):

(1.3)

En donde , la cual define La respuesta de la red antes de aplicar


la

2.5. Función de Activación.

Si se define el uso de un umbral fijo  (threshold) en la función de activación,


entonces:
(1.4)

donde:
El propósito que tiene incluir una función de activación en una red neuronal es
implementar una frontera de decisión , en donde, no importando cual sea el valor de net, a
la salida de la red neuronal solo se tendrán dos valores 0 y 1, para una función de activación
binaria o –1 y 1 para datos de salida bipolares. En la fig. 2.6, se observa un grupo de datos
definidos en 2. De este grupo de datos se distinguen dos familias o clases, para verificar a
que familia pertenece cada dato se le ha asociado una etiqueta. Un símbolo de asterisco (*)
para la primera clase (C1) y un cuadro () para la segunda clase (C2). Para separar las dos
familias se puede utilizar una frontera de decisión (línea) la cual define la zona a la

Figura 2.6. Grupo de datos linealmente separados, que están divididos ha través de una frontera de decisión.

Para tres dimensiones:


Figura 2.7. Frontera de decisión y etiquetado de datos a través de la red neuronal, después de aplicar la
función de activación escalón.

Considerando el bias:

(se iguala a cero porque a partir de él se etiquetan los patrones, ya sea con uno 1 ó con -1).

Considerando el umbral (threshold):

Ahora es  la referencia. Entonces:

Si hubiera bias y threshold:


Se puede entonces generalizar:

- Para bias:

- Para threshold:

2.6. Red de Hebb

 Algoritmo:

Paso 0. Inicializar todos los pesos: wi = 0 (i de 1 hasta n, el número de neuronas de la capa


de entrada)

Paso 1. Por cada vector de entrenamiento de entrada y par de salida deseado, s: t hacer
los pasos 2 a 4.

Paso 2. Fijar las activaciones por cada unidad de entrada:


xi = si (i = 1 hasta n)

Paso 3. Fijar la activación para las unidades de salida: y=t (t = objetivo o “target”)

Paso 4. Ajustar los pesos:


con i = 1 hasta n

Ajustar el bias:

(NOTA: La red se entrena sólo una vez)

Ejemplo 2.1: Entrenar una red de Hebb para tener la función de la compuerta AND con
entradas x1 y x2, salida t, con datos binarios.

Solución:

Denotando los pesos con w1, w2 y b, y a sus respectivos gradientes como w1, w2,
y b. Utilizando el algoritmo descrito anteriormente, podemos formar la siguiente tabla:

x1 x2 B t w1 w2 b w1 w2 b
1 1 1 1 1 0 0 1 1 1
1 0 1 0 0 0 0 1 1 1
0 1 1 0 0 0 0 1 1 1
0 0 1 0 0 0 0 1 1 1

Los valores de los pesos resultantes del entrenamiento son los del último renglón en las
columnas correspondientes a w1, w2 y b.

La función de activación es:

con

En este caso:


Se trata de una recta con ordenada al origen en –1 y pendiente negativa de 45°,


según puede observarse en la fig. 2.8:

Figura 2.8. Gráfica que muestra como un grupo de datos no ha sido separado todavía por la frontera de
decisión que produce la red neuronal.

En la fig. 2.8 se puede notar que la red no fue entrenada, puesto que no separó los
símbolos (+1) de los (0). Para este ejemplo se recomienda emplear datos bipolares (+1 ó -
1).

Con la consideración anterior se obtiene una nueva tabla de pesos:

x1 x2 B t w1 w2 b w1 w2 b
1 1 1 1 1 1 1 1 1 1
1 -1 1 -1 -1 1 -1 0 2 0
-1 1 1 -1 1 -1 -1 1 1 -1
-1 -1 1 -1 1 1 -1 2 2 -2

Los nuevos pesos son w1=2, w2=2 y b=-2, y ahora se obtiene la siguiente expresión
para la frontera de decisión:

El resultado gráfico es el siguiente:

Figura 2.9. Gráfica resultante del ejemplo anterior que muestra como el grupo de datos linealmente separable
han sido divididos por una región de separación producida por la red neuronal.

La red ahora sí se entrenó de manera correcta, ya que separó linealmente los valores
(-1) y (+1).

Para comprobar analíticamente el entrenamiento de la red se lleva a cabo el


procedimiento denominado evaluación de red, haciendo uso de la función de activación
como escalón bipolar.

Para la entrada:
Para:

Para:

Finalmente, para:

Por lo tanto, la red se encuentra entrenada.

Para una implementación electrónica se considera que


y se utilizan amplificadores operacionales (OPAM).

Ejemplo 2.2: Se tienen como entrada los siguientes patrones de caracteres:

#...# . # # #.
.#.#. #...#
..#.. #...#
.#.#. #...#
#...# . # # #.

# equivale a +1
. equivale a -1

Entrenar una red de Hebb que reconozca los caracteres y que al captar una X
produzca un +1, y al captar una Y produzca un –1.

Vector b Salida wi b wi b


de
entrada
X 1 +1 X 1 X 1
0 1 -1 -0 -1 X-O 0

X = [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]T.

-0 = [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]T.

W = X-0 = 2 –2 –2 –2 2,-2 2 0 2 –2, -2 0 2 0-2, -2 2 0 2 –2, 2 –2 –2 –2 2.


De manera similar:

por lo tanto la red está entrenada.

2.7. Redes Perceptron, arquitectura, algoritmos y aplicaciones

En la fig. 2.10, se muestra la arquitectura típica de la red neuronal tipo Perceptron.


Como se observa conserva la misma arquitectura, únicamente que presenta algunos ligeros
cambios. Primero, la función de transferencia que se esta utilizando se define como la
tangente hiperbólica (tanh (x)), que es una función derivable. Segundo, como ya se
comento, la señal que se toma para comparar la señal que se desea yd, no es u, es decir no se
toma antes de la función de transferencia, sino precisamente después de ella, esto es, y =
tanh(u). Para encontrar el método que permite ajustar el vector de pesos wn es necesario
encontrar la derivada de la función de transferencia, así obtenemos:

Figura 2.10. Red neuronal tipo perceptrón.

. (2.7)
Y recordando que:

, , y además que . (2.8)

La red Perceptron está basado en el comportamiento de las células comunes y


cuenta con tres niveles de activación.

 Arquitectura:

Figura 2.11. Red Perceptrón con una sola neurona.

w (new) = w (old) +  xi t

donde : factor de aprendizaje, xi: vector de entrada, t: valor deseado (target).

b(new)=b(old) +  t

 Algoritmo de la red Perceptron para una neurona:

Paso 0. Inicializar los pesos y la polarización (por simplicidad se fijan a cero). Fijar la
razón de aprendizaje  (0<<=1; por simplicidad,  = 1).

Paso 1. Mientras que la condición de paro sea falsa, hacer los pasos 2 al 6.

Paso 2. Por cada par de entrenamiento s:t, hacer los pasos 3 al 5.

Paso 3. Fijar la activación de las unidades de entrada: xi = si

Paso 4. Calcular la respuesta de la unidad de salida:


Paso 5. Actualizar los pesos y bias si un error ocurrió para este patrón:

Si y  t, entonces:

wi(new) = wi(old) +  t xi

b(new) = b(old) +  t

else:

wi(new) = wi(old)

b(new) = b(old)

Paso 6. Probar la condición de paro: Si no han cambiado los pesos en el paso 2, detenerse;
si no es así, continuar.

Ejemplo 2.3: Función lógica AND con entradas binarias y salidas bipolares. Factor de
aprendizaje  = 1, umbral  = 0.2

x1 x2 B t Cambio de w1 w2 b
pesos
w1 w2 b 0 0 0
1 1 1 1 1 1 1 1 1 1
1 0 1 -1 -1 0 -1 0 1 0
0 1 1 -1 0 -1 -1 0 0 -1
0 0 1 -1 0 0 0 0 0 -1

La tabla anterior se construye de la siguiente forma:

Para x1=[1 1], t1 = 1

y_in = 0 + x1w1 + x2w2 = 0 < 


 y = 0  1= t1
 w1(new) = 0 +  xi t = 0+1(1)(1) = 1
w2(new) = 0 + 1(1)(1) = 1
b(new) = 0 + 1(1) = 1
Para x2=[1 0], t2 = -1

y_in = 1 + 1(1) + 0(1) = 2 > 


 y = 1  -1= t2
 w1(new) = 1 + 1(1)(-1) = 0
w2(new) = 1 + 1(-1)(0) = 1
b(new) = 1 + 1(-1) = 0

Para x3=[0 1], t3 = -1

y_in = 0 + 0(0) + 1(1) = 1 > 


 y = 1  -1= t3
 w1(new) = 0 + 1(-1)(0) = 0
w2(new) = 1 + 1(-1)(1) = 0
b(new) = 0 + 1(-1) = -1

Para x4=[0 0], t4 = -1

y_in = 0 + 1(-1) + 0(0) = -1 < -


 y = -1= t4
 los pesos se quedan igual.

Esta es la primera época, para la siguiente época se tiene la siguiente tabla:

x1 x2 B t Cambio de w1 w2 b
pesos
w1 w2 b 0 0 -1
1 1 1 1 1 1 1 1 1 0
1 0 1 -1 -1 0 -1 0 1 -1
0 1 1 -1 0 -1 -1 0 0 -2
0 0 1 -1 0 0 0 0 0 -2

Para x1=[1 1], t1 = 1

y_in = -1 + 1(0) + 1(0) = -1 < 


 y = -1  1= t3
 w1(new) = 0 + 1(1)(1) = 1
w2(new) = 0 + 1(1)(1) = 1
b(new) = -1 + 1(1) = 0

Para x2=[1 0], t2 = -1

y_in = 0 + 1(1) + 0(1) = 1 > 


 y = 1  -1= t2
 w1(new) = 1 + 1(-1)(1) = -1
w2(new) = 1 + 1(-1)(0) = 1
b(new) = 0 + 1(-1) = -1

Para x3=[0 1], t3 = -1

y_in = -1 + 0 + 1 = 0 < 
 y = 0  -1= t3
 w1(new) = 0 + 1(-1)(0) = 0
w2(new) = 1 + 1(-1)(1) = 0
b(new) = -1 + 1(-1) = -2

Para x4=[0 0], t4 = -1

y_in = -2 + 0 + 0 = -2 < -
 y = -1= t4
 los pesos se quedan igual.

Este proceso continúa similarmente hasta la novena época, para la cual se tiene la
siguiente tabla:

x1 x2 B t Cambio de w1 w2 b
pesos
w1 w2 b
1 1 1 1 1 1 1 3 3 -3
1 0 1 -1 -1 0 -1 2 3 -4
0 1 1 -1 0 0 0 2 3 -4
0 0 1 -1 0 0 0 2 3 -4

Para la décima época:

x1 x2 B t Cambio de w1 w2 b
pesos
w1 w2 b
1 1 1 1 0 0 0 2 3 -4
1 0 1 -1 0 0 0 2 3 -4
0 1 1 -1 0 0 0 2 3 -4
0 0 1 -1 0 0 0 2 3 -4

La red ya se entrenó, según de puede comprobar gráficamente, como a continuación


se presenta:

x1w1 + x2w2 + b > 


x1w1 + x2w2 + b < -
Sustituyendo los pesos y haciendo las reducciones convenientes se obtienen las
siguientes ecuaciones:

= f(x)

= g(x)

Figura 2.12. Gráfica resultante del ejemplo 2.3.

Ejemplo 2.4: El ejemplo 2.3 se puede realizar también empleando tanto datos de entrada
como de salida bipolares, con factor de aprendizaje 1 y umbral 0:

x1 x2 B t Cambio de w1 w2 b
pesos
w1 w2 b 0 0 0
1 1 1 1 1 1 1 1 1 1
1 -1 1 -1 1 1 -1 0 2 0
-1 1 1 -1 1 -1 -1 1 1 -1
-1 -1 1 -1 0 0 0 1 1 -1

Para la segunda época:

x1 x2 B t Cambio de w1 w2 b
pesos
w1 w2 b 1 1 -1
1 1 1 1 0 0 0 1 1 -1
1 -1 1 -1 0 0 0 1 1 -1
-1 1 1 -1 0 0 0 1 1 -1
-1 -1 1 -1 0 0 0 1 1 -1

Se puede ver que la red ya se entrenó en tan sólo dos épocas. Es entonces mucho
más rápido el entrenamiento con datos de entrada y salida bipolares que el caso anterior,
realizado con entradas binarias.

x1w1 + x2w2 + b =  

 .....(a)

 .....(b)

Sustituyendo en (a) y en (b) los valores obtenidos de w 1, w2, b y , se obtiene en ambos


casos la siguiente expresión : x2 = -x1 + 1. Esta recta evidentemente separa los valores de la
entrada [1 1], de los restantes: [1 -1], [-1 1], y [-1 -1].

 Algoritmo de la red Perceptron para diversas categorías de salida:

Paso 0. Inicializar los pesos y las polarizaciones con cero o con valores aleatorios
pequeños.

Paso 1. Por cada par, mientras que la condición de paro sea falsa, continuar con los
pasos 2 a 6.

Paso 2. Por cada par s : t , hacer los pasos 3 a 5.

Paso 3. Fijara xi = si, con i = 1, ..., n (número de elementos de entrada).

Paso 4. Por cada unidad de salida j calcular:

donde j es el número de nodos de salida.


Paso 5. Actualizar pesos y polarizaciones:

Para i = 1, ..., n; j = 1, ..., m, y si tj  yj


bj(new) = bj (old) +  tj

wij(new) = wij (old) +  tj xi

Si ti = yj bj (new) = bj (old)

wij (new) = wij (old)

Paso 6. Probar condiciones de paro. Si no han ocurrido cambios en el paso 2, alto; si


no es así, continuar.

 Arquitectura:

Figura 2.13. Arquitectura de la red Adaline para múltiples neuronas.

2.8. Redes Adaline, Arquitectura, Algoritmo y Aplicaciones

La red Adaline significa red neuronal lineal adaptativa (Neurona Lineal Adaptativa).

Emplea la regla delta (que habrá de ser descrita posteriormente) para optimizar los
pesos. Su arquitectura es similar a la del Perceptron.
Figura 2.14. Red neuronal tipo Adaline propuesta por Widrow-Hoff con dos señales de entrada y una
entrada de polarización con valor constante de +1.

De manera típica utiliza valores de activación bipolar tanto para sus señales de entrada
como para su salida (sin embargo no se restringe a estos valores). Los pesos de las
conexiones desde la unidad de entrada a la salida son ajustables. La red Adaline cuenta con
un peso de polarización, que actua como un peso ajustable sobre una conexión desde una
unidad cuya activación siempre es uno.

La regla delta también es conocida como el cuadrado medio mínimo (Least Mean
Square-LMS) o regla de Widrow-Hoff. Esta regla puede utilizarse para redes de una sola
capa con muchas unidades de salida. Durante el entrenamiento, la activación de la unidad
es su entrada de red, es decir, la función de activación es la función identidad.
La regla de aprendizaje minimiza el error cuadrático medio entre la activación y el
valor objetivo. Esto permite a la red seguir aprendiendo sobre todos los patrones de
entrenamiento, inclusive aun después de que la salida correcta se genera (si una función de
umbral se aplica) para algunos patrones.

Después del entrenamiento, si la red está siendo utilizada para clasificación de patrones en
donde la salida deseada es +1 o –1, una función de umbral se aplica a la entrada para
obtener la activación (salida). Si la entrada de a la Adaline es mayor que o igual a cero, su
activación es 1, de otra manera, es –1.

Cualquier problema para el los patrones de entrada que sean linealmente separable
pueden ser modelados de manera exitosa por una unidad (neurona) Adaline.

 Algoritmo:

Paso 0. Inicializar los pesos con valores aleatorios pequeños. Fijar la razón de aprendizaje
(0<<=1).

Paso 1. Mientras que las condiciones de paro sean falsas, hacer los pasos del 2 al 6.

Paso 2. Por cada par de entrenamiento s : t , hacer los pasos 3 a 5.


Paso 3. Fijar las activaciones de las unidades de entrada: x i = si, i = 1, ..., n (número de
elementos de entrada)

Paso 4. Calcular la entrada de red a las unidades de salida:

Paso 5. Actualizar los pesos y la polarización:

wi(new) = wi(old) +  (t – y_in) xi

b(new) = b(old) +  (t-y_in)

Paso 6. Probar las condiciones de paro: Si se cumple un máximo de épocas o, si el cambio


de pesos más grande que ocurrió en el paso 2 es más pequeño que una tolerancia específica,
entonces alto; de otra forma continuar.

 := error mínimo

|w| = |w_new – w:_old|    condición de paro

Para determinar el valor del factor de aprendizaje  se considera generalmente la


siguiente condición:

=0.1  0.1  n   1.0

donde n: = número de unidades de entrada.

Otro criterio para saber si la red aprendió adecuadamente es el siguiente:

| y_in - t |   := error mínimo

Para evaluar la red se emplea:


y se aplica entonces la función de activación de escalón
bipolar.

Ejemplo 2.5: Sean las entradas: X= , e Y= , con  = 0.4, w0 = b = -


0.8, y w1 = -0.9. Implementar una red Adaline con  = 0.01.
Figura 2.15. Esquema de la red neuronal del ejemplo 2.4.

Para la primera época:

Con la primera entrada:


y_in1 = -0.8 + 1.0(-0.9) = -1.7
b_new1 = -0.8 + 0.4 (0.5 + 1.7)= 0.08
w_new1 = -0.9 + 0.4 (0.5 + 1.7) 1.0 = -0.02

Con la segunda entrada:


y_in2 = 0.08 + (-1.0)(-0.02) = 0.1
b_new2 = 0.08 + 0.4 (1 – 0.1)= 0.44
w_new2 = -0.02 + 0.4 (1 – 0.1) (-1.0)=-0.38

Para la segunda época:

Con la primera entrada:


y_in3 = 0.44 + 1.0(-0.38) = 0.06
b_new3 = 0.44 + 0.4 (0.5 – 0.06)= 0.616
w_new3 = -0.38 + 0.4 (0.5 – 0.06) 1.0 = -0.204

Con la segunda entrada:


y_in4 = 0.616 + (-1.0)(-0.204) = 0.82
b_new4 = 0.616 + 0.4 (1 – 0.82)= 0.688
w_new4 = -0.204 + 0.4 (1 – 0.82) (-1.0)=-0.276

Para la tercera época:

Con la primera entrada:


y_in5 = 0.688 + 1.0(-0.276) = 0.412
b_new5 = 0.688 + 0.4 (0.5 – 0.412)= 0.723
w_new5 = -0.276 + 0.4 (0.5 – 0.412) 1.0 = -0.246

Con la segunda entrada:


y_in6 = 0.723 + (-1.0)(-0.2406) = 0.483
b_new6 = 0.723 + 0.4 (1 – 0.483)= 0.9298
w_new6 = -0.2406 + 0.4 (1 – 0.483) (-1)=-0.447
Para la cuarta época:

Con la primera entrada:

y_in7 = 0.9298 + 1.0(-0.447) = 0.4828


b_new7 = 0.9298 + 0.4 (0.5 – 0.4828)= 0.9366
w_new7 = -0.447 + 0.4 (0.5 – 0.4828) 1 = -0.44012

Aquí w = 0.0068 < 0.01= , por lo que la red queda entonces como se muestra a
continuación.

Figura 2.16. Pesos resultantes del ejemplo 2.4.

2.9. Método Descendiente Abrupto

Para una red neuronal con entrenamiento supervisado ser puede formar una función
objetivo que permita monitorear el entrenamiento de la misma. Esta función objetivo se
forma a partir de la comparación de la señal deseada ydj(k) menos yj(k). Donde ydj(k) es la
señal deseada y yj(k) es la señal que nos entrega la red neuronal cuando se aplica una señal
de entrada para el k-ésimo patrón respectivamente, por lo tanto el error por patrón que se
obtiene es:

. (2.5)
Por lo que el error total va a ser:

. (2.6)

El primer método que permitió minimizar una función de características cuadráticas


se conoce como método de gradiente. Este método fue propuesto por Newton, el cual
permite minimizar una función g(x). Es decir, el objetivo del algoritmo se centra en
descubrir cual es el valor de x, dentro de un determinado rango de tal forma que g(x)* 
g(x). Donde g(x)* es el valor mínimo óptimo, de forma que se asegura que:
. (2.7)

Para poder aplicar adecuadamente el método de gradiente se debe de asegurar que


la función g(x) cumpla con las siguientes condiciones:

, (2.8a)
y
. (2.8b)

El método del gradiente se define por la siguiente expresión:

(2.9)

Donde es el cambio que sufre la variable x con respecto al tiempo. Se observa


que conforme t tiende a infinito, x tiende a x*, el cual representa el valor de x que minimiza
a g(x). La variable  es una razón que se conoce como razón o tamaño de paso que permite
encontrar x* en un mayor o menor tiempo de cómputo.

Se observa de la ec. (2.6) que el error total se define como el error cuadrático medio.
Por otra parte, sabemos que el valor mínimo de una función g(x) esta dado por:

. (2.10)

Sabemos que la definición de la derivada esta dada por:

. (2.11)
Realizando el despeje de t, se obtiene que el producto es aproximadamente
igual a:

. (2.12)

Considerando que t es el instante i, y que t + t es el instante i + 1, y realizando el


despeje de x(i+1), obtenemos:

. (2.13)
Y substituyendo la ec. (2.10) en la ec. (2.13) obtenemos:

. (2.14)

Si consideramos que t tiende a cero podemos hacer una substitución, así que t
= , y tenemos que:

. (2.15)

A la ec. (2.15) se le conoce como el método descendiente abrupto. Este método se


puede extender para aplicarse a una red neuronal con entrenamiento supervisado.

2.10. Regla Delta (o LMS: Least Mean Square, o Regla de Widrow - Hoff)

Se tiene que:

 E = (t-y_in)2 es el error cuadrático medio

Para hallar el error mínimo se deriva E:

= 2 (t – y_in) xi (2.16)

Añadiendo el factor de aprendizaje :

(2.17)

Si  = -2 , entonces:

(2.18)

2.11. Entrenamiento Continuo de la Red Adaline

Se puede considerar en general que el cambio de pesos que se le suma al peso


anterior, esto es Wij= (tj-y_inj)xi, se va agregando al peso sináptico anterior para
generar el nuevo valor de peso sináptico. Podemos considerar, entonces, que el peso
sináptico que se tiene después de aplicar el k-ésimo vector de entrada, y tomando en cuneta
que la matriz de pesos iniciales lo denotamos como W ij(0), en este caso el superíndice nos
indica que se trata de la condición inicial, tenemos que:
(2.19)

Donde el término p se agrego simplemente para facilitar el manejo de la sumatoria.


Sustituyendo el término Wij por la regla delta, tenemos:

(2.20)

Es decir, observamos que se parte de una condición inicial (W ij(0)) y vamos


agregando pequeños intervalos o pequeños cambios hasta obtener la condición Wij(k). Si
esos intervalos, que en principio los consideramos discretos, los hacemos más y más
pequeños podemos sustituir la sumatoria de esos términos por una integral, de la siguiente
forma:

(2.21)

En la fig. 2.17, se muestra un diagrama a bloques hecho con Simulink, de una red
Adaline. Se observa que las señales de entrada corresponde a generadores de señales
cuadradas, estas señales son continuas. Si observamos la señal que corresponde a la entrada
de la red (y_in) se comprara con la señal objetivo (t). Específicamente la función que se
trata de entrenar es la función AND bipolar. Una vez que la señal deseada se compara con
la señal de entrada de red se genera la señal de error. Esta señal de error se multiplica con
cada una de las señales de entrada (x1 y x2). Posteriormente este resultado se amplifica por
medio del bloque de amplificación, de la figura se observa que el factor de amplificación es
20. Esto es equivalente a generar el factor dentro de la integral que se muestra en la ec.
(2.21). Posteriormente cada una de estas señales se integra lo cual da como resultado cada
uno de los pesos sinápticos Wij, posteriormente cada uno de los pesos se multiplica
nuevamente por su señal de entrada, para finalmente sumarse para generar nuevamente
y_in. Se observa que la señal correspondiente al peso de polarización es +1. Además, se
observa que la función de activación que se utiliza es un escalón bipolar. Cada una de las
señales se monitorea por medio de los bloques “Scope”. En la fig. 2.18, se observan las
señales generadas. La primera señal corresponde a X1, la segunda señal corresponde a X2,
se observa que la frecuencia de X2 es la doble que la que corresponde a X 1. La señal que
corresponde a la función de salida (tercera señal) se observa que tiene un ciclo de trabajo de
un 25%, lo que corresponde a la función AND. Cada una de las señales tiene una amplitud
de 2 y se le resta –1 para obtener la señal bipolar de entrada-salida correspondiente.
Finalmente, la última de las señales es la señal de respuesta o salida de la red neuronal. En
los primeros ciclos se puede observar que la señal no corresponde exactamente a la señal
deseada, sin embargo, los últimos ciclos corresponden exactamente a la señal deseada. No
se muestra la señal que corresponde al error cuadrático medio, debido a que se considera
innecesario.
Figura 2.17. Implementación de la regla delta para entrenar una red neuronal Adaline.

Figura 2.18. Resultado del entrenamiento de una red Adaline para que aprenda la función AND bipolar,
utilizando señales de pulsos.

2.12. Entrenamiento Alternativo de la Red Perceptron

Se puede utilizar la regla delta para realizar el entrenamiento de la red Perceptron.


Recordemos para la red Adaline que para el punto que se toma para generar la señal de
error es la entrada del error, debido a que la función de activación, esto es la escalón bipolar
no es derivable. Sin embargo, si utilizamos una función de activación derivable, como es el
caso de las funciones sigmoide, sigmoide bipolar, o tangente hiperbólica, podemos tomar
como punto de referencia, la salida de la red neuronal, lo que implica que al momento de
aplicar la regla delta, se obtiene el siguiente resultado:

Donde f(y_in)’ representa la derivada de la función de activación que se utilice. Por


ejemplo, la derivada que corresponde a la función tangente hiperbólica, queda expresada
como:

De forma que, la regla de entrenamiento que corresponde a la red Perceptron es:

Dependiendo de la función de activación que se utilice, las derivadas a esas


funciones cambiarán.

Una de las desventajas que presenta este método, es que la función de activación
que se utiliza, pude presentar variaciones con respecto a la función matemática original.
Este problema es significativo, sobre todo para implementaciones en hardware de este tipo
de red neuronal. Más adelante, en la última sección de esta unidad, se comentará como
utilizando el algoritmo MRIII (Madaline Rule III), este problema se puede superar.

En la fig. 2.19, se muestra el circuito que se utiliza para entrenar la red Perceptron,
nuevamente con la función AND bipolar. De la figura se observa que ahora cada una de las
señales que se monitorea, se utiliza un bloque que guarda el resultado de la simulación,
para después graficar éstos, utilizando la instrucción plot.

En la fig. 2.20, se observa, nuevamente, cada una de las señales de entrada-salida y


la respuesta de la red neuronal. Se observa que en los primeros ciclos la respuesta de la red
no es adecuada, y en los últimos ciclos, la red ha respondido satisfactoriamente.
Figura 2.19. Entrenamiento de una red Perceptron utilizando la regla delta.

Figura 2.20. Resultado del entrenamiento de la red Perceptron para que aprenda la función AND.
2.13. Métodos Alternativos para Entrenar a la red Adaline

En la actualidad existen diferentes variantes del método descendiente abrupto que permiten
un mejor entrenamiento de la red Adaline. Algunos de éstos se basan en el método de
minimización de Newton, y el método de Levenberg-Marquardt que se basa en el método
de Gauss-Newton. A continuación se muestran dichos métodos.

2.13.1. Método de Minimización de Newton

Hasta el momento se ha discutido un solo método de optimización, es decir, el


método de gradiente descendiente, el cual permite minimizar una función, llamada
comúnmente objetivo, y para nuestro caso se trata de del error cuadrático medio, ec. (2.15).

Existen métodos alternativos cuya principal ventaja es que el tiempo de


minimización del error se reduce, e inclusive evitan, en la medida de lo posible, caer en
mínimos locales. Básicamente se puede decir a groso modo que los métodos que más se
han extendido son los métodos basados en identificación de parámetros, los cuales
funcionan adecuadamente para funciones lineales. De éstos podemos mencionar por
ejemplo los estimadores cuadráticos mínimos, estimadores cuadráticos mínimos recursivos,
y los estimadores cuadráticos mínimos recursivos para sistemas variantes en el tiempo.

Otro grupo de métodos cuyo uso se ha extendido al entrenamiento de redes


neuronales son métodos de optimización derivativos los cuales se incluyen los métodos de
gradiente descendiente, métodos descendiente a pasos, métodos de Newton, métodos de
gradiente conjugado, y métodos cuadráticos medios no lineales. Finalmente, otro gran
grupo de métodos de minimización son los conocidos como métodos no derivativos o libres
de derivadas, dentro de los cuales se incluyen son los algoritmos genéticos, método de
simulado recocido, método de búsqueda aleatoria, método simplex colina-abajo, búsqueda
tabú, etc.

De los métodos derivativos que se han mencionado precisamente el método de


Newton, tal vez no sea el más eficaz, pero si es uno de los métodos a partir del cual se han
realizado nuevas contribuciones. Como cualquier método de minimización se debe
comenzar el algoritmo de convergencia con un grupo de parámetros que en este caso
definen a la función objetivo que llamáramos actual, la dirección de descenso d, es decir, la
dirección en que la función objetivo se va minimizado, puede ser determinada utilizando la
segunda derivada de la función objetivo E, siempre y cuando pueda determinarse esta
segunda derivada. Para el caso general de una función objetivo continua, el contorno casi
debe de ser elíptico cuando se encuentre en la vecindad de del mínimo general (ver fig.
2.21).
Figura 2.21. Función y1 = x^2 + 10 seno (3x), donde se puede observar que existe un grupo de mínimos
locales y un mínimo general.

Si la posición de comienzo de actual esta lo suficientemente cercana a un mínimo


local, se espera que la función objetivo E se aproxime a una forma cuadrática, utilizando la
expansión de series de Taylor de E (  ), podemos encontrar que es igual a:

E ()  E(actual) + gT ( - actual) + ½ ( - actual)TH( - actual), (2.22)

donde g es el gradiente de la función E() y H es la matriz Hessiana, que consiste de la


segunda derivada de E():

(2.23)

De la ec. (2.22) se han omitido los términos de orden superior debido a la


suposición de que es suficientemente pequeña.
Debido a que la ec. (2.22) es una función cuadrática de , se puede encontrar su
punto mínimo diferenciando la ec. (2.22) e igualándola con cero, si existe la inversa de
H, se tiene una solución única. Cuando el punto mínimo de la función cuadrática se
selecciona para ser el próximo punto actual, obtenemos el método de Newton o también
llamado Newton-Raphson:

(2.24)

Cuando G = H-1 se obtiene la fórmula general basada en gradientes. La desventaja


que presenta esta ecuación es que en primer lugar como ya se dijo, se debe de obtener la
segunda derivada de la función E, otra desventaja es que H debe ser definida positiva.
Además si el punto actual se encuentra muy alejado del mínimo local *, el método no
llevará a una dirección descendente debido a los términos truncados de orden superior de la
serie de Taylor de la función E(). Para lo cual se sugiere que a (2.24), se le un parámetro
de búsqueda positivo  lo cual permite obtener:

. (2.25)

De manera heurística se puede determinar  para satisfacer E(siguiente) < E(actual), por
ejemplo: k+1 = 1/2 k, k= 0, 1, 2, 3,…etc. Comenzando con 0 = 1 o un valor más pequeño.

2.13.2. Modificación del Método de Levenberg-Marquardt (basado en Gauss-Newton)

El Hessiano puede ser alterado para el caso en que este no sea definido positivo
añadiéndole una matriz P a H para hacerlo definido positivo. Levenberg y Marquadt
aplicaron este concepto al método de Newton. Donde P = I a la ec. (2.25), obteniendo:

, (2.26)

donde I es la matriz identidad y  es un valor positivo. Dependiendo de la magnitud de , el


método transita suavemente entre dos extremos: Método de Newton (  0) y el método
abrupto a pasos (). Por supuesto a la ec. (2.26) es factible de añadírsele el término ,
obteniendo:

. (2.27)

Ahora bien, ya solo resta sustituir nuestra función objetivo a minimizar es decir la
suma de los errores cuadráticos medios. Para un grupo de pares de entrenamiento entrada-
salida (xp, tp), p = 1, …,m, donde m es el número de pares de entrenamiento, tenemos que
encontrar un grupo de parámetros * (grupo de conexiones sinápticas o pesos) que
minimicen la suma del error cuadrático (función objetivo) es decir:
(2.28)

donde recordaremos que tp es la salida deseada cuando se tiene un vector de entrada xp; yp=
f (xp, ) es el modelo de la salida cuando se tiene una entrada xp; rp es el vector compuesto
de ri (), i = 1, …, m.

Por lo tanto, la fórmula de Levenberg-Marquadt queda expresada como:

. (2.29)

Donde g es el gradiente tal y como se definio en la ec. (2.8a) en forma vectorial. El


concepto de Levenberg-Marquadt puede ahora ser aplicado simplemente modificando
(2.29):

, (2.30)

donde J es la matriz Jacobiana de r:

 es un valor no negativo y gh  ½ g por simplicidad. Finalmente pueden incluirse términos


del Jacobiano que involucren términos pasados, es decir:

(2.31)

Finalmente, existen las siguientes variaciones que se puede realizar a la regla de


aprendizaje tipo Adaline:

W = (tp – yj)f’(y_inj)xi ,  b = (tp – yj)f’(y_inj) (2.32)

Donde i = 1, ..., n; j = 1, ..., m;  = razón de aprendizaje (0 <   1): f’() = derivada de


la función de activación. Se recomienda utilizar una función continua, es decir, que sea
derivable.

 W = (tp – yj)xi, b = (tp – yj) (2.33)


Se recomienda utilizar la función de activación lineal.

W = ((tp – yj)xT)/||x||, b = (tp – yj) (2.34)

Esta regla de aprendizaje se aplica cuando el grupo de datos de entrada abarca desde
valores pequeños hasta valores muy grandes.

2.14. Aplicaciones

2.14.1. Filtro Adaptativo Adaline

Se trata de un filtro de respuesta al impulso infinito (FIR) que maneja el siguiente


esquema básico (ver fig. 2.22).

El operador D representa un retraso unitario (delay), mientras que R es el número de


muestras tomadas.

Figura 2.22. Filtro FIR que se implementa con la señal actual y un conjunto de operadores unitarios de atraso
de la misma señal.

Usando la idea anterior, con la función lineal: se


puede crear el siguiente filtro adaptativo (ver fig. 2.23):
Figura 2.23. Filtro FIR adaptativo que se implementa con una red neuronal de una capa y una función de
activación lineal.

En la fig. 2.24, se observa la manera en que un filtro adaptativo se puede utilizar


como predictor lineal. El esquema básico, de este tipo de aplicación consiste en tomar la
señal original, digamos y(k), y considerar esta señal, que al momento de compararla con la
salida de la red neuronal, se genere la señal de error correspondiente. La señales de entradas
correspondientes, se toman por medio de bloques de señales que atrasan la señal. Lo que se
logra con este tipo de aplicación es que a una señal de entrada que corresponde a un vector
[y(k-1), y(k-2), y(k-3), ...], la red neuronal es capaz de predecir, precisamente la señal y(k).
Es más, si esta señal y(k) generada por la red neuronal, se retroalimenta, sin considerara
ahora la señal original, se puede llegar a predecir valor de la señal y(k+1), y(k+2), etc. Es
lógico, que conforme más valores de predicción se quieran generar, el error que
corresponde a la señal original para esos valores se incrementará. Este tipo de aplicaciones,
se pueden utilizar en donde se necesite realizar una predicción de datos, tales como casas de
valores, predicciones meteorológicas, etc. La fig. 2.25, muestra el resultado del predictor
lineal, se observa que la respuesta del filtro se atrasa y se escala con un factor menor a uno
con respecto a la señal original, este tipo de resultado se puede compensar fácilmente,
utilizando un amplificador aplicado a la salida del filtro.
Figura 2.24. Filtro adaptativo utilizado como predictor lineal.

Figura 2.25. Respuesta del predictor lineal.


Figura 2.26. Filtro adaptativo utilizado para implementar un filtro con Respuesta al Impulso Finito.

Figura 2.27. Respuesta del filtro FIR. La función original es la función sinusoidal (línea roja). La señal
filtrada es la línea con ruido aleatorio(línea azul). Y la respuesta del filtro (línea verde).

2.14.2. Cancelación de Ruido Adaptativo


Un filtro adaptativo se puede utilizar para implementar un sistema de cancelación de
ruido. Este sistema considera que existe una señal de ruido que se suma a una señal
original, como puede ser el caso de una señal electroencefalográfica (EEG) de una persona.
En principio, la señal EEG es muy pequeña y la fuente de ruido se encuentra en la línea de
transmisión eléctrica (ruido de 60 Hz). El problema radica en que la misma fuente de ruido
se puede distorsionar, y al momento de sumarse a la señal EEG original, es difícil o
inclusive imposible de modelar. Sin embargo existe la necesidad de cancelar la señal de
ruido. La fig. 2.28, muestra el diagrama esquemático de este sistema. Como se observa, el
filtro adaptativo copia la fuente de ruido original, y que posteriormente se cancela de la
señal contaminada, con lo que queda restaurada la señal. Se observa que el filtro adaptativo
trata de emular al filtro patrón de ruido, que se produce porque la señal de ruido original se
filtra por los órganos internos del paciente. Este filtro es imposible de modelar directamente
con las técnicas tradicionales de señales digitales, pero utilizando el filtro adaptativo, se
logra una muy buena aproximación del mismo. La única condición que se pide para
implementar este tipo de sistema es que el filtro adaptativo tome la fuente de ruido lo más
cercana a la fuente original.

Figura 2.28. Cancelación de ruido de 60 Hz a una señal EEG.

De la fig. 2.28:

(R) =Ruido adaptativo filtrado para cancelación de ruido

() = Error

EEG = Señal electroencefalográfica

S = Señal original

V = Señal de ruido
m = Señal de ruido alterada por el filtro de patrón de ruido

t = Suma de la señal original y la señal de ruido alterada

e = Señal restaurada (señal de error)

a = señal de entrenamiento del filtro adaptativo

2.14.3. Cancelación de Eco

Otra aplicación que se puede realizar es la cancelación de eco en un sistema de


transmisión de datos modulador-demodulador (modem). Los datos al ser transmitidos son
alterados, debido a que en la línea de transmisión a la señal original se le suma una señal de
ruido. En la fig. 2.29 se observa un sistema de cancelación de ruido que consiste de dos
filtro adaptativos, esto se debe a que se tiene una línea de envío de datos y una de recepción
de datos. El sistema híbrido que se muestra permite adaptar una señal de recepción
analógica que se recibe del teléfono y convertirla a una señal digital, y viceversa.

Figura 2.29. Sistema cancelador de ruido en un Modem (Modulador-Demodulador).

2.15. Red Adaline Basada en una Función Elíptica

En su momento, se comentó que una red neuronal puede llevar a cabo la separación
y clasificación de datos, siempre y cuando estos sean linealmente separables. Sin embargo,
funciones como la XOR es una función donde sus datos no son linealmente separables, lo
que significa que una red neuronal con una sola capa no sea capaz de separar el grupo de
datos. Existe la posibilidad, de que utilizando una función no lineal, como lo es un
polinomio, o en este caso, una función elíptica (o hipérbola), se pueda lograr esa separación
de datos linealmente no separables. La ecuación de una elipse queda expresada por medio
de la siguiente ecuación:

(2.35)
En donde cada A,B, ..., F, son constantes, y X y Y representan las variables de la
función elipse. Para el caso de una red neuronal de una capa, podemos considerar que la
respuesta de la red neuronal queda expresada como:
(2.36)

De esta expresión observamos que cada uno de los términos ha sido sustituido por
un peso sináptico, y las variables han sido sustituidas por datos de entrada. La función de
activación que se puede utilizar puede ser desde una simple función identidad, hasta una
función continua. El método de entrenamiento de esta red se puede realizar por medio de la
regla delta.

La fig. 2.30, muestra el resultado de entrenar una red Adaline con función elíptica
que separa el grupo de datos que representa una función XOR. Se observa que la línea de
separación es en realidad una hipérbola, este tipo de funciones se logra debido a que en
principio los pesos iniciales de la red, pueden variar, y que al momento de entrenar la red
esta tienda a una función hiperbólica.

Figura 2.30. Separación de datos no linealmente separables por medio de una red Adaline basada en una
elipse.

En la fig. 2.31, se muestra como se utiliza una red Adaline con función elíptica para
implementar un filtro predictor lineal utilizando Simulink. En la fig. 2.32, se muestra la
respuesta de este filtro. Nuevamente, se observa que la respuesta presenta cierto
defasamiento, y escalamiento con respecto a la función original. En la fig. 2.33, se muestra
la respuesta del error que se genera. Se puede ver que el valor numerico que se obtiene es
del orden de 10-3.
Figura 2.31. Red neuronal Adaline elíptica aplicada para copiar una función sinusoidal (predictor lineal)

Figura 2.31. Respuesta de la red Adaline basada en una función elíptica.


Figura 2.33. Respuesta de la señal de error de la red Adaline elíptica.

En la fig. 2.34, se muestra la curva de aprendizaje promedio que se obtiene durante


el entrenamiento de la red Adaline elíptica. Este tipo de red se obtiene a partir del error
cuadrático medio, el cual va variando conforme se va realizando el entrenamiento de la red,
precisamente, se obtiene un valor del error, por cada época de entrenamiento. De la figura
se observa que el error va disminuyendo, y asintóticamente va tendiendo a un valor
mínimo. De acuerdo a como lo marca el último paso del algoritmo de entrenamiento de la
red Adaline, hasta que el error cuadrático medio no sea menor a cierta tolerancia no se
detendrá el algoritmo de entrenamiento.

De la fig. 2.34 se observa que el entrenamiento se realizó en 81 épocas de


entrenamiento, probablemente el aprendizaje se pudo acelerar si se hubiera considerado una
razón de entrenamiento más adecuada. Específicamente, la razón de aprendizaje que se
seleccionó fue 0.01. Cabe la posibilidad de que el entrenamiento de la red se realice en un
número mayor de épocas de entrenamiento, nuevamente, esto dependerá del valor , que se
obtenga de la razón de aprendizaje. Precisamente, una forma de monitorear el buen o mal
entrenamiento de una red neuronal es a través de su curva de aprendizaje. Si esta curva se
estabiliza en un determinado valor, mayor al valor de tolerancia mínimo especificado,
probablemente se deba a la mala selección del valor de la razón de aprendizaje. En
principio, si se selecciona un valor muy grande, probablemente no se logre un buen
entrenamiento, debido a que la magnitud de los pesos sinápticos cambie demasiado,
interpretándose como una oscilación de estos elementos. Por otro lado, si se selecciona un
valor de razón de aprendizaje muy pequeño, el entrenamiento será muy lento y
probablemente los pesos sinápticos queden “estancados” en un mínimo local. Algunas de
las técnicas que evitan caer en este tipo de problemas ya fueron analizados con
anterioridad, sin embargo Hetch-Nielsen propusieron un método para establecer un valor
inicial para , el cual se obtiene a partir de la esperanza matemática del grupo de datos de
entrada de entrenamiento. A continuación se da una descripción de cómo se derivó este
método.

Figura 2.34. Curva de aprendizaje promedio, que se obtiene durante el entrenamiento de la red neuronal
Adaline con función elíptica.

2.16. Análisis de Convergencia de la Red Adaline

Podemos utilizar simplemente el error medio como medio para obtener la regla de
entrenamiento de una red Adaline, es decir:

(2.37)

Donde el término n nos indica la n-ésima iteración. Nuevamente, utilizando la regla


delta se obtiene que la regla de entrenamiento es:

(2.38)
Se ha dejado el valor 2 solamente por conveniencia. En forma vectorial la ec. (2.38)
queda expresada como:

w(n+1) = w(n) + 2  e(n) x(n) (2.39)

Si consideramos que:

y_in(n) = w(n) x(n)T (2.40)

Sustituyendo la ec. (2.40) en la ec. (2.39):

w(n+1) = w(n) + 2  (t(n) - w(n) x(n)T) x(n) (2.41)

Consideremos ahora la esperanza matematica en ambos lados de la ec. (2.41):

E[w(n+1)] = E[w(n)] + 2  E[(t(n) - w(n) x(n)T) x(n)] (2.42)

Desarrollando:

E[w(n+1)] = E[w(n)] + 2  {E[t(n) x(n)] –E[(w(n) x(n)T) x(n)]} (2.42)

x(n) Es independiente de w(n), por lo tanto se tiene:

E[w(n+1)] = E[w(n)] + 2  h – 2  R E[w(n)] (2.43)

Donde:

h = E[t(n) x(n)] (2.44)

R = E[x(n) x(n)T] (2.45)

Factorizando la ec. (2.43) se tiene que:

E[w(n+1)] = [I – 2  R] E[w(n)] + 2  h (2.46)

Donde: I = Función identidad.

La ec. (2.46) representa un sistema dinámico. Será estable si los eigenvalores de la


matriz [I - 2  R] son menores que “uno” en magnitud. Los eigenvalores (valores propios)
los podemos obtener de [I – 2  R]:

[I – 2  R] = Zi – 2  R Zi
= [1 – 2  i] Zi (2.47)

Donde: I y Zi son los eigenvalores y eigenvectores de la matriz R. En este caso R


representa una función Hessiana dentro de una función cuadrática. Por lo tanto para una
matriz Hessiana:

|(1 -  cI)| < 1

Por lo tanto:

para toda i, o

Donde max representa el máximo eigenvalor de la matriz R.

Ejemplo: Tenemos los siguientes datos de entrenamiento:

A los datos de entrada se les asigna la misma probabilidad de presentar durante


entrenamiento. La matriz R que define a estos dos datos de entrenamiento es igual a:

De donde se obtienen los siguientes eigenvalores:

Desarrollando el determinante:

Donde: 1 = 0; 2 = 1; 3 = 2. De donde max = 2. Por lo que, finalmente:

 < max = 1 / 2 = 0.5


Libremente podemos seleccionar un valor para  = 0.2.

Para el caso en que el número de elementos del vector de entrada sea mayor a 3, se
deberá utilizar algún método numérico que permita calcular el valor del máximo
eigenvalor.

2.17. Redes Derivadas de Redes Adaline, la Red Madaline

La red de entrenamiento Madaline (B. Widrow, 1962) permite la adaptación de la


primera capa de elementos Adaline utilizando una función escalón bipolar cuya salida
provee la entrada a una segunda capa, que consiste de elementos lógicos fijos, que en
principio, pueden ser, por ejemplo, la compuerta or, and, o la función majoría (se considera
que es una función que da el valor de signo de la mayoría de las entradas).

La palabra Madaline es un acrónimo de múltiples Adalines. Es decir, una red Madaline


está constituida de varias redes Adalines, y que tiene como consecuencia que esta red
conserva la misma regla de aprendizaje que esta red, al algoritmo de la red madaline se le
conoce también como regla Madaline I (MRI). Al mismo tiempo, esta red se rige en el
principio de mínimo disturbio, es decir, dada una cierta condición de respuesta de la red
neuronal, únicamente se ajustan el grupo de pesos cuya red neuronal presenta una menor
respuesta, o la neurona que presenta la respuesta más cercana a cero. Otra de las
características que presenta esta red, es que es una red con una arquitectura con dos capas,
de redes neuronales, con lo que se da la posibilidad de que esta red es capaz de resolver
problemas es donde se presenten datos no linealmente separables.

 Arquitectura:

En la fig. 2.34, se observa una red Madaline que tiene dos nodos de entrada, definidos
como X1 y X2, dos neuronas que se encuentran en la primera capa, definidas como Z 1 y Z2,
y una tercera neurona que se encuentra en la segunda capa, definida como Y. Se observa
que cada neurona se le asocian tres pesos, dos sinápticos y uno de polarización. Los valores
que se asocian a los pesos de la primera capa, en primera instancia son proporcionados con
un valor aleatorio, y los valores de corresponden a los de la segunda capa, para el caso de
una función or, son igual a 0.5. El número de neuronas tanto de la primera, como de la
segunda capa puede variar, y no existe teóricamente algún límite.

Durante el entrenamiento de esta red neuronal, los únicos cambios que se realiza esta
red son los de los pesos de la primera capa, en ningún momento se considera que hay que
cambiar los pesos de la segunda capa.

Por lo tanto, si se considera que el valor de los pesos sinápticos de la segunda capa
implementan una función or, para el entrenamiento pueden existir tres situaciones. La
primera, es que al momento de aplicar un vector de entrada se calculan, para la fig. 2.34, las
entradas de red Z_in1 y Z_in2, posteriormente, cada uno de estos valores es evaluado por las
funciones de activación escalón bipolar, para dar los valores Z1 y Z2 respectivamente, a
continuación, estos valores son ahora las señales de entrada para la neurona de la segunda
capa, por lo que se calcula una señal de entrada de red igual a Y_in, y finalmente se obtiene
una respuesta de red igual a Y. Si esta respuesta de red es igual a el valor de salida deseado,
el valor de los pesos no va a cambiar. Sin embargo, nuevamente, si al momento de aplicar
un vector de entrada, la respuesta final de la red es diferente al valor deseado, pueden
presentarse las siguientes situaciones: en el caso en que la respuesta de red este equivocada
y la respuesta de salida deseada fuera +1, es decir, que la respuesta fue Y = -1, implica que
los dos valores de entrada de la neurona de la segunda capa, esto es, tanto Z1 como Z2
tienen un valor igual a –1 (recordar la función or bipolar), y que se debe considerar que
para que la respuesta Y de la red sea +1, que es lo que se desea, se necesita cambiar al
menos uno de los valor de las Z’s. En este caso el principio de mínimo disturbio me
propone que se debe modificar los valores de pesos cuya Z_in sea la más cercana a cero,
esto es, se va a realizar el cambio, cuyos valor vectorialmente hablando, se modifiquen lo
menos posible. En este caso, la regla de aprendizaje que se utiliza es la misma que la de la
red Adaline.

Finalmente, la última de las opciones que se presenta, es que al momento de aplicar un


determinado vector de entrada, y que la respuesta de la red deseada fuera –1, se debe de
cambiar el grupo de pesos que estén asociados a la Z_in con un valor positivo. Si dos o más
valores de Z_in, todos los valores de pesos asociados a estas entradas de red se deben de
cambiar.

A continuación se muestra el algoritmo de entrenamiento de la red Madaline.

 Algoritmo MRI:

Paso 0. Inicializar los pesos: V1, V2 y b3 igual a 0.5, y el valor de los pesos
(sinápticos y de polarización) se fijan con valores aleatorios pequeños.

Paso 1. Mientras que la condición de paro sea falsa, continuar con los pasos 2 a 8.

Paso 2. Fijar s : t y hacer los pasos 3 a 7.

Paso 3. Fijar entradas xi = si

Paso 4. Calcular la entrada de red para cada unidad Adaline oculta Z1 y Z2:

Z_in1 = b1 + X1 w11 + X2 w21

Z_in2 = b2 + X1 w12 + X2 w22

Paso 5. Determinar la salida por cada unidad oculta Adaline:

Z1 = f(Z_in1)

Z2 = f(Z_in2)

Siendo f(Z_inj) una función de activación escalón bipolar.


Paso 6. Determinar la salida de la red y:

y_in = b3 + Z1V1 + Z2V2;

y = f(y_in)

Paso 7. Determinar el error y actualizar los pesos:

Si t = y, entonces no se actualizan los pesos.

De otra forma:

Si t = 1 entonces actualizar los pesos sobre Z j, la unidad cuya entrada de red es lo


más cercana a cero:

bj(new) = bj (old) +  (1 – z_inj),

wik(new)=wik(old) +  (1 – z_inj)xi

Si t = -1, entonces actualizar los pesos sobre todas las unidades Z k que tengan una
entrada de red positiva más cercana a cero:

bk(new) = bk (old) +  (-1 – z_ink),

wik(new)=wik(old) +  (-1 – z_ink)xi

Paso 8. Comprobar la condición de paro.

Si el cambio en los pesos se ha detenido (o alcanzado un nivel aceptable), o bien, si


un número máximo de épocas se ha logrado, entonces alto; de otra forma continuar.
Figura 2.34. Una Madaline con dos Adalines ocultas y una Adaline de salida.

Ejemplo: Función lógica XOR con datos de entrada y salida bipolares empleando el
algoritmo MRI para una red Madaline. ( = 0.5 y función de activación escalón bipolar)

x1 x2 t
+1 +1 -1
+1 -1 +1
-1 +1 +1
-1 -1 -1

Paso 0. b1=03; w11=0.005; w21=0.2; w12=0.1; w22=0.2, b2=0.15; V1=V2=V3=0.5.

Paso 3. Para: [1 1]: -1 (El paso 2 es la tabla de verdad)

Paso 4. z_in1 = 0.3 + 0.05 + 0.2 = 0.55


z_in2 = 0.15 + 0.1 + 0.2 = 0.45

Paso 5. Z1 = Z2 = 1

Paso 6. y_in = 0.5 + 0.5 + 0.5 = 1.5 Y = 1

Paso 7. t – y = -1-1 = -2  0
t = -1, pero z_in1 y z_in2 son positivas, por lo que hay que actualizar ambos grupos
de pesos.

b1(new) = 0.3 + 0.5(-1-0.55) = -0.475


w11(new) = 0.05 + 0.5(-1-0.55)(1) = -0.725
w21(new) = 0.2 + 0.5(-1-0.55)(1) = -0.575

Para el conjunto de pesos asignado a Z2:

b2(new) = 0.15 + 0.5(-1-0.45) = -0.575


w11(new) = 0.1 + 0.5(-1-0.45)(1) = 0.605
w21(new) = 0.2 + 0.5(-1-0.45)(1) = -0.525

Esto es para el primer vector de entrada. Continuando con este procedimiento de


forma similar se encontró que después de cuatro épocas de entrenamiento la condición de
paro se cumple, obteniéndose los siguientes pesos:

w11 = -0.73 w12 = 1.27


w21 = 1.53 w22 = -1.33
b1 = -0.99 b2 = -1.09
Finalmente, se dan las ecuaciones de las rectas que establecen la frontera de
decisión de las neuronas Z1 y Z2, puesto que los pesos de éstas fueron ajustados. Así:

Para Z1: x2 = 0.48 x1 + 0.65


Para Z2: x2 = 0.96 x1 – 0.82

Una regla de entrenamiento Madaline más reciente, llamada MRII (Widrow y


Baxter, 1987), permite el entrenamiento de los pesos en todas las capas de la red. Al igual
que en el entrenamiento de la Madaline, el objetivo es causar la menor cambio de la red en
cualquier paso del proceso de entrenamiento, a fin de causar un pequeño “no aprendizaje”
de los patrones para los que la red a sido previamente entrenada. Esto algunas veces se le
conoce como el principio “no sobrecargar el barco”, en ingles. Se pueden utilizar machas
unidades de salida, el error total para cualquier patrón de entrada (utilizado en el Paso 7b)
es la suma al cuadrado de los errores en cada unidad de salida.

2.18. Algoritmo de Entrenamiento para Madaline (MRII)

Paso 0. Inicializar los pesos: Fijar la razón de aprendizaje .

Paso 1. Mientras la condición de paro sea falsa, hacer los pasos 2-8.

Paso 2. Por cada par de entrenamiento bipolar, s:t, hacer los Pasos 3-7.

Paso 3-6. Calcular la salida de igual forma que el algoritmo MRI.

Paso 7. Determinar el error y actualizar los pesos si es necesario:

Si t  Y, hacer los Pasos 7 a-b por cada unidad oculta cuya entrada de red este lo
suficientemente cercana a 0 (digamos, entre –0.25 y +0.25). Comenzar con la unidad cuya
entrada de red sea lo más cercana a 0, después la más cercana, etc.

Paso 7a. Cambiar las unidades de salida (de +1 a –1, o viceversa).

Paso 7b. Recalcular la respuesta de la red. Si el error se reduce: ajustar los pesos de esta
unidad (usar su nuevo valor de salida asignado como objetivo y aplicar la regla delta).

Paso 8. Prueba de la condición de paro. Si el cambio en los pesos se ha detenido (o


alcanzado un nivel aceptable), o si se alcanzo un número máximo de épocas de
entrenamiento (Paso 2) se ha realizado, entonces alto; de otra manera continuar.

2.19. Regla Madaline III (MRIII)

La implementación de la regla expresada por la ec. (2.15), requiere la realización


exacta de la función de activación continua y la derivada de esta función. Estas funciones
tal vez no se puedan realizar exactamente cuando se implementen en redes neuronales
analógicas. De hecho, en una red analógica, cada Adaline tendrá sus propias no
linealidades. Se han encontrado dificultades en la adaptación en forma práctica con el
algoritmo de retropropagación, debido a las imperfecciones en las funciones no lineales.

Ante esta situación David Andes propuso el algoritmo MRIII. No se utiliza la


derivada de la función de activación. Sino, se añade a la suma Y_in k una señal de pequeña
perturbación Y_ink, y el efecto de esta perturbación se refleja a la salida Y k y el error ek,
donde el término k se refiere a la k-ésima iteración.

El gradiente instantáneo estimado puede obtenerse de la siguiente manera:

(2.48)

Ya que Y_ink es pequeño,

(2.49)

Otra forma de obtener un gradiente instantáneo aproximado por medio de la medida


de los efectos de la perturbación de Y_in se puede obtener de la ec 2.48:

(2.50)

Finalmente, existen dos maneras de implementar el algoritmo MRIII para la red Adaline.
Estas dos alternativas se basan en el método descendiente abrupto, utilizando los gradientes
estimados instantáneos.

(2.51)

(2.52)

En la fig. 2.35 se muestra la manera en como se implementa la ec. (2.51), utilizada


como filtro lineal, para aproximar una función sinusoidal a la cual se le a agregado ruido.
En la fig. 2.36 se muestra el resultado después del entrenamiento. Finalmente, la fig. 2.37,
muestra la señal de error que se genera, se puede observar que esta señal no es mayor a
amplitud de 0.12.
Figura 2.35. Red neuronal que implementa la ecuación 2.38 y que reproduce una función sinusoidal con
ruido.

Figura 2.36. Respuesta de la red neuronal.


Figura 2.37. Señal de error.

También podría gustarte