2. Redes Neuronales Artificiales
2.2.4. Arquitectura de las Redes Neuronales Artificiales
La arquitectura o topolog´ıa de una RNA hace referencia a la forma como los nodos son f´ısicamente dispuestos en la red. Los nodos forman capas o grupos de nodos que comparten una entrada com´un y alimentan su salida a nodos comunes [2, 59]. La estructura de la red desempe˜na un papel importante en el procesamiento
de la informaci´on, ya que est´a estrechamente relacionada con el algoritmo de aprendizaje utilizado para formar a la red.
En general, en una RNA, las neuronas se colocan en capas. Una red puede tener m´as de una capa de neuronas, adem´as de la capa de entrada. La capa de entrada es simplemente un conjunto de nodos de no-procesamiento, los nodos de entradas alimentan a la red. Las neuronas de cada capa se conectan a las neuronas de otras capas a trav´es de un conjunto de conexiones (conexiones sin´apticas). Aunque no se muestra en la Figura 2.1, las neuronas de una capa tambi´en se pueden conectar a otras capas a trav´es de conexiones laterales.
La informaci´on se propaga en un ´unico sentido, desde una neurona presin´aptica (neurona origen) a una neurona postsin´aptica (neurona destino). Puede darse el caso en que la salida de un nodo de proceso o neurona se convierta en la entrada de ese mismo nodo de proceso, en este caso en particular y dependiendo de la direcci´on del flujo de la informaci´on, la red se conoce como una red neuronal progresiva (Feed- forward Neuronal Network, FFNN). Cada conexi´on o v´ınculo se caracteriza por un valor de peso (lo que significa que las conexiones tienen asociado un n´umero real, que indica la importancia de esa conexi´on con respecto al resto de las conexiones), que se conoce como, la fuerza de conexi´on (connection strength). Si dicho peso es positivo la conexi´on se dice que es excitadora, mientras que si es negativa se dice que es inhibidora. Estas conexiones son las v´ıas de la informaci´on dentro de la red [2, 3, 59].
Lo usual es que las neuronas se agrupen en capas de manera que una RNA est´a formada por varias capas de neuronas. Aunque todas las capas son conjuntos de neuronas, seg´un la funci´on que desempe˜nan, suelen recibir un nombre especifico. Las m´as comunes son las siguientes:
Capa de entrada (Input Layer, IL): las neuronas de la capa de entrada, reciben los datos que se proporcionan a la RNA para que los procese.
Capas ocultas (Hidden Layer, HL): estas capas introducen grados de libertad adicionales en la RNA. El n´umero de ellas puede depender del tipo de red que estemos considerando. Este tipo de capas realiza gran parte del procesamiento.
2.2 Redes Neuronales Artificiales
Capa de salida (Output Layer, OL): esta capa proporciona la respuesta de la red neuronal. Normalmente tambi´en realiza parte del procesamiento.
Seg´un su arquitectura podemos clasificar las RNA en dos posibilidades distintas:
1. Redes Progresivas (Feed-forward Network): como se coment´o anterior- mente, en este tipo de red, la informaci´on se mueve en una sola direcci´on, hacia adelante, de los nodos de entrada, a trav´es de los nodos ocultos (si procede) a los nodos de salida. No hay ciclos o bucles en la red. En la Figura 2.3(a), se puede observar un ejemplo de este tipo de redes.
2. Redes Recurrentes (Recurrent Network): son redes donde la informaci´on puede ser transmitida en ambas direcciones, es decir, se permiten las conexiones entre los nodos de las capas superiores con nodos de las capas inferiores. Tambi´en llamadas redes realimentadas. Un ejemplo de esta red se muestra en la Figura 2.3(b).
Capa Entrada Capa Oculta Capa Salida (a) Capa Entrada Capa Oculta Capa Salida (b)
Figura 2.3: a) Muestra un ejemplo de una red Feed-forward, en esta red la informaci´on siempre se mueve en una direcci´on, nunca va hacia atr´as. (b) En las redes recurrentes, la informaci´on puede fluir en dos direcciones y los nodos de entrada se pueden comunicar con los nodos de salida.
Los tres tipos de arquitectura m´as utilizados son el Perceptr´on Multicapa (Mul- tilayer Perceptron, MLP), las redes Autoorganizadas (Self-Organizing Maps, SOM) y las redes de Funci´on de Base Radial (Radial Basis function Networks)[2, 59]. Veremos ahora una breve descripci´on de ellas (el Perceptr´on Multicapa ser´a tratado m´as ampliamente en la Cap´ıtulo 3 de esta investigaci´on, ya que es el tipo de arquitectura usada en esta tesis).
Perceptr´on Multicapa: Este es uno de los tipos de redes m´as comunes. Se basa en otra red m´as simple llamada Perceptr´on Monocapa o simple pero en este el n´umero de capas ocultas puede ser mayor o igual que una. Es una red unidireccional (Feed-forward). La arquitectura t´ıpica de esta red se puede observar en la Figura 2.4. Objeto Capa de Entrada Capa Oculta Capa de Salida
w
ji jiw
kj'
jx
iy
jz
kt
k'
Figura 2.4: Arquitectura de un Perceptr´on Multicapa.
Las neuronas de la capa oculta usan como regla de propagaci´on la suma ponderada de las entradas con los pesos sin´apticos wij y sobre esa suma
ponderada se aplica una funci´on de transferencia de tipo sigmoidal, que es acotada en respuesta.
El aprendizaje que se suele usar en este tipo de redes recibe el nombre de retropropagaci´on del error (Backpropagation Error, BPE). Como funci´on de coste global, se usa el error cuadr´atico medio. Sobre esta funci´on de coste global se aplica alg´un procedimiento de minimizaci´on. En el caso del MLP se hace mediante un descenso por gradiente.
2.2 Redes Neuronales Artificiales
Redes Autoorganizadas: En este tipo de redes el entrenamiento o aprendizaje es diferente al de las redes con entrenamiento supervisado. A la red no se le suministra junto con los patrones de entrenamiento, una salida deseada. Lo que har´a la red es encontrar regularidades o clases en los datos de entrada, y modificar sus pesos para ser capaz de reconocer estas regularidades o clases.
Uno de los tipos de redes que pertenece a esta familia y que se ha usado bastante son los mapas autoorganizadas (Self-Organizing Maps, SOM). La arquitectura t´ıpica de este tipo de mapas se muestra en la Figura 2.5.
Sinapsis
Neuronas
(i,j) (i,j)w
ijkx
tMapa
salida
Capa sensorial
entradas
Figura 2.5: Arquitectura de un mapa autoorganizado.
Como se puede apreciar es una red de tipo unidireccional. La red se organiza en dos capas, siendo la primera capa la formada por las neuronas de entrada. La segunda capa consiste en una matriz de neuronas de dos dimensiones. Como se necesitan dos ´ındices para etiquetar cada neurona, los pesos sin´apticos asociados a cada neurona tendr´an tres ´ındices (i, j, k)
donde(i, j) indican la posici´on de la neurona en la capa y k, la componente o conexi´on con cierta neurona de entrada.
En cuanto al entrenamiento, este es un ejemplo de red que utiliza un aprendizaje de tipo no supervisado. Adem´as, cada neurona utiliza como regla de propagaci´on una distancia de su vector de pesos sin´apticos al patr´on de entrada. Un algoritmo de aprendizaje muy usado con este tipo de redes es el algoritmo de Kohonen.
Redes de Funci´on de Base Radial: Este tipo de redes se caracteriza por tener un aprendizaje o entrenamiento h´ıbrido. La arquitectura de estas redes se caracteriza por la presencia de tres capas: una de entrada, una ´unica capa oculta y una capa de salida.
z
ky
jx
ic
ji jw
ji'
kFigura 2.6: Arquitectura de una red de funci´on de base radial.
Aunque la arquitectura pueda recordar a la de un MLP, la diferencia fundamental est´a en que las neuronas de la capa oculta en vez de calcular una suma ponderada de las entradas y aplicar una sigmoidal, calculan la distancia eucl´ıdea entre el vector de pesos sin´apticos (que recibe el nombre en este tipo de redes de centro o centroide) y la entrada (de manera casi an´aloga a como se hac´ıa con los mapas SOM) y sobre esa distancia se aplica una funci´on de tipo radial con forma gaussiana.
Para el aprendizaje de la capa oculta, hay varios m´etodos, siendo uno de los m´as conocidos el algoritmo denominado k-medias (k-means) que es un algoritmo no supervisado de clustering. K es el n´umero de grupos que se desea encontrar, y se corresponde con el n´umero de neuronas de la capa oculta, que
2.2 Redes Neuronales Artificiales
es un par´ametro que hay que decidir de antemano.
Andina-Pham en el libro “Computational Intelligence for Engineering and Manufacturing” [59], presentan una taxonom´ıa b´asica de las RNA, que resumen todo lo planteado y expuesto acerca de las RNA en este cap´ıtulo, en la Figura 2.7, se presenta dicha taxonom´ıa.
Entradas Continuas Entradas Binarias Redes Neuronales Artificiales Aprendizaje No Supervisado Aprendizaje Supervisado Autoorganizadas (SOM) Perceptrón Multicapa (MLP) Perceptrón Carperter Hamming Holpfield Aprendizaje Supervisado Aprendizaje No Supervisado
El Perceptr´on
3.1.
Introducci´on
La primera red neuronal conocida, fue desarrollada en 1943 por Warren McCulloch y Walter Pitts [66]. McCulloch-Pitts con su comprensi´on del aprendizaje tambi´en anticiparon ideas conexionistas. McCulloch-Pitts dieron m´as importancia al aprendizaje que a factores innatos, consideraron que nuestro cerebro comienza con redes aleatorias, que los est´ımulos provocan conexiones de una determinada manera y que los est´ımulos posteriores, si son fuertes y constantes, llevar´ıan a la red a manifestar una configuraci´on determinada. Esta configuraci´on determinar´ıa que la respuesta de la red fuese distinta ante nuevos est´ımulos. En definitiva, sus ideas fueron importantes al tratar al cerebro como un organismo computacional. La red de McCulloch-Pitts consist´ıa en una suma de las se˜nales de entrada, multiplicadas por unos valores de pesos escogidos aleatoriamente. La entrada es comparada con un patr´on preestablecido para determinar la salida de la red. Si en la comparaci´on, la suma de las entradas multiplicadas por los pesos es mayor o igual que el patr´on preestablecido la salida de la red es uno (1), en caso contrario la salida es cero (0) [66]. Al inicio del desarrollo de los sistemas de inteligencia artificial, se encontr´o gran similitud entre su comportamiento y el de los sistemas biol´ogicos y en principio se crey´o que este modelo pod´ıa computar cualquier funci´on aritm´etica o l´ogica.
3.2 El Perceptr´on Monocapa
3.2.
El Perceptr´on Monocapa
En 1958 el psic´ologo Frank Rosenblatt escribi´o The Perceptron, a Probabilistc Model for Information Storage and Organization in the Brain [67]. Su intenci´on era ilustrar algunas propiedades fundamentales de los sistemas inteligentes en general, sin entrar en mayores detalles con respecto a condiciones espec´ıficas y desconocidas para organismos biol´ogicos concretos. Rosenblatt cre´ıa que la conectividad existente en las redes biol´ogicas tiene un elevado porcentaje de aleatoriedad, por lo que se opon´ıa al an´alisis de McCulloch-Pitts en el cual se empleaba l´ogica simb´olica para analizar estructuras bastante idealizadas y defendi´o m´etodos probabil´ısticos. Rosenblatt opinaba que la herramienta de an´alisis m´as apropiada era la teor´ıa de probabilidades, y esto lo llev´o a una teor´ıa de separabilidad estad´ıstica que utilizaba para caracterizar las propiedades m´as visibles de estas redes de inter- conexi´on ligeramente aleatorias. En esta obra llam´o “perceptrones” a unas redes McCulloch-Pitts capaces de modificar los pesos de sus conexiones, si las respuestas de la red no eran las correctas, y demostr´o que estas redes se pod´ıan entrenar para clasificar ciertos patrones en iguales o distintos, por tanto que eran capaces del reconocimiento de formas sencillas.
El perceptr´on est´a constituido por un conjunto de sensores que reciben los pa- trones de entrada a reconocer o clasificar y una neurona de salida que se ocupa de clasificar a los patrones de entrada en dos clases, seg´un que la salida de la mis- ma sea 1 (activada) o 0 (desactivada). El esquema de un perceptr´on monocapa es presentado en la Figura 3.1 Entradas x 1 x2 x 3 y Salidas
Figura 3.1: Esquema de un perceptr´on monocapa.
3.2.1. Din´amica del Perceptr´on
Supongamos que tenemos una funci´on f de Rn en{−1,1}, que aplica un patr´on
La informaci´on de que disponemos sobre dicha funci´on viene dada por p pares de patrones de entrenamiento:
{x1, z1},{x2, z2}, ....,{xp, zp}
donde xi ∈ Rn y f(xi) = zi ∈ {−1,1}, i = 1,2, ...., p. Dicha funci´on re-
aliza una partici´on en el espacio Rn de patrones de entrada. Por una parte
estar´ıan los patrones con salida +1 y por otra parte los patrones con salida -1. Por lo tanto, diremos que la funci´on f clasifica a los patrones de entrada en dos clases. Ejemplos de funcionesf de este tipo son lafunci´on l´ogica ORola funci´on par.
Ahora vamos a construir un dispositivo sencillo que realice dicha funci´on a partir de un conjunto conocido de patrones (relaciones) de entrenamiento. Para ello vamos a utilizar una unidad de proceso bipolar que es una funci´on matem´atica definida por la siguiente expresi´on (estamos definiendo la funci´on de activaci´on de la neurona, podr´ıa ser cualquier otra funci´on m´as compleja):
f(xi, x2, ....xn) =
(
1→w1x1+...+wnxn≥θ
o→w1x1+...+wnxn≥θ
(3.1)
Donde los par´ametrosw1, w2, ...., wn, se llaman pesos sin´apticos con los cuales se
ponderan los valores de entrada x1, x2, ...., xn, o argumentos de la funci´on; la suma
ponderada se llama potencial sin´aptico y el par´ametroθ se llama umbral o sesgo.
An´alogamente, se define una unidad de proceso binaria como una funci´on matem´atica con dominio en el conjunto n-dimensional {0,1}n y rango el conjun- to{0,1}, definida por y=f(xi, x2, ....xn) = ( 1→w1x1+...+wnxn≥θ o→w1x1+...+wnxn≥θ (3.2)
Cuando la salida de la unidad de proceso es igual a 1 se dice que dicha unidad est´a activada o encendida y presenta el estado 1, mientras que si su salida es igual a 0 se dice que est´a desactivada o apagada, presentando el estado0.
3.2 El Perceptr´on Monocapa
El perceptr´on monocapa es por lo tanto equivalente a una funci´on de discriminaci´on lineal, donde los pesos determinan la pendiente de una recta y el umbral determina la posici´on de esta recta respecto al origen de coordenadas. As´ı va- mos a representar la separaci´on de regiones para dos funciones sencillas como son AND y OR. Tenemos cuatro posibles entradas {0,0},{0,1},{1,0},{1,1}. Tenemos las siguientes regiones:
Para la funci´on AND, tenemos que para cada par de vectores le corresponden las salidas siguientes:
Vectores Salidas
{0,0} 0
{0,1} 0
{1,0} 0
{1,1} 1
Como se puede apreciar en la Figura 3.2, la recta generada permite distribuir correctamente los valores de salida, luego la red podr´ıa computar la funci´on l´ogica AND. 1 x (1,0) (0,0) 0 (1,1) (0,1) 2 x +w2 w1 0 0 0
Figura 3.2: Funci´on l´ogica AND.
En la funci´on OR tenemos las siguientes salidas para los mismos vectores.
Vectores Salidas
{0,0} 0
{0,1} 1
{1,0} 1
Como en el caso anterior, la recta tambi´en distribuye correctamente los valores de salida (ver Figura 3.3) , por ello la red podr´ıa computar la funci´on l´ogica OR. 1 x (1,0) (0,0) 0 (1,1) (0,1) 2 x +w2 w 1 1 1 1
Figura 3.3: Funci´on l´ogica OR.
En general, s´ı en una misma capa tenemosN neuronas artificiales conM entradas comunes, la salida consistir´a en un vector de N componentes, cada una de ellas correspondiente a una de las neuronas de la red. De esta forma podr´ıamos distinguir
2N regiones. Estas regiones estar´ıan separadas en un espacio multidimensional por un hiperplano [61]. En la Figura 3.4, puede apreciarse un ejemplo de un perceptr´on monocapa con N neuronas de salidas.
Perceptrones simples Salidas y x 1 x 2 x 3 x 4 x 5 1 y2 y3 Entradas
3.2 El Perceptr´on Monocapa
3.2.2. Aprendizaje del Perceptr´on
Para la determinaci´on de los pesos sin´apticos y del umbral se sigue un proceso adaptativo que consiste en comenzar con unos valores iniciales aleatorios e ir modific´andolos iterativamente cuando la salida de la unidad no coincide con la salida deseada. Esto se realiza mediante m´etodos convergentes de aproximaciones sucesivas. La regla que se sigue para modificar los pesos sin´apticos se conoce con el nombre de regla de aprendizaje del Perceptr´on simple y consiste en la presentaci´on de un patr´on de entrenamiento a la red y c´alculo de los nuevos valores de pesos y umbrales para cada nodo de la red a˜nadiendo un t´ermino de correcci´on. La expresi´on tanto para los pesos como para el umbral (que se trata como un peso m´as) es la siguiente:
(
wi(t+ 1) =wi(t) + ∆wi(t)
θ(t+ 1) =θ(t) + ∆wi(t)
(3.3)
Determinemos ahora el valor de los incrementos en cada paso del proceso. En su configuraci´on inicial a los pesos de las conexiones se les dan valores arbitrarios, por lo que ante la presencia de est´ımulos la red genera respuestas arbitrarias, respuestas que no coinciden con las deseadas. Se considera que la red ha conseguido aprender cuando los pesos se han ajustado de tal modo que la respuesta que emite es la deseada.
El procedimiento propuesto por Rosenblatt para este entrenamiento era sencillo: se le presenta a la red un patr´on cuya se˜nal se transmite hasta la capa de salida, provocando la activaci´on de alguna de sus unidades; si se activan las unidades de respuesta correcta, no se hace ning´un ajuste de sus pesos; si la respuesta es incorrecta se procede de la manera siguiente: si la unidad deb´ıa estar activada y no lo est´a, aumentar todos los pesos de sus conexiones; si la unidad deb´ıa estar desactivada y est´a activada, disminuir los pesos de sus conexiones. Se repite este procedimiento con todos los patrones deseados de est´ımulo-respuesta. Rosenblatt crey´o que era posible hacer que los pesos convergieran en un conjunto de valores, a partir de los cuales le es posible a la red computar cada uno de los patrones de entrada para producir los correspondientes patrones de salida.
Este procedimiento de forma num´erica se resume en la convergencia de una matriz de pesos W(t) que var´ıa en cada iteraci´on, a un valor W para el cual el vector de entrada X produzca como respuesta el vector de salida Y correcto. De [68], se definen los siguientes elementos para el algoritmo:
N: n´umero de neuronas artificiales del perceptr´on monocapa.
M: n´umero de datos de entrada al perceptr´on.
i: variable utilizada para numerar las entradas.
j: variable utilizada para numerar las neuronas.
T: iteraci´on temporal para la cual la matriz de pesos ha alcanzado el valor deseado.
t: variable utilizada para numerar la iteraci´on en curso, t= 0,1,2, ..., T.
X(t): vector de entrada al perceptr´on para la iteraci´on t. Consiste en la componente de entrada del patr´on de entrenamiento utilizado.
X(t) = (xo(t), x1(t), ....xi(t), ...., xM−1(t))T (3.4)
Y(t): vector de salida ideal que se corresponde con X(t), es decir la salida deseada del patr´on de entrenamiento utilizado.
Y (t) = (yo(t), y1(t), ....yi(t), ...., yN−1(t))T (3.5)
W(t): matriz de pesos de la red para la iteraci´on en curso. Esta matriz tiene dimensiones MxN y los valores de sus componentes son aquellos que modificamos a lo largo del entrenamiento hasta llegar al valor deseado de la matriz W en la iteraci´on T.
3.2 El Perceptr´on Monocapa W(t) = w00(t) . . . w0N−1(t) . . . . . . . . wM−10(t) . . . wM−1N−1(t) (3.6)
θ: es el umbral u offset correspondiente a la neurona artificial j.
ˆ
Y (t): vector disponible a la salida del perceptr´on para la iteraci´on t. En las sucesivas iteraciones, mediante la modificaci´on de los pesos, el objetivo es que esta salida se asemeje lo m´as posible a la ideal.
ˆ
Y (t) = (ˆy0(t),yˆ1(t), ....yˆj(t), ....,yˆN−1(t))T (3.7)
η: ganancia de la red o coeficiente de aprendizaje. Es un valor positivo menor que 1, de su valor depender´a la velocidad de aprendizaje de la red y tambi´en la capacidad de convergencia del algoritmo de aprendizaje.
Una vez que hemos definido los elementos que entran a formar parte del percep- tr´on monocapa pasamos a estudiar los pasos que hay que dar para su entrenamiento:
1. Inicializamos de forma aleatoria los valores correspondientes a los pesos y a