Teoría RedesNeuronales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

Capítulo 2.

2: Redes Neuronales
Artificiales

capitulo22 4-3-05 Página 1 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 2 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 3 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:

N
yi = f ( ∑ (w
j =1
ij − x j )2 − θi )

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 4 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 5 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 6 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 7 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 8 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 9 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

M
E = ∑ ( d i − yiN )
2

i =1

Parámetros de la red

N capas de neuronas
M número de salidas (neuronas) en la última capa
Li neuronas en la capa i (o sea, LN = M
yik salida de la neurona i de la capa k
ei entradas a la red
di salida deseada (a aprender)
aik estado de activación de la neurona i de la capa k
k
w ij peso entre la neurona i de la capa (k-1) y la neurona j de la capa k

Fundamento del algoritmo

∂E
wijk ( t + 1) = wijk ( t ) − η
∂wijK ( 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 10 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

∂E ∂y j ∂a kj
k
∂E
= ⋅ ⋅
∂wijk ( t ) ∂y kj ∂a kj ∂wijk ( t )

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

1
y kj = − a kj
1+ e

− a kj − a kj
∂y kj e 1 e
=− = = y kj (1 − y kj )
∂a kj
(1 + e )
2 − a kj − a kj
− a kj 1+ e 1+ e

Recordamos que : a kj = ∑ wijk yik −1


i

Por lo que: y1k y2k y kj

∂a kj
= yik −1 k = 2,..., N wijk
∂wijk ( t )

y1k −1 yik −1 yLkk−−11

∂a1j
= ei En la 1ª capa
∂wij1 ( t )

e1 e2
∂E
Nos queda el término que por definición es δ kj
∂y j
k

En la última capa:

∂E
δ jN = = −2 ( d j − y Nj ) = 2 ( y Nj − d j )
∂y j
N

capitulo22 4-3-05 Página 11 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 y kj tiene conexiones en tres salidas
k +1
posteriores y1,2,3
δE
Entonces, puede escribirse como
δ y kj

δE δ E δ y1k +1 δ E δ y2k +1 δ E δ y3k +1


= • + • + • =
δ y kj δ y1k +1 δ y kj δ y2k +1 δ y kj δ y3k +1 δ y kj

δ E δ y1k +1 δ a1k +1 δ E δ y2k +1 δ a2k +1 δ E δ y3k +1 δ a3k +1


• • + • • + • •
δ y1k +1 δ a1k +1 δ y kj δ y2k +1 δ a2k +1 δ y kj δ y3k +1 δ a3k +1 δ y kj

o bien, generalizando

∂E Lk +1 ∂E ∂yik +1 ∂aik +1
δ kj = =∑ ⋅ ⋅
∂y kj i=1 ∂yik +1 ∂aik +1 ∂y kj

O sea:
LK +1
δ jK = ∑ δ ik +1 ⋅ yik +1 ⋅ (1 − yik +1 ) ⋅ wkji+1 pues aik +1 = ∑ wkji+1 y kj
i =1 j

En resumen, el algoritmo queda como sigue:

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

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


deseada del ejemplo.

(
δ jN = 2 yiN ′d j )
LK +1
δ = ∑ δ ik +1 ⋅ yik +1 ⋅ (1 − yik +1 ) ⋅ wkji+1
k
j
i =1

c) Actualización de pesos

k = 2,..., N wijk ( t + 1) = wijk ( t ) − η ⋅ δ kj ⋅ y kj (1 − y kj ) ⋅ yik −1


Capa 1ª wij1 ( t + 1) = wij1 ( t ) − η ⋅ δ 1j ⋅ y1j (1 − y1j ) ⋅ ei

capitulo22 4-3-05 Página 12 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
S M
E=∑ ∑(d − yliN ) donde el subíndice l se refiere al número de ejemplo y S
2
li
l =1 i =1
es el número total de ejemplos.

Referencia

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


Academic Publishers 1991.

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

También podría gustarte