I.A. Redes Neuronales
REDES NEURONALES Son algoritmos implementados en forma de programa informático o modelo electrónico basados en el funcionamiento del cerebro humano.
Campos de Aplicaciones: I. Reconocimiento de Palabras II. Previsión de eventos futuros III. Filtros de ruidos
Estos algoritmos están basados en unidades de procesamiento llamados NEURONAS y las restricciones en cuanto a su numero de interconexión delimitan el tipo y su ámbito de aplicación RNA Multicapa: • Tienen sus neuronas agrupadas en capas. • Cada neurona en cada capa está conectada a todas las neuronas dela siguiente capa. • Cada neurona procesa la información recibida y la respuesta se propaga a través de la conexión correspondiente y actúa como entrada para todas las neuronas de la siguiente capa. • Propuesto por Rumelhart, Hintony Williamsen 1986 para solventar las limitaciones de las RNA simple. Su característica principal: no linealidad.
Capa de Entrada: recoge los datos Capa intermedia: procesa los datos Capa de salida: genera los valores
Los RNA aceptan datos numéricos, si los datos no lo son, es necesario obtener una representación numérica de los mismos X0 = 1
Modelo: S e ñ a l e s d e
e n t r a d a
x1 x2 xn
Gk
Bias
W1k W2k
Sk
∑
.
Fk Función de activación
W1k Pesos Sinápticos
Yk
- : inhibidores + : excitadores
Salida
Regla de propagación: • Determina la entrada efectiva o nivel de excitación Sk a partir de toda la entrada individual que es capaz de activar la neurona
Entrada Efectiva: • Suma de las entradas de sus pesos (Sk)
Función de activación: (Fk) • Determina el estado de Yk. Su objetivo es limitar la señal de salida a valores normalizados [0 ,1] o [-1 , 1]
Bias: (bk) • Aumentan o disminuyen el umbral de exitación de la neurona, dependiendo de si le introducimos un valor positivo o negativo
Matematicamente. S k =∑Nj=0 W jk x j Si los consideramos vectorialmente:
W k =b k , W 1k ...W nk T =1, X 1 ... X n T X
Y k =F k S k
TIPOS DE FUNCIONES FK DE ACTIVACIÓN: Función Umbral: 1
Neurona de Mc Culloch - Pihs Y k =F k S k =1 si S k 0 Y k =F k S k =0 si S k 0
0
Realiza una categorización binaria del espacio de entrada y constituye la base para el reconocimiento de patrones que sean linealmente separables, mediante adaptación adecuada de sus pesos. Geométricamente:
∑Nj=0 W jk x j 0 Y k =1 ∑Nj=0 W jk x j 0 Y k =0
Función Semi lineal:
{
1 si S k 2a
1
Y k =F k S k = aS k 0
1 2
1
1
si − 2a S k 2a si S k −1 2a
}
Siendo : a = pendiente de la recta definida en el tramo (-1/2a) < Sk < (1/2a)
½ -½
En este caso, ademas de las zonas de ........ ( salida 1 ) y no ......... ( salida 0 ) Se considera una zona de operación lineal entorno al Umbral de excitación de la neurona ( en este caso, valor 0 para la entrada efectiva )
{ ½
En la zona lineal, la salida es proporcional al valor de la entrada efectiva. La función semilineal tiende a adoptar la forma de función Umbral cuando la ganancia 'a' tiende a infinito.
Función Sigmoidal : De la forma ∫ con crecimiento suave y por lo tanto diferenciable, y que presentan un equilibrio adecuado entre el comportamiento lineal y el no lineal.
Ejemplo: Intervalo [0,1] a = pendiente de la curva 1
Y k = F k S k = 1
e
−∞
e
=0 Si a=0
−aS k
Se convierte en la función Umbral siendo a la pendiente ???????????
Las funciones anteriores para rangos [ -1 , 1 ]
Y k =F k S k =
{
1 0
{
si S k ≠0 si S k =0
1
Y k =F k S k = aS k −1
}
Función Umbral
si S k 1a 1
1
si − a S k a si S k −1 a
}
aS k −aS k −e Y k =F k S k =TauhaS k = aS −aS k e ke e
a=∞
Función Semilineal
Función Sigmoidal
Todas las funciones de activación definidas previamente tienen su rango de activación mediante esta forma.
Función Lineal: Un caso especial de función es considerar la función identidad o función lineal, en cuyo caso la salida de la neurona K coincide exactamente con la entrada efectiva de la misma.
Y k =F k S k = S k
Interpretación Geométrica: Aquellos puntos del espacio de entrada que presentan los mismos valores de salida, determina un hiperplano paralelo a una distancia σk en la dirección dada por el singo Ykp
∑Nj=0 W jk x j =0 d kp
p k
d =
∣∑ Nj=0 W
∑
N j =1
jk
x j =0∣
W 2jk x j =0
=
∣ y kp∣
∑
N j=1
W 2jk x j =0
Esta distancia viene dada por la ecuación de la forma que minimizando la distancia media dkp para un conjunto de puntos xp se puede resolver problemas de aproximación de funciones. ( Red Adaline ))
Función de Activación Estocástica: Ase trata de una salida probabilística.
Y k=
{
1 con probabilidad p S k −1 con probabilidad 1− p S k
p S k =
1 −S k /T
1e
}
T : controla el nivel de ruido y expresa la incertidumbre sobre la activación de la neurona
Redes Neuronles con Conexión hacia Adelante: El perceptron: Fué el primer modelo de red neuronal artificial desarrollado en 1958 por Rosenblatt. Despertó un enorme interés en los años 60 debido a su capacidad para aprender a reconocer patrones sencillos. Está formado por varias neuronas para recibir las entradas a la red y una neurona de salida que es capaz de decidir cuándo una entrada a la red pertenece a una de las dos clases que es capaz de reconocer. La neurona de salida del Perceptrón realiza la suma ponderada de las entradas, resta el umbral y pasa el resultado a una función de transferencia de tipo escalón. La regla de decisión es responder +1 si el patrón
.
presentado pertenece a la clase A, o -1 si el patrón pertenece a la clase B
Reglas de aprendizaje: El algoritmo de aprendizaje del Perceptr贸n es de tipo supervisado, lo que requiere que sus resultados sean evaluados y se realicen las oportunas modificaciones de los pesos si fuera necesario. Para entender el mecanismo de aprendizaje del perceptr贸n nos basaremos en la funci贸n OR. Lo que se pretende al modificar los pesos es encontrar una recta que divida el plano en dos espacios de las dos clases de valores de entrada: las que producen un 1 a la salida y las entradas que producen un 0 a la salida. Concretamente deber谩 separar las entradas 01, 10, 11 de la entrada 00.
Función OR: produce 0 cuando las dos entradas son 0. En cualquier otro caso produce 1. La ecuación de salida vendrá dada por y = f ( w1x1+ w2x2) donde wi representa el peso de la conexión, xi la entrada y f la función de transferencia o de salida que en este caso es la función identidad. Si la suma anterior es mayor que 0, la salida será 1 y en caso contrario, -1 (función escalón). Se supone también que se añade una neurona con una entrada fija a 1 y peso w0 igual al opuesto del valor del umbral y que deberá ser ajustado durante la etapa de aprendizaje. A continuación se expone el algoritmo y posteriormente un ejemplo que aclara el funcionamiento. Algoritmo 1. Inicialización de los pesos y del umbral : inicialmente se asigna valores aleatorios a cada uno de los pesos w1, w2 y w0 = θ 2. Presentación de un nuevo par (Entrada, Salida esperada) :
[ X p = x 1 ... x n ,dt ]
3. Cálculo de la salida actual
y t = f [ ∑ w i t x i t −] i
4. Adaptación de los pesos
w i t 1=w i t [d t − y t ] x i t donde d(t) representa la salida deseada y α es un factor de ganancia (velocidad de aprendizaje), en el rango 0.0 a 1.0. En la función OR α=1 5. Volver al paso 2
Ejemplo: 1. Sean inicialmente los valores aleatorios : w0 = 1.5 w1 = 0.5 w2 = 1.5 2. Se van tomando uno a uno los cuatro patrones de entrada 2.1 Patr贸n 00 Entradas : xo = 1; x1 = 0; x2 = 0 Pesos : wo(t) = 1.5 ; w1(t) = 0.5; w2(t) = 1.5 Neti : 1 (1.5) + 0 (0.5) + 0 (1.5) = 1.5 Salida que produce f : 1, puesto que Neti > 0 Salida deseada : 0, puesto que OR (00) = 0 Pesos modificados : wo(t+1) = 0.5 ; w1(t+1) = 0.5 ; w2(t+1) = 1.5 2.2) Patr贸n 01 Entradas : xo = 1; x1 = 0; x2 = 1 Pesos : wo(t) = 0.5 ; w1(t) = 0.5; w2(t) = 1.5 Neti : 1 (0.5) + 0 (0.5) + 1 (1.5) = 2 Salida que produce f : 1, puesto que Neti > 0 Salida deseada : 1, puesto que OR (01) = 1 Error (deseada - obtenida) = 0 Pesos no modificados : wi(t+1) = wi(t) 2.3) Patrones 10 y 11 : la salida obtenida es igual que la deseada por lo que no var铆an los pesos.
3. Se toman de nuevo los cuatro patrones de entrada 3.1 Patr贸n 00 Entradas : xo = 1; x1 = 0; x2 = 0 Pesos : wo(t) = 0.5 ; w1(t) = 0.5; w2(t) = 1.5 Neti : 1 (0.5)+ 0 (0.5) + 0 (1.5) = 0.5 Salida que produce f : 1, puesto que Neti > 0 Salida deseada : 0, puesto que OR(00) = 0 Pesos modificados : wo(t+1) = -0.5 ; w1(t+1) = 0.5 ; w2(t+1) = 1.5 3.2 Patr贸n 01 Entradas : xo = 1; x1 = 0; x2 = 1 Pesos : wo(t) = -0.5 ; w1(t) = 0.5; w2(t) = 1.5 Neti : 1 (-0.5)+ 0 (0.5) + 1 (1.5) = 2 Salida que produce f : 1, puesto que Neti > 0 Salida deseada : 1, puesto que OR (01) = 1 Error (deseada - obtenida) = 0 Pesos no modificados : wi(t+1) = wi(t) 3.3 Patrones 10 y 11 : la salida obtenida es igual que la deseada por lo que no var铆an los pesos.
4. Se toman de nuevo los cuatro patrones de entrada 4.1) Patr贸n 00 Entradas : xo = 1; x1 = 0; x2 = 0 Pesos : wo(t) = -0.5 ; w1(t) = 0.5; w2(t) = 1.5 Neti : 1 (-0.5)+ 0 (0.5) + 0 (1.5) = -0.5 Salida que produce f : 0, puesto que Neti < 0 Salida deseada : 0, puesto que OR (00) = 01 Error (deseada - obtenida) = 0 Pesos no modificados : wi (t+1) = wi(t) 4.2) Patrones 01, 10 y 11 : la salida obtenida es igual que la deseada por lo que no var铆an los pesos. Con estos nuevos pesos, al calcular la salida que se obtiene para cualqueiera de los cuatro patrones de entrada ya no se comete ning煤n error, por lo que la etapa de aprendizaje concluye. La funci贸n ..... se puede desarrollar de una forma similar si desplazamos el valor de w0 esto se puede obtener de forma similar al caso anterior. Sin embargo, la funcion XOR no se puede resolver de la misma manera. Ya que no exsiste ninguna recta que separe los patrones de una clase de la otra. 11
10
00
01
Problema de la Separabilidad Lineal: Como se ha comentado con anterioridad, la función XOR no es representable con un perceptrón bicapa. En el caso de esta función se pretende que para los valores de entrada 00 y 11 se devuelva la clase 0 y para los patrones de entrada 01 y 10, devuelva la clase 1. El problema radica en que no existe ninguna recta que separe lo patrones de ambas clases. La solución podría darse si descompusieramos el espacio en tres regiones: una región contendría una clase de salida y las otras dos regiones contendrían a la otra clase. Para poder trazar dos rectas en el espacio habría que añadir a la capa de salida otra neurona y para elegir entre una u otra zona de las tres, es necesario utilizar una nueva capa con una neurona (capa de salida) cuyas entradas serían las salidas de las dos neuronas anteriores(capa oculta). Resumiendo, hemos pasado de un perceptrón bicapa a uno con tres capas (neuronas de entrada, capa oculta con dos neuronas y capa de salida con una neurona). Las dos zonas o regiones que contienen los puntos (0,0) y (1,1) se asocian a una salida nula de la red y la zona central con la salida 1.
Queda claro que el proceso de aprendizaje del perceptrón consiste en la modificación de los pesos de las conexiones de acuerdo a la diferencia existente entre la salida deseada y la obtenida. Por otro lado, no se tiene por qué conocer cuál debe ser la salida deseada de las células de la capa oculta, por lo que el método utilizado en la función OR no es aplicable a la XOR.
El Perceptrón Multinivel o Multicapa: Es una red neuronal artificial (RNA) formada por múltiples capas , esto le permite resolver problemas que no son linealmente separables, lo cual es la principal limitación del perceptrón . El perceptrón multicapa puede ser totalmente o localmente conectado. En el primer caso cada salida de una neurona de la capa "i" es entrada de todas las neuronas de la capa "i+1", mientras que el segundo, cada neurona de la capa "i" es entrada de una serie de neuronas de la capa "i+1". Las capas pueden clasificarse en tres tipos: Capa de entrada: Constituida por aquellas neuronas que introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento. Capas ocultas: Formada por aquellas neuronas cuyas entradas provienen de capas anteriores y las salidas pasan a neuronas de capas posteriores. Capa de salida: Neuronas cuyos valores de salida se corresponden con las salidas de toda la red. Limitaciones * El Perceptrón Multicapa no extrapola bien, es decir, si la red se entrena mal o de manera insuficiente, las salidas pueden ser imprecisas. * La existencia de mínimos locales en la función de error dificulta considerablemente el entrenamiento, pues una vez alcanzado un mínimo el entrenamiento se detiene aunque no se haya alcanzado la tasa de convergencia fijada. Cuando caemos en un mínimo local sin satisfacer el porcentaje de error permitido se puede considerar: cambiar la topología de la red (número de capas y número de neuronas), comenzar el entrenamiento con unos pesos iniciales diferentes, modificar los parámetros de aprendizaje, modificar el conjunto de entrenamiento o presentar los patrones en otro orden.
Desarrolladas por Bernie Widrow en la Universidad de Stanford poco después de que Ronsenblatt desarrollara el Perceptron. Las arquitecturas de ambas redes son las mismas que la de su antecesor: utilización de neuronas con funciones de transferencia escalón. La red ADALINE utiliza una única neurona de salida, mientras que MADALINE puede tener varias. La diferencia fundamental con respecto al perceptrón se refiere al mecanismo de aprendizaje. Estas redes utilizan la denominada regla Delta de Hidrow-Hoff o regla del mínimo error cuadrado medio, basada en la búsqueda del mínimo de una expresión del error entre la salida deseada y la salida lineal obtenida antes de aplicarle la función de activación escalón (frente a la salida binaria utilizada en el Perceptron). Por tanto, estas redes pueden procesar información analógica, tanto de entrada como de salida, utilizando una función de activación lineal o sigmoidal. En cuanto a la estructura de la red ADALINE, que es casi idéntica a la del Perceptrón, sus autores la consideran formada por un elemento denominado combinador adaptativo lineal (ALC), que obtiene una salida lineal que puede ser aplicada a otro elemento de conmutación bipolar, de forma que si la salida del ALC es positiva, la salida de la red es +1 y -1 en el caso contrario.
Aprendizaje: Se trata de minimizar la diferencia de la salida deseada de la real antes de aplicarle la función L = numero de vectores de entrada o patrones
L
1 〈 E 〉= ∑E 2L k=1 k 2 k
k = Kesimo patron n
n = numero de elementos de entrada de este patrón
S =∑ w j x kj i =0
E k =d k− S k Mediante la regla del gradiente descendente
∂ 〈 E k 〉2 w i =− ∂ wi
α = factor de proporcionalidad que es una función de aceleración y estabilidad
∂ Ek =................... ∂wj
Aplicando al LMS y dividiendo y multiplicando por :
∂ Sk ∂ Sk
∂ 〈 E k 〉2 ∂ S k ∂ 〈 E k 〉2 ∂ S k w i =− ⋅ =− ⋅ ∂w j ∂ Sk ∂ Sk ∂w j
Calculando las derivadas por separado. 2 ∂ 〈 E k 〉 2 ∂ [ 1/ 2d k −S k ] ∂ [1/ 2d 2k −2dk⋅S k S 2k ] = = =1/2−2dk 2sk =− d k −S k =− E k ∂ Sk ∂ Sk ∂ Sk
∑ n
∂ ∂ S k ∂ wi =
j=0
w j⋅X kj
∂ wi
=
∂ w i X ki = X ki ∂ wi
Por lo tanto:
∂ 〈 E k 〉2 =−E k⋅x ki ∂ wi
Finalmente:
∂ 〈 E k 〉2 w i =− =− −E k⋅x ki =⋅E k⋅x ki ∂ wi
Aplicación del proceso iterativo de aprendizaje: 1. Se aplica un vector o patrón de entrada Xk 2. Se obtiene la salida lineal n
Se calcula con respecto a la deseada
S k =∑ w j⋅x kj j=0
Donde:
E k=d k −S k
3. Se actualizan los pesos
w ´j t 1=w j t i E k⋅x Lcj 4. Se repiten los pasos del 1 al 3 con todos los patrones de control ( L ) 5. Si el error cuadrado medio i
〈 E k 〉 =1/ 2L⋅∑ E k 2
2
Es un valor reducido aceptable.
k =1
Terminamos el proceso de aprendizaje Se repite desde el paso uno con todos los patrones otra vez