Académique Documents
Professionnel Documents
Culture Documents
Las neuronas son lentas, comparadas con los ordenadores: 103 sgs.
para activarse/desactivarse
Sin embargo, los humanos hacen algunas tareas mucho mejor que los
ordenadores (p.ej., en 101 segundos uno puede reconocer visualmente a su madre)
Algunas caractersticas de los sistemas biolgicos no estn reejadas en el modelo computacional y viceversa
Cada unidad calcula su salida en funcin de las entradas que recibe La salida de cada unidad sirve, a su vez, como una de las entradas de
otras neuronas. El clculo que se realiza en cada unidad ser muy simple, como veremos.
n j=0 wji aj )
Donde:
g es una funcin de activacin n El sumatorio j=0 wji aj (notado ini ) se hace sobre todas las unidades j que envan su salida a la unidad i Excepto para j = 0, que se considera una entrada cticia a0 = 1 y un peso w0i denominado umbral
1 si x > 0 1 si x 0 1 si x > 0 0 si x 0
En los que interesa la solucin, pero no el por qu de la misma Problemas en los que es asumible que se necesite previamente un
tiempo largo de entrenamiento de la red
Estructura: una red hacia adelante, con una capa de entrada con 960
unidades, una capa oculta de 4 unidades y una capa de salida con 30 unidades.
Objetivo: encontrar los valores de los pesos wji asociados a cada arco
j i de la red de tal forma que para cada dato de entrada x, que propaguemos a lo largo de la red el valor obtenido en la salida coincida con el valor y correspondiente (o se parezca lo ms posible).
Inteligencia Articial II (2008-09) - Tema 5 p. 15/50
Clasicacin Reconocimiento de patrones Optimizacin Prediccin: climatolgica, de audiencias, etc Interpretacin de datos sensoriales del mundo real Reconocimiento de voz Visin articial, reconocimiento de imgenes
Perceptrones
Este tipo de red se denomina perceptrn Un perceptrn con funcin de activacin umbral es capaz de
representar las funciones booleanas bsicas:
Algoritmo:
w (w0 , w1 , . . . , wn ) (pesos iniciales generados aleatoriamente) Repetir hasta que se cumpla la condicin de terminacin: Para cada (x, y) del conjunto de entrenamiento hacer:
Calcular o = umbral( n wi xi ) (con x0 = 1) i=0 Para cada peso wi hacer: wi wi + (y o)xi Devolver w
Anlogamente ocurre si es o = 1 e y = 0. Cuando y = o, los wi no se modican Para perceptrones con funcin de activacin bipolar, el algoritmo es
anlogo
1 2 d (yd
od )2 =
d [yd
g(w0 x0 + w1 x1 + . . . + wn xn )]2
Donde g es la funcin de activacin, yd es la salida esperada para la instancia (xd , yd ) D, y od es la salida obtenida por el perceptrn Ntese que E es funcin de w y que tratamos de encontrar un w que minimice E
En una supercie diferenciable, la direccin de mximo crecimiento viene dada por el vector gradiente E(w) El negativo del gradiente proporciona la direccin de mximo descenso hacia el mnimo de la supercie.
entonces:
(yd od )g (in(d) )(xid )
d
(yd od )2 =
d
Algoritmo:
w (w0 , w1 , . . . , wn ) (aleatoriamente) Repetir hasta que se cumpla la condicin de terminacin: Inicializar w a cero, para i = 0, . . . , n i Para cada (x, y) D , hacer:
Calcular in = n wi xi y o = g(in) i=0 Para cada i = 0, . . . , n, hacer wi wi + (y o)g (in)xi Para cada peso w , hacer w w + w i i i i Devolver w
La Regla Delta
Es una variante del mtodo de descenso por el gradiente En lugar de tratar de minimizar el error cuadrtico cometido sobre
todos los ejemplos de D , procede incrementalmente tratando de descender el error cuadrtico Ed (w) = 1 (y o)2 , cometido sobre el 2 ejemplo (x, y) D que se est tratando en cada momento De esta forma, Ed = (y o)g (in)(xi ), y siendo wi = Ed , wi wi tendremos wi = (y o)g (in)xi , y por tanto wi wi + (y o)g (in)xi Este mtodo para actualizar los pesos iterativamente es conocido como Regla Delta
Algoritmo:
w (w0 , w1 , . . . , wn ) (aleatoriamente) Repetir hasta que se cumpla la condicin de terminacin: Para cada (x, y) D hacer:
Calcular in = n wi xi y o = g(in) i=0 Para cada peso wi hacer: wi wi + (y o)g (in)xi Devolver w
wi wi + (y o)xi
wi wi + (y o)o(1 o)xi
Usualmente, con una sola capa oculta basta para la mayora de las
aplicaciones reales
Inteligencia Articial II (2008-09) - Tema 5 p. 34/50
El peso de la conexin entre la unidad i y la unidad j se nota wij Dado un ejemplo (x, y) D:
Si i es una unidad de la capa de entrada, notaremos por xi la componente de x correspondiente a dicha unidad Si k es una unidad de la capa de salida, notaremos por yk la componente de y correspondiente a dicha unidad
Es decir:
Si i es una unidad de entrada (es decir, de la capa 1), entonces a i = xi Si i una unidad de una capa l = 1, entonces ini = j wji aj y ai = g(ini ) (donde el sumatorio anterior se realiza en todas las unidades j de la capa l 1)
Cmo actualizamos los pesos de conexiones con capas ocultas? Idea: ir hacia atrs, calculando el error j de una unidad de la capa
l 1 a partir del error de las unidades de la capa l (con las que est conectada j )
Esto es: j = g (inj ) i wji i y por tanto wkj wkj + ak j Intuitivamente, cada unidad j es responsable del error que tiene cada
una de las unidades a las que enva su salida Y lo es en la medida que marca el peso de la conexin entre ellas
El Algoritmo de Retropropagacion
Algoritmo:
Inicializar los pesos de la red (aleatoriamente, usualmente con valores cercanos a cero, positivos o negativos) Repetir hasta que se satisfaga el criterio de parada Para cada ejemplo (x, y) D hacer: 1. Calcular la salida ai de cada unidad i, propagando valores hacia adelante (*) 2. Calcular los errores i de cada unidad i y actualizar los pesos wji , propagando valores hacia detrs (*) Devolver red
Procedimiento:
Para cada nodo i de la capa de entrada hacer ai xi Para l desde 2 hasta L hacer: Para cada nodo i de la capa l hacer in i j wji aj y ai g(ini ) (donde en el sumatorio anterior hay un sumando por cada unidad j de la capa l 1)
Procedimiento:
Para cada unidad i en la capa de salida hacer i g (ini )(yi ai ) Para l desde L 1 hasta 1 (decrementando l) hacer: Para cada nodo j en la capa l hacer: j g (inj ) i wji i (donde el sumatorio anterior tiene un sumando por cada unidad i de la capa l + 1) Para cada nodo i en la capa l + 1 hacer wji wji + aj i
Notas:
Para la capa de entrada (l = 1) no es necesario calcular los j Si hubiera pesos umbral, despus de calcular cada i se han de actualizar igualmente : w0i w0i + a0 i (donde a0 = 1)
1 1+ex
y que
Esto signica que no necesitamos almacenar los ini del Paso 1 para
usarlos en el Paso 2
Un ejemplo de Retropropacion
Supongamos dado un ejemplo (x1 , x2 , x3 ) con salida esperada (y6 , y7 ) Supongamos tambin que ya hemos calculado la salida ai en cada unidad i = 1, . . . , 7
Entrada
3 2 1
Concretamente:
En la iteracin n-sima, se actualizan los pesos de la siguiente manera: wji wji + wji donde wji = aj i + wji
(n) (n) (n1)
El algoritmo de retropropagacin parte de una estructura de red ja Hasta ahora no hemos dicho nada sobre qu estructuras son las
mejores para cada problema
En general es un problema que no est completamente resuelto an Lo ms usual es hacer bsqueda experimental de la mejor estructura,
medida sobre un conjunto de prueba independiente
La mayora de las veces, una sola capa oculta con pocas unidades
basta para obtener buenos resultados
Presentan memoria a corto plazo Modelizan mejor el cerebro Ms difciles de entender Grafo dirigido con posibles ciclos La salida de algunas unidades pueden alimentar sus propias entradas Constituyen sistemas dinmicos, cambiantes Pueden alcanzar la estabilidad, exhibir oscilaciones o incluso tener comportamientos caticos Memoria a corto plazo
Inteligencia Articial II (2008-09) - Tema 5 p. 49/50
Bibliografa
Cap. 20: Statistical Learning (disponible on-line en la web del libro) Cap. 4: Articial Neural Networks