Capítulo 2.2: Redes Neuronales Artificialeslctorress/RedNeu/LiRna005.pdf · 2. La Neurona...

13
capitulo22 4-3-05 Página 1 de 13 Capítulo 2.2: Redes Neuronales Artificiales

Transcript of Capítulo 2.2: Redes Neuronales Artificialeslctorress/RedNeu/LiRna005.pdf · 2. La Neurona...

capitulo22 4-3-05 Página 1 de 13

Capítulo 2.2: Redes Neuronales Artificiales

capitulo22 4-3-05 Página 2 de 13

1. Neurona natural Hemos visto que una neurona en el hombre funciona por impulsos eléctricos que se generan cuando se cumplen unas determinadas condiciones químicas a su vez generadas por un potencial eléctrico. El ciclo es: un efecto externo –posiblemente una configuración determinada de conexiones dendríticas junto con un determinado potencial eléctrico- produce una despolarización de la célula, esa despolarización equivale a un potencial de acción que se genera y se propaga como un pulso eléctrico. Las concentraciones de Na+ y de K + hacen que el potencial de la membrana vuelva a su valor de reposo. Los impulsos no pueden generarse a una velocidad mayor que 500 veces por segundo. Por tanto las neuronas son relativamente lentas. Por otro lado, se considera que en el cerebro hay unos 100.000 millones de neuronas (10 11) y diez veces más conexiones (10 12). Es materialmente imposible crear un sistema electrónico con tal cantidad de procesadores y de conexiones. La forma de la neurona natural consta de un núcleo con unas conexiones dendríticas cercanas y un axon más largo (que puede llegar a 1m) por el que se transmiten los impulsos a las conexiones dendríticas lejanas que las conectan a otras neuronas. Ver Figura 1.

Fig 1: Esquema de una neurona natural

2. La Neurona artificial La neurona artificial consta como se ve en la figura 2 de varias partes. Por un lado están las entradas, los pesos, el sumatorio, y finalmente la función adaptadora. Los valores de

capitulo22 4-3-05 Página 3 de 13

Fig 2: Esquema de una neurona artificial con su función de activación y función de disparo.

las entradas se multiplican por unos pesos y se suman: Σi wij xi . Esta función suma se completa con la suma de un umbral θ i . Este umbral tiene el mismo efecto que una entrada con valor –1. Sirve para que la suma pueda estar desplazada a izquierda o derecha del origen. Después de la suma, tenemos la función f que se aplica al conjunto resultando el valor final de la salida, llamado también yi. Al resultado de la suma antes de aplicarle la función f, suele llamársele también valor de activación ai.

Fig 3: Esquema de conexión de la salida de una neurona artificial a la entrada de una

posterior neurona.

capitulo22 4-3-05 Página 4 de 13

En la figura 3, aparecen dos neuronas conectadas. La salida de una neurona se conecta a la entrada de la siguiente. Con este tipo de conexiones podemos realizar una red neuronal tan compleja como queramos. En la figura 4 se muestran varias formas normalmente utilizadas para la función f que se aplica al sumatorio (también llamada función adaptadora). La primera de las funciones es la función lineal que es equivalente a no haber función pues es y=x. La segunda función típica que se utiliza para simular una neurona natural es la función escalón. Cuando la suma de productos supera el valor de 0 (en el caso del uso de un umbral, θ i es superar el valor del umbral), la función final es positiva (+1) y si está por debajo de 0, el valor de la función final es negativa (-1). De esta manera, las salidas de cada neurona ya están normalizadas entre +1 y –1 (también podría ser entre 0 y +1). Una función intermedia entre las dos primeras es la llamada función lineal a tramos. El problema de estas dos últimas funciones es que no son derivables en algunos puntos por lo que no puede aplicarse algunos algoritmos que utilizan la derivada (como veremos posteriormente). Para paliar este problema, se utiliza una aproximación a la función escalón que es la función sigmoidea que ya es derivable en todos sus puntos. Otra función que puede utilizarse, que también es derivable es la función gaussiana. Como vemos en la tabla, la función gaussiana permite una activación en torno al valor 0 tanto a derecha como a izquierda. Finalmente, por completitud se pone también la función senoidal, pero ésta se utiliza raramente. Otra de las variantes de la función proceso de la neurona es aquella que sustituye la suma ponderada de las entradas con la función siguiente:

))((1

2i

N

jjiji xwfy θ−−= ∑

=

El significado es el siguiente: En vez de sumar las entradas con unos pesos, lo que se hace es la distancia euclídea entre las entradas y los pesos. Estas funciones se llaman funciones de base radial, dado que la activación depende de la distancia a un punto. Para ilustrar esto , veamos en la figura 5 la zona de activación neuronal para dos entradas x 1 y x 2 cuando los pesos son w 1 y w 2.

capitulo22 4-3-05 Página 5 de 13

Fig 4: Distintas funciones de activación que pueden usarse en la neurona artificial Es de destacar las diferencias entre la neurona natural y la artificial. La natural funciona por impulsos. La artificial tiene un resultado continuo en función de las entradas. En la natural el sumatorio es una función compleja no lineal. En la artificial usamos un sumatorio simple.

capitulo22 4-3-05 Página 6 de 13

Figura 5: Activación de la neurona con una función de activación radial, la parte rayada externa al círculo es el área de activación

3. Clasificación de las redes neuronales Las redes neuronales pueden clasificarse en binarias o no , en supervisadas o no. Las redes binarias son aquellas para las que las entradas tienen un valor de 0 o 1 exclusivamente (las salidas por tanto también valen entre 0 y 1). Las no binarias tienen como entrada y salida valores continuos. Una red neuronal supervisada es aquella para la que existen parejas de ejemplos de entrada y salida para los que puede entrenarse o programarse la red. Una red neuronal no supervisada, es aquella para la que no se tienen ejemplos de entrada/salida, y la función de la red es reorganizar los pesos de la red para obtener a la salida alguna función objetivo, pero a priori no se conoce el resultado que se obtendrá. Una aplicación típica de una red no supervisada es para la realización de agrupamientos automáticos de los datos. Una red clásica no supervisada es la de mapas autoorganizativos de Kohonen. Nosotros en este curso nos centraremos en las redes supervisadas y no binarias. Una red neuronal puede clasificarse también, según la topología en redes de izquierda a derecha (forward), redes con realimentación y redes con memoria.

capitulo22 4-3-05 Página 7 de 13

Una red neuronal de izquierda a derecha considera que las salidas de una serie de neuronas, se conectan a las entradas de otra serie de ellas y así sucesivamente sin haber

Fig. 6: Red neuronal de izquierda a derecha (forward)

Fig. 7: Red neuronal realimentada

capitulo22 4-3-05 Página 8 de 13

nunca conexiones hacia atrás (ver Figura 6). Por otro lado, una red neuronal con

Fig 8:Red neuronal con una capa oculta y una capa de salida conexiones de las salidas a las entradas de la misma neurona o entradas de neuronas de niveles anteriores, se considera una red realimentada (Fig 7). Se dice que una red neuronal tiene memoria, cuando la salida de una neurona es utilizada como entrada en neuronas de la misma capa o de otras, pero después de un cierto tiempo, llamado tiempo de retardo de la red. Estas redes integran la evolución de los vectores de entrada en el tiempo. Por otro lado, una red neuronal genérica, de izquierda a derecha, se considera dividida en capas de neuronas. Se llama primera capa de neuronas aquellas neuronas cuyas conexiones a la entrada están unidas a entradas de la red. La segunda capa de neuronas son aquellas cuyas entradas están formadas por las salidas de las neuronas de la primera capa, y así sucesivamente para siguientes capas, hasta llegar a la capa de salida, que produce tantas salidas como neuronas en la última capa (cada neurona de la última capa produce una salida de la red). En la figura 8 aparece una red de izquierda a derecha con dos capas ,una capa oculta (llamada así porque sus salidas son internas a la red) y una capa de salida.

4. Tipo de proceso El tipo de proceso es la capacidad que tiene la red neuronal para clasificar datos en clases complejas. Supongamos por un momento que la función de activación es la unidad (función lineal). La red neuronal a través de sus capas y de sus sumas de pesos

capitulo22 4-3-05 Página 9 de 13

sucesivas es equivalente una transformación lineal que sería capaz de distinguir clases separadas por una recta en un plano (caso de dos entradas con una red de una sola capa- la de salida). Cuando la red neuronal tiene varias capas, se pueden discriminar regiones lineales pero con formas arbitrarias (ver figura 4). En la primera fila se muestran las regiones que es capaz de discriminar una red neuronal con una sola capa (la de salida). En la fila segunda puede verse la capacidad de discriminación de una red neuronal de dos capas (la de salida y la primera capa (llamada capa oculta). Puede verse que con combinaciones de líneas pueden reconocerse regiones polinomiales convexas. En la tercera y última fila puede verse la capacidad de discriminación de una red neuronal con tres capas (dos capas ocultas) con las que pueden discriminarse zonas no contiguas entre sí.

Fig 4: Posibilidades de clasificación de las redes neuronales dependiendo del número

de capas de neuronas

Cuando la función de activación no es la lineal sino que es una sigmoide, entonces las regiones a diferenciar no están limitadas por rectas, sino que están limitadas por curvas de formas no lineales.

5. El algoritmo de aprendizaje supervisado back propagation El algoritmo de backpropagation es un algoritmo para entrenar o programar los pesos de una red neuronal de izquierda a derecha y supervisada, con un número indeterminado de capas. Se supone pues, que se dispone de pares de ejemplos con entradas y salidas. El objeto de la red será hacer que los pesos configuren la salida de la red para que ésta sea lo más cercana posible a la salida del ejemplo. Consideraremos para empezar que disponemos solo de un ejemplo y queremos ajustar los pesos al mismo. Una vez que los pesos están ajustados a ese ejemplo, y si la red es capaz de generalizar, con otro ejemplo no visto (del que no se conoce su salida) la red actuará de forma análoga y nos dará un valor de salida aproximado cuya función es equivalente a la que se realiza con

capitulo22 4-3-05 Página 10 de 13

el primer ejemplo. En general, se dispone de varios ejemplos para entrenar, y la red se adaptará para que haya un error mínimo para todos ellos. Si la red tiene suficientes ejemplos representativos, actuará con un ejemplo no visto con el mismo tipo de proceso que con ejemplos vistos. El algoritmo básico parte de unos pesos wij aleatorios, y en cada paso del mismo estos pesos se modifican en la dirección contraria a la derivada del error actual respecto a esos mismos pesos. El resultado es obtener unos pesos que contribuyen a un error final menor que el original. Los pesos evolucionan hasta un mínimo local. El error es la diferencia cuadrática media entre las salidas de la red con los pesos actuales y las salidas deseadas del ejemplo actual. Es necesario definir los siguientes términos:

Medida del error

( )2

1

MN

i ii

E d y=

= −∑

Parámetros de la red

N capas de neuronas M número de salidas (neuronas) en la última capa

iL neuronas en la capa i (o sea, MLN = kiy salida de la neurona i de la capa k

ie entradas a la red

id salida deseada (a aprender) kia estado de activación de la neurona i de la capa k kijw peso entre la neurona i de la capa (k-1) y la neurona j de la capa k

Fundamento del algoritmo

( ) ( ) ( )1k k

ij ij Kij

Ew t w t

w tη

∂+ = −

“Variar los pesos en sentido opuesto al gradiente de la superficie de error” El peso en la iteración (o tiempo) t+1 es igual al peso en el tiempo actual (t) modificado en sentido inverso a la derivada del error multiplicada por un factor constante.

Descripción del algoritmo

capitulo22 4-3-05 Página 11 de 13

Para calcular todos los pesos en el tiempo posterior, aparte de conocer los pesos en el tiempo actual, necesitamos saber la derivada del error respecto a los mismos. Para calcular dicha derivada, aplicamos la regla de la cadena al gradiente

( ) ( )

k kj j

k k k kij j j ij

y aE Ew t y a w t

∂ ∂∂ ∂= ⋅ ⋅

∂ ∂ ∂ ∂

Calculemos cada término, para ello vamos a utilizar una función de activación tipo sigmoide:

1

1kj

kj a

ye−

=+

( )( )2

11

1 11

k kj j

k kk j jj

k a aj k k

j jk a aaj

y e ey y

a e ee

− −

− −−

∂= − = = −

∂ + ++

Recordamos que : 1k k kj ij i

i

a w y −= ∑

Por lo que: 1

ky 2ky k

jy

( )1 2,...,

kj k

ikij

ay k N

w t−∂

= =∂

kijw

1

1ky − 1k

iy − 1

1k

kLy

( )

1

1j

iij

ae

w t

∂=

∂ En la 1ª capa

1e 2e

Nos queda el término kj

Ey

∂∂

que por definición es kjδ

En la última capa:

( ) ( )2 2N N Nj j j j jN

j

Ed y y d

∂= = − − = −

capitulo22 4-3-05 Página 12 de 13

A continuación vamos retropropagando (BACK PROPAGATION) el cálculo a las capas anteriores, haciendo que la derivada en estas capas sea dependiente de la derivada en capas posteriores, utilizando de nuevo la regla de la cadena. Para verlo más claro, supongamos una salida k

jy tiene conexiones en tres salidas

posteriores 11,2,3ky +

Entonces, kj

Ey

δδ

puede escribirse como

kj

Ey

δδ

= 11 1

31 21 1 1

1 2 3

kk k

k k k k k kj j j

yy yE E Ey y y y y y

δδ δδ δ δδ δ δ δ δ δ

++ +

+ + +• + • + • =

1 11 1 1 1

3 31 1 2 21 1 1 1 1 1

1 1 2 2 3 3

k kk k k k

k k k k k k k k kj j j

y ay a y aE E Ey a y y a y y a y

δ δδ δ δ δδ δ δδ δ δ δ δ δ δ δ δ

+ ++ + + +

+ + + + + +• • + • • + • •

o bien, generalizando

1 1 1

1 11

k k kLk i ij k k k k

ij i i j

E E y ay y a y

δ+ + +

+ +=

∂ ∂ ∂ ∂= = ⋅ ⋅

∂ ∂ ∂ ∂∑

O sea:

( )1

1 1 1 1

1

1KL

K k k k kj i i i ji

i

y y wδ δ+

+ + + +

=

= ⋅ ⋅ − ⋅∑ pues 1 1k k ki ji j

j

a w y+ += ∑

En resumen, el algoritmo queda como sigue:

a) Cálculo de las salidas de la red para la entrada del ejemplo, o sea Njy

b) Cálculo deδ iterativamente desde k=N hasta k =1 en función de la salida deseada del ejemplo.

( )2N Nj i jy dδ ′=

( )1

1 1 1 1

1

1KL

k k k k kj i i i ji

i

y y wδ δ+

+ + + +

=

= ⋅ ⋅ − ⋅∑

c) Actualización de pesos

( ) ( ) ( )( ) ( ) ( )

1

1 1 1 1 1

2,..., 1 1

Capa 1ª 1 1

k k k k k kij ij j j j i

ij ij j j j i

k N w t w t y y y

w t w t y y e

η δ

η δ

−= + = − ⋅ ⋅ − ⋅

+ = − ⋅ ⋅ − ⋅

capitulo22 4-3-05 Página 13 de 13

Una vez actualizados los pesos, vuelvo al paso a) y realizo otra iteración, y vuelvo a calcular los pesos. El algoritmo termina cuando el cambio en cada paso temporal no modifica sustancialmente (por debajo de cierto margen) los pesos.

En el caso de que se tengan varios ejemplos existen varias alternativas, una es ir

actualizando los pesos según cada ejemplo iterativamente. La otra es considerar el error conjunto de todos los ejemplos antes de actualizarlos como

( )2

1 1

S MN

li lil i

E d y= =

= −∑ ∑ donde el subíndice l se refiere al número de ejemplo y S

es el número total de ejemplos.

Referencia D.P.Morgan, C.L. Scofield, “Neural Networks and Speech Processing”, Kluwer

Academic Publishers 1991.