Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos...

53
Introducci´ on a Redes Neuronales D. Balbont´ ın Noval F. J. Mart´ ın Mateos J. L. Ruiz Reina Dpto. Ciencias de la Computaci´on e Inteligencia Artificial Universidad de Sevilla Inteligencia Artificial II 2012–2013 Introducci´on a Redes Neuronales

Transcript of Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos...

Page 1: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Introduccion a Redes Neuronales

D. Balbontın NovalF. J. Martın MateosJ. L. Ruiz Reina

Dpto. Ciencias de la Computacion e Inteligencia ArtificialUniversidad de Sevilla

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 2: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Neuronas artificiales: inspiracion biologica

El aprendizaje en los sistemas biologicos esta basado en redesmuy complejas de neuronas interconectadas

La neurona es una celula que recibe senaleselectromagneticas, provenientes del exterior (10%), o de otrasneuronas (90%), a traves de las sinapsis de las dendritas

Si la acumulacion de estımulos recibidos supera un ciertoumbral, la neurona se dispara. Esto es, emite a traves del axonuna senal que sera recibida por otras neuronas, a traves de lasconexiones sinapticas de las dendritas

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 3: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Neuronas artificiales: inspiracion biologica

El area de la conexion sinaptica puede potenciar o debilitar lasenal recibida. Las conexiones sinapticas son dinamicas. Conel desarrollo y el aprendizaje algunas conexiones se potencian,otras se debilitan

Cerebro humano: red de neuronas interconectadas

Aproximadamente 1011 neuronas con 104 conexiones cada una

Las neuronas son lentas, comparadas con los ordenadores:10−3 sgs. para activarse/desactivarse

Sin embargo, los humanos hacen algunas tareas mucho mejorque los ordenadores (p.ej., en 10−1 segundos uno puedereconocer visualmente a su madre)

La clave: paralelismo masivo

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 4: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Neuronas artificiales: inspiracion biologica

Inspiradas en estos procesos biologicos, surgen las redesneuronales artificiales como un modelo computacional

Sin embargo, no debe de olvidarse que se trata de un modeloformal:

Algunas caracterısticas de los sistemas biologicos no estanreflejadas en el modelo computacional y viceversa

Nosotros las estudiaremos como un modelo matematico en elque se basan potentes algoritmos de aprendizaje automatico,independientemente de que reflejen un sistema biologico o no

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 5: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes Neuronales Artificiales (RNA)

Modelo matematico basado en una estructura de grafodirigido cuyos nodos son neuronas artificiales. Por ejemplo:

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 6: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes Neuronales Artificiales (RNA)

Modelo matematico basado en una estructura de grafodirigido cuyos nodos son neuronas artificiales. Por ejemplo:

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 7: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes Neuronales Artificiales (RNA)

Modelo matematico basado en una estructura de grafodirigido cuyos nodos son neuronas artificiales. Por ejemplo:

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 8: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Funcionamiento general de una red neuronal

Cada nodo o unidad (neurona artificial), se conecta a otrasunidades a traves de arcos dirigidos (modelando la conexionaxon → dendritas)

Cada arco j → i sirve para propagar la salida de la unidad j(notada aj) que servira como una de las entradas para launidad i . Las entradas y salidas son numeros

Cada arco j → i tiene asociado un peso numerico wji quedetermina la fuerza y el signo de la conexion (simulando lasinapsis)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 9: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Funcionamiento general de una red neuronal

Cada unidad calcula su salida en funcion de las entradas querecibe

La salida de cada unidad sirve, a su vez, como una de lasentradas de otras neuronas

El calculo que se realiza en cada unidad sera muy simple, comoveremos

La red recibe una serie de entradas externas (unidades deentrada) y devuelve al exterior la salida de algunas de susneuronas, llamadas unidades de salida

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 10: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Calculo realizado por cada unidad

La salida de cada unidad se calcula: ai = g(∑n

j=0 wjiaj)

Donde:

g es una funcion de activacionEl sumatorio

∑n

j=0 wjiaj (notado ini ) se hace sobre todas lasunidades j que envıan su salida a la unidad iExcepto para j = 0, que se considera una entrada ficticiaa0 = −1 y un peso w0i denominado umbral

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 11: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Umbral y funciones de activacion

Intuitivamente, el umbral w0i de cada unidad se interpretacomo una cantidad que debe superar la suma de las senales deentrada que recibe la unidad, para que se active

La funcion de activacion g tiene el papel de “normalizar” lasalida (usualmente a 1) cuando el umbral de entrada sesupera. Ademas hace que la red no se comporte simplementecomo una funcion lineal

Funciones de activacion mas usadas:

Funcion bipolar: sgn(x) =

{

1 si x > 0−1 si x ≤ 0

Funcion umbral: umbral(x) =

{

1 si x > 00 si x ≤ 0

Funcion sigmoide: σ(x) = 11+e−x

La funcion sigmoide es derivable y σ′(x) = σ(x)(1− σ(x))

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 12: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes neuronales hacia adelante

Cuando el grafo que representa a la red es acıclico, la red sedenomina hacia adelante (las que trataremos en este tema)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 13: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes neuronales hacia adelante

Las unidades en una red hacia adelante suelen estructurarseen capas, tal que cada capa recibe sus entradas de unidadesde la capa inmediatamente anterior

Capa de entrada, capas ocultas y capa de salidaHablamos entonces de redes multicapa

Otras arquitecturas: redes recurrentes, en la que las unidadesde salida retroalimentan a las de entrada

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 14: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes neuronales como clasificadores

Una red neuronal hacia adelante con n unidades en la capa deentrada y m unidades en la capa de salida no es mas que unafuncion de Rn en Rm

Por tanto, puede usarse como un clasificador de conjuntos enRn:

Para clasificacion booleana, tomar m = 1 y:

Si se tienen funciones de activacion umbral o bipolar,considerar un valor de salida (el 1, por ejemplo) como “SI” yel otro como “NO”Si se usa el sigmoide, considerar un valor de salida por encimade 0.5 como “SI” y un valor por debajo como “NO”

En general, para clasificaciones con m posibles valores, cadaunidad de salida corresponde con un valor de clasificacion; seinterpreta que la unidad con mayor salida es la que indica elvalor de clasificacion

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 15: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes Neuronales y Aprendizaje

Cuando hablamos de aprendizaje o entrenamiento de redesneuronales estamos hablando de encontrar los pesos de lasconexiones entre unidades, de manera que la red se comportede una determinada manera, descrita por un conjunto deentrenamiento

Especıficamente, para redes neuronales hacia adelante, eshabitual plantear la siguiente tarea de aprendizaje supervisado

Dado un conjunto de entrenamientoD = {( ~xd , ~yd ) : ~xd ∈ Rn, ~yd ∈ Rm, d = 1, . . . , k}Y una red neuronal de la que solo conocemos su estructura(capas y numero de unidades en cada capa)Encontrar un conjunto de pesos wij tal que la funcion de Rn enRm que la red representa se ajuste lo mejor posible a losejemplos del conjunto de entrenamiento

Tendremos que concretar lo que significa “lo mejor posible”

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 16: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Aplicaciones practicas de redes neuronales

Para problemas que se pueden expresar numericamente(discretos o continuos)

Se suelen utilizar en dominios en los que el volumen de datoses muy alto, y puede presentar ruido: camaras, microfonos,imagenes digitalizadas, etc

En los que interesa la solucion, pero no el por que de la misma

Problemas en los que es asumible que se necesite previamenteun tiempo largo de entrenamiento de la red

Y en los que se requieren tiempos cortos para evaluar unanueva instancia

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 17: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

ALVINN: un ejemplo de aplicacion

RNA entrenada para conducir un vehıculo, a 70 Kms/h, enfuncion de la percepcion visual que recibe de unos sensores

Entrada a la red: La imagen de la carretera digitalizada comoun array de 30× 32 pixels. Es decir, 960 datos de entrada

Salida de la red: Indicacion sobre hacia donde torcer elvolante, codificada en la forma de un vector de 30componentes (desde girar totalmente a la izquierda, pasandopor seguir recto, hasta girar totalmente a la derecha)

Estructura: una red hacia adelante, con una capa de entradacon 960 unidades, una capa oculta de 4 unidades y una capade salida con 30 unidades

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 18: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

ALVINN: un ejemplo de aplicacion

Entrenamiento: mediante un conductor humano, que conduceel vehıculo una y otra y otra vez

Los sensores de vision registran la imagen que el conductor ve(secuencias de 960 datos cada una)

Otros sensores registran simultaneamente las acciones(movimientos del volante) que este realiza

Una vez codificada ambas informaciones adecuadamente,disponemos de distintos pares (secuencias) de la forma (~x , ~y),donde ~x = (x1, x2, . . . , x960) e ~y = (y1, y2, . . . , y30),constituyen ejemplos de entrada/salida para la red

Objetivo: encontrar los valores de los pesos wji asociados acada arco j → i de la red de tal forma que para cada dato deentrada ~x , que propaguemos a lo largo de la red el valorobtenido en la salida coincida con el valor ~y correspondiente(o se parezca lo mas posible)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 19: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Ejemplos de aplicaciones practicas

Clasificacion

Reconocimiento de patrones

Optimizacion

Prediccion: climatologica, de audiencias, etc

Interpretacion de datos sensoriales del mundo real

Reconocimiento de vozVision artificial, reconocimiento de imagenes

Satisfaccion de restricciones

Control, de robots, vehıculos, etc

Compresion de datos

Diagnosis

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 20: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Perceptrones

Empezamos estudiando el caso mas simple de red neuronal:solo una capa de entrada y una de salida

Puesto que cada salida es independiente, podemos centrarnosen una unica unidad en la capa de salida

Este tipo de red se denomina perceptron

Un perceptron con funcion de activacion umbral es capaz derepresentar las funciones booleanas basicas:

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 21: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Perceptrones: limitaciones expresivas

Un perceptron con n unidades de entrada, pesoswi (i = 0, . . . , n) y funcion de activacion umbral (o bipolar),clasifica como positivos a aquellos (x1, . . . , xn) tal que∑n

i=0 wixi > 0 (donde x0 = −1)

La ecuacion∑n

i=0 wixi = 0 representa un hiperplano en Rn

Es decir, una funcion booleana solo podra ser representada porun perceptron umbral si existe un hiperplano que separa loselementos con valor 1 de los elementos con valor 0(linealmente separable)

Los perceptrones con activacion sigmoide tienen limitacionesexpresivas similares (aunque “suavizadas”)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 22: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Perceptrones: limitaciones expresivas

Por ejemplo, las funciones AND y OR son linealmenteseparables pero no la funcion XOR:

A pesar de sus limitaciones expresivas, tienen la ventaja deque existe un algoritmo de entrenamiento simple paraperceptrones con funcion de activacion umbral

Capaz de encontrar un perceptron adecuado para cualquierconjunto de entrenamiento que sea linealmente separable

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 23: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Algoritmo de entrenamiento del Perceptron (umbral)

Entrada: Un conjunto de entrenamiento D (con ejemplos dela forma (~x , y), con ~x ∈ Rn e y ∈ {0, 1}), y un factor deaprendizaje η

Algoritmo

1) Considerar unos pesos iniciales generados aleatoriamente~w ← (w0,w1, . . . ,wn)

2) Repetir hasta que se cumpla la condicion de terminacion1) Para cada (~x , y) del conjunto de entrenamiento hacer

1) Calcular o = umbral(∑n

i=0 wixi ) (con x0 = −1)2) Para cada peso wi hacer: wi ← wi + η(y − o)xi

3) Devolver ~w

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 24: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Comentarios sobre el algoritmo

η es una constante positiva, usualmente pequena (p.ej. 0.1),llamada factor de aprendizaje, que modera las actualizacionesde los pesos

En cada iteracion, si y = 1 y o = 0, entonces y − o = 1 > 0,y por tanto los wi correspondientes a xi positivos aumentaran(y disminuiran los correspondientes a xi negativos), lo queaproximara o (salida real) a y (salida esperada)

Analogamente ocurre si es o = 1 e y = 0

Cuando y = o, los wi no se modifican

Para perceptrones con funcion de activacion bipolar, elalgoritmo es analogo

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 25: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Comentarios sobre el algoritmo

Teorema: El algoritmo anterior converge en un numero finitode pasos a un vector de pesos ~w que clasifica correctamentetodos los ejemplos de entrenamiento, siempre que estos seanlinealmente separables y η suficientemente pequeno (Minskyand Papert, 1969)

Por tanto, en el caso de conjuntos de entrenamientolinealmente separables, la condicion de terminacion puede serque se clasifiquen correctamente todos los ejemplos

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 26: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Otro algoritmo de entrenamiento: la Regla Delta

Cuando el conjunto de entrenamiento no es linealmenteseparable, la convergencia del algoritmo anterior noesta garantizada

En ese caso, no sera posible encontrar un perceptron quesobre todos los elementos del conjunto de entrenamientodevuelva la salida esperada

En su lugar intentaremos minimizar el error cuadratico:E(~w) = 1

2

∑d (yd − od )

2 = 12

∑d [yd − g(w0x0 + w1x1 + · · ·+ wnxn)]2

Donde g es la funcion de activacion, yd es la salida esperadapara la instancia (~xd , yd ) ∈ D, y od es la salida obtenida por elperceptronNotese que E es funcion de ~w y que tratamos de encontrar un~w que minimice E

En lo que sigue, supondremos perceptrones con funcion deactivacion g diferenciable (sigmoides, por ejemplo)

Quedan excluidos, por tanto, perceptrones umbral o bipolares

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 27: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Idea del metodo del descenso por el gradiente

Representacion grafica de E (~w) (con n = 1 y g la identidad)

-1

0

1

2

-2-1

01

23

0

5

10

15

20

25

w0 w1

E[w

]

En una superficie diferenciable, la di-reccion de maximo crecimiento vienedada por el vector gradiente ∇E (~w)El negativo del gradiente proporcionala direccion demaximo descenso haciael mınimo de la superficie.

Puesto que igualar a cero el gradiente supondrıa sistemas deecuaciones complicados de resolver en la practica, optamospor un algoritmo de busqueda local para obtener un ~w para elcual E (~w) es mınimo (local),

La idea es comenzar con un ~w aleatorio y modificarlosucesivamente en pequenos desplazamientos en la direccionopuesta al gradiente, esto es ~w ← ~w +∆~w , siendo∆~w = −η∇E (~w), y η el factor de aprendizaje

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 28: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Derivacion de la regla de descenso por el gradiente

El gradiente es el vector de las derivadas parciales de Erespecto de cada wi

∇E (~w) =

[

∂E

∂w0,∂E

∂w1, . . . ,

∂E

∂wn

]

Notando por xid la componente i-esima del ejemplo d-esimo(y x0d = −1) y por in(d) =

∑ni=0 wixid , entonces:

∂E

∂wi

=∂

∂wi

1

2

d

(yd − od)2 =

d

(yd − od)g′(in(d))(−xid)

Esto nos da la siguiente expresion para actualizar pesosmediante la regla de descenso por el gradiente:

wi ← wi + η∑

d

(yd − od)g′(in(d))xid

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 29: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Algoritmo de entrenamiento de descenso por el gradiente

Entrada: Un conjunto de entrenamiento D (con ejemplos dela forma (~x , y), con ~x ∈ Rn e y ∈ R), un factor de aprendizajeη y una funcion de activacion g diferenciable

Algoritmo

1) Considerar unos pesos iniciales generados aleatoriamente~w ← (w0,w1, . . . ,wn)

2) Repetir hasta que se cumpla la condicion de terminacion1) Inicializar ∆wi a cero, para i = 0, . . . , n2) Para cada (x , y) ∈ D,

1) Calcular in =∑n

i=0 wixi y o = g(in)2) Para cada i = 0, . . . , n, hacer

∆wi ← ∆wi + η(y − o)g ′(in)xi3) Para cada peso wi , hacer wi ← wi +∆wi

3) Devolver ~w

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 30: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

La Regla Delta

Es una variante del metodo de descenso por el gradiente

En lugar de tratar de minimizar el error cuadratico cometidosobre todos los ejemplos de D , procede incrementalmentetratando de descender el error cuadratico Ed(~w) = 1

2(y − o)2,cometido sobre el ejemplo (~x , y) ∈ D que se este tratando encada momento

De esta forma, ∂Ed

∂wi= (y − o)g ′(in)(−xi ), y siendo

∆wi = −η∂Ed

∂wi, tendremos ∆wi = η(y − o)g ′(in)xi , y por

tanto wi ← wi + η(y − o)g ′(in)xiEste metodo para actualizar los pesos iterativamente esconocido como Regla Delta

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 31: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Entrenamiento de Perceptrones con la Regla Delta

Entrada: Un conjunto de entrenamiento D (con ejemplos dela forma (~x , y), con ~x ∈ Rn e y ∈ R), un factor de aprendizajeη y una funcion de activacion g diferenciable

Algoritmo

1) Considerar unos pesos iniciales generados aleatoriamente~w ← (w0,w1, . . . ,wn)

2) Repetir hasta que se cumpla la condicion de terminacion1) Para cada (~x , y) ∈ D

1) Calcular in =∑n

i=0 wixi y o = g(in)2) Para cada peso wi , hacer

wi ← wi + η(y − o)g ′(in)xi3) Devolver ~w

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 32: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Casos particulares de la Regla Delta

Perceptrones con funcion de activacion lineal:

En este caso g ′(in) = C (constante)Por tanto, la Regla Delta queda (transformando η

convenientemente):

wi ← wi + η(y − o)xi

Perceptrones con funcion de activacion sigmoide:

En ese caso, g ′(in) = g(in)(1− g(in)) = o(1− o)Luego la regla de actualizacion de pesos queda:

wi ← wi + η(y − o)o(1− o)xi

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 33: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Algunos comentarios sobre la Regla Delta

Tanto el metodo de descenso por el gradiente como la ReglaDelta, son algoritmos de busqueda local, que convergen haciamınimos locales del error entre salida obtenida y salidaesperada

En descenso por el gradiente, se desciende en cada paso por elgradiente del error cuadratico de todos los ejemplosEn la Regla Delta, en cada iteracion el descenso se producepor el gradiente del error de cada ejemplo

Con un valor de η suficientemente pequeno, el metodo dedescenso por el gradiente converge (puede queasintoticamente) hacia un mınimo local del error cuadraticoglobal

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 34: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Algunos comentarios sobre la Regla Delta

Se puede demostrar que haciendo el valor de η

suficientemente pequeno, la Regla Delta se puede aproximararbitrariamente al metodo de descenso por el gradiente

En la Regla Delta la actualizacion de pesos es mas simple,aunque necesita valores de η mas pequenos. Ademas, a vecesescapa mas facilmente de los mınimos locales

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 35: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Regla Delta y perceptrones con umbral

La regla de entrenamiento del perceptron con umbral, y laRegla Delta para el entrenamiento de perceptrones lineales,son aparentemente la misma: wi ← wi + η(y − o)xi , pero:

Las funciones de activacion son distintasLas propiedades de convergencia tambien:

Umbral: converge en un numero finito de pasos hacia unajuste perfecto, siempre que el conjunto de entrenamiento sealinealmente separableRegla Delta: converge asintoticamente hacia un mınimo localdel error cuadratico, siempre

Las propiedades de separacion tambien son distintas:

Umbral: busca hiperplano que separe completamente los datosRegla Delta: busca un modelo de regresion, el hiperplano(posiblememente suavizado con el sigmoide) mas proximo alos datos de entrenamiento

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 36: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes multicapa (hacia adelante)

Como hemos visto, los perceptrones tienen una capacidadexpresiva limitada. Es por esto que vamos a estudiar las redesmulticapa

Recordar que en una red multicapa, las unidades seestructuran en capas, en las que las unidades de cada capareciben su entrada de la salida de las unidades de la capaanterior

Capa de entrada es aquella en la que se situan las unidades deentradaCapa de salida es la de las unidades cuya salida sale al exteriorCapas ocultas son aquellas que no son ni de entrada ni desalida

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 37: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes multicapa: capacidad expresiva

Combinando unidades en distintas capas (y siempre que lafuncion de activacion sea no lineal) aumentamos la capacidadexpresiva de la red

Es decir, la cantidad de funciones f : Rn → Rm que puedenrepresentarse aumenta

Usualmente, con una sola capa oculta basta para la mayorıade las aplicaciones reales

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 38: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Entrenamiento de redes multicapa

Analogamente al caso del perceptron, tenemos un conjunto deentrenamiento D tal que cada (~x , ~y) ∈ D contiene una salidaesperada ~y ∈ Rm para la entrada ~x ∈ Rn

Partimos de una red multicapa con una estructura dada yqueremos encontrar los pesos de la red de manera que lafuncion que calcula la red se ajuste lo mejor posible a losejemplos

Lo haremos mediante un proceso de actualizaciones sucesivasde los pesos, llamado algoritmo de retropropagacion, basadoen las mismas ideas de descenso por el gradiente que hemosvisto con el perceptron

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 39: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes multicapa: notacion

Supondremos una red neuronal con n unidades en la capa deentrada, m en la de salida y L capas en total

La capa 1 es la de entrada y la capa L es la de salidaCada unidad de una capa l esta conectada con todas lasunidades de la capa l + 1

Supondremos una funcion de activacion g diferenciable(usualmente, el sigmoide)

El peso de la conexion entre la unidad i y la unidad j se notawij

Dado un ejemplo (~x , ~y) ∈ D:

Si i es una unidad de la capa de entrada, notaremos por xi lacomponente de ~x correspondiente a dicha unidadSi k es una unidad de la capa de salida, notaremos por yk lacomponente de ~y correspondiente a dicha unidad

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 40: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Redes multicapa: notacion

Al calcular la salida real que la red obtiene al recibir comoentrada un ejemplo ~x , notaremos ini a la entrada que recibeuna unidad i cualquiera y ai a la salida por la misma unidad i

Es decir:

Si i es una unidad de entrada (es decir, de la capa 1), entoncesai = xiSi i una unidad de una capa l 6= 1, entonces ini =

j wjiaj yai = g(ini ) (donde el sumatorio anterior se realiza en todas lasunidades j de la capa l − 1)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 41: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Algoritmo de Retropropagacion: idea intuitiva

Dado un ejemplo (~x , ~y) ∈ D, y una unidad i de la capa desalida, la actualizacion de los pesos que llegan a esa unidad sehara de manera similar a como se hace con la Regla Delta:

Sea ∆i = g ′(ini )(yi − ai ) (error modificado en la unidad i)Entonces wji → wji + ηaj∆i

En las unidades de capas ocultas, sin embargo, no podemoshacer lo mismo

Ya que no sabemos cual es el valor de salida esperado en esasunidades

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 42: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Algoritmo de Retropropagacion: idea intuitiva

¿Como actualizamos los pesos de conexiones con capasocultas?

Idea: ir hacia atras, calculando el error ∆j de una unidad de lacapa l − 1 a partir del error de las unidades de la capa l (conlas que esta 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 quetiene cada una de las unidades a las que envıa su salida

Y lo es en la medida que marca el peso de la conexion entreellas

La salida de cada unidad se calcula propagando valores haciaadelante, pero el error en cada una se calcula desde la capa desalida hacia atras (de ahı el nombre de retropropagacion)

El metodo de retropropagacion se puede justificarformalmente como descenso por el gradiente del error, pero noveremos aquı la demostracion

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 43: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

El Algoritmo de Retropropagacion

Entrada: Un conjunto de entrenamiento D (con ejemplos dela forma (~x , ~y), con ~x ∈ Rn e ~y ∈ Rm), un factor deaprendizaje η, una funcion de activacion g diferenciable y unaestructura de red

Algoritmo

1) Inicializar los pesos de la red (aleatoriamente, usualmentecon valores cercanos a cero, positivos o negativos)

2) Repetir hasta que se satisfaga el criterio de parada1) Para cada ejemplo (~x , ~y) ∈ D hacer:

1) Calcular la salida ai de cada unidad i , propagandovalores hacia adelante

2) Calcular los errores ∆i de cada unidad i y actualizarlos pesos wji , propagando valores hacia detras

3) Devolver red

En las siguientes transparencias desarrollamos los puntos2.1.1) y 2.1.2)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 44: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Propagacion hacia adelante

Desarrollamos con mas detalle el punto 2.2.1) anterior:propagacion hacia adelante para un ejemplo (~x , ~y) ∈ D

Procedimiento1) Para cada nodo i de la capa de entrada hacer ai ← xi2) Para l desde 2 hasta L hacer

1) Para cada nodo i de la capa l hacer ini ←∑

jwjiaj y

ai ← g(ini ) (donde en el sumatorio anterior hay unsumando por cada unidad j de la capa l − 1)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 45: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Propagacion hacia atras

Una vez calculados en el punto 2.1.1) los valores de ini y aicorrespondientes al ejemplo (~x , ~y) ∈ D, desarrollamos conmas detalle el punto 2.1.2), propagar hacia atras de los erroresy actualizar los pesos

Procedimiento1) Para cada unidad i en la capa de salida hacer

∆i ← g ′(ini )(yi − ai )2) Para l desde L− 1 hasta 1 (decrementando l) hacer

1) Para cada nodo j en la capa l hacer1) ∆j ← g ′(inj)

∑iwji∆i (donde el sumatorio anterior

tiene un sumando por cada unidad i de la capa l + 1)2) Para cada nodo i en la capa l + 1 hacer

wji ← wji + ηaj∆i

Para la capa de entrada (l = 1) no es necesario calcular los ∆j

Si hubiera pesos umbral, despues de calcular cada ∆i se han deactualizar igualmente : w0i ← w0i + ηa0∆i (donde a0 = −1)

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 46: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Retropropagacion con unidades sigmoide

La version mas comun del algoritmo de retropropagacion es laque se realiza con redes con funcion de activacion sigmoide

Recordar que el sigmoide se define σ(x) = 11+e−x y que

σ′(x) = σ(x)(1− σ(x))

Por tanto, en el caso de que g(x) = σ(x), entoncesg ′(ini ) = g(ini )(1− g(ini )) = ai (1− ai )

Ası, el calculo de errores en el Paso 2 queda:

Para la capa de salida, ∆i ← ai (1− ai )(yi − ai )Para las capas ocultas, ∆j ← aj(1− aj)

i wji∆i

Esto significa que no necesitamos almacenar los ini del Paso 1para usarlos en el Paso 2

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 47: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Un ejemplo de Retropropacion

Considerese una red neuronal con la siguiente estructura en laque se usa el sigmoide como funcion de activacion:

1

2

5

4

7

6

3

Supongamos dado un ejemplo (x1, x2, x3) con salida esperada(y6, y7)Supongamos tambien que ya hemos calculado la salida ai encada unidad i = 1, . . . , 7

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 48: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Traza de la Retropropagacion del error

Capa Unidad Calculos que se realizan

Salida 7 ∆7 = a7(1− a7)(y7 − a7)w0,7 ←− w0,7 + ηa0∆7

6 ∆6 = a6(1− a6)(y6 − a6)w0,6 ←− w0,6 + ηa0∆6

Oculta 5 ∆5 = a5(1− a5)[w5,6∆6 + w5,7∆7]

w0,5 ←− w0,5 + ηa0∆5

w5,6 ←− w5,6 + ηa5∆6

w5,7 ←− w5,7 + ηa5∆7

4 ∆4 = a4(1− a4)[w4,6∆6 + w4,7∆7]

w0,4 ←− w0,4 + ηa0∆4

w4,6 ←− w4,6 + ηa4∆6

w4,7 ←− w4,7 + ηa4∆7

Entrada 3 w3,4 ←− w3,4 + ηa3∆4

w3,5 ←− w3,5 + ηa3∆5

2 w2,4 ←− w2,4 + ηa2∆4

w2,5 ←− w2,5 + ηa2∆5

1 w1,4 ←− w1,4 + ηa1∆4

w1,5 ←− w1,5 + ηa1∆5

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 49: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Momentum en el algoritmo de retropropagacion

Retropropagacion es un metodo de descenso por el gradientey por tanto existe el problema de los mınimos locales

Una variante muy comun en el algoritmo de retropropagaciones introducir un sumando adicional en la actualizacion depesos

Este sumando hace que en cada actualizacion de pesos setenga tambien en cuenta la actualizacion realizada en laiteracion anterior

Concretamente:

En la iteracion n-esima, se actualizan los pesos de la siguiente

manera: wji ← wji +∆w(n)ji donde ∆w

(n)ji = ηaj∆i +α∆w

(n−1)ji

0 < α ≤ 1 es una constante denominada momentum

La tecnica del momentum puede ser eficaz a veces paraescapar de “pequenos mınimos locales”, donde una version sinmomentum se estancarıa

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 50: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Criterio de parada para retropropagacion

Notese que el algoritmo podrıa recorrer varias veces elconjunto de entrenamiento

O podrıa tomar aleatoriamente el ejemplo a tratar en cadaiteracionO incluso parar y recomenzar posteriormente el entrenamientoa partir de pesos ya entrenados

Se pueden usar diferentes criterios de parada en el algoritmode retropropagacion. Por ejemplo:

Numero de iteraciones prefijadasCuando el error sobre el conjunto de entrenamiento esta pordebajo de una cota prefijada

En este ultimo caso, se corre el riesgo de sobreajuste, por loque lo mas frecuente es usar un conjunto de pruebaindependiente para validar el error, o incluso validacioncruzada

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 51: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Aprendiendo la estructura de la red

El algoritmo de retropropagacion parte de una estructura dered fija

Hasta ahora no hemos dicho nada sobre que estructuras sonlas mejores para cada problema

En nuestro caso, se trata de decidir cuantas capas ocultas setoman, y cuantas unidades en cada capa

En general es un problema que no esta completamenteresuelto aun

Lo mas usual es hacer busqueda experimental de la mejorestructura, medida sobre un conjunto de prueba independiente

La mayorıa de las veces, una sola capa oculta con pocasunidades basta para obtener buenos resultados

Las redes grandes corren un mayor peligro de sobreajuste

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 52: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Antes de terminar .... Redes recurrentes

Redes recurrentes: Permiten que sus salidas alimenten a susentradas. Ası el estado de la red (sus pesos) simula un sistemadinamico que puede alcanzar un estado estable, exhibiroscilaciones o incluso comportarse de forma caotica

Presentan memoria a corto plazoModelizan mejor el cerebroMas difıciles de entenderGrafo dirigido con posibles ciclosLa salida de algunas unidades pueden alimentar sus propiasentradasConstituyen sistemas dinamicos, cambiantesPueden alcanzar la estabilidad, exhibir oscilaciones o inclusotener comportamientos caoticosMemoria a corto plazo

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales

Page 53: Introducci n a Redes Neuronales - Universidad de …Redes Neuronales y Aprendizaje Cuando hablamos de aprendizaje o entrenamiento de redes neuronales estamos hablando de encontrar

Bibliografıa

Russell, S. y Norvig, P. Artificial Intelligence (A modernapproach) (Second edition) (Prentice Hall, 2003) (o suversion en espanol)

Cap. 20: “Statistical Learning” (disponible on-line en la webdel libro)

Mitchell, T.M. Machine Learning (McGraw-Hill, 1997)

Cap. 4: “Artificial Neural Networks”

Inteligencia Artificial II 2012–2013 Introduccion a Redes Neuronales