Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje...

28
Redes Neuronales Las redes neuronales son modelos computacionales que buscan imitar el funcio- namiento de las neuronas biol´ ogicas. Se usan principalmente para el reconocimiento de patrones complejos. Para construir una red neuronal, es necesario hacerla pasar por un proceso de aprendizaje. Jorge Baier Aranda, PUC 24

Transcript of Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje...

Page 1: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Redes Neuronales

Las redes neuronales son modelos computacionales que buscan imitar el funcio-namiento de las neuronas biologicas.

Se usan principalmente para el reconocimiento de patrones complejos.

Para construir una red neuronal, es necesario hacerla pasar por un proceso deaprendizaje.

Jorge Baier Aranda, PUC 24

Page 2: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Redes Neuronales Artificialies (RNAs)

Una red neuronal es un grafo dirigido construido a partir de elementos computa-cionales basicos. Una red neuronal codifica funciones numericas.

La funcion representada depende de parametros de la red (especificados comoetiquetas en el grafo), y de la arquitectura de la misma (forma dada a lasinterconexiones).

Los elementos computacionales basicos de una red son:

• Suma un nodo suma recibe un conjunto de entradas numericas. Cada entradapuede provenir de otros nodos o del medio.

Σ

x0

xn

... ∑ni=0 xi

Jorge Baier Aranda, PUC 25

Page 3: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

• Multiplicacionx

wwx

• Umbral (threshold units)

x cd0 en otro caso1 si x > 0

Jorge Baier Aranda, PUC 26

Page 4: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

¿Cuándo Utilizar RNAs?

Problemas de aprendizaje altamente multidimensional (valores discretos o reales)

Funcion a aprender (funcion objetivo) real o discreta (puede ser vectorial).

Datos con ruido.

Funcion a aprender con forma desconocida.

El resultado (la funcion objetivo encontrada) no requiere de ser analizada.

Jorge Baier Aranda, PUC 27

Page 5: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Una Neurona

El modelo de neurona de McCulloch-Pitts (1943) o perceptron es:

x1

xn

x0 = 1

w0w1

wn

Σ cd

...

Esta neurona elemental es conocida como una unidad de umbral lineal (linearthreshold unit o ltu) y representa una familia de funciones parametrizada por lospesos w1, w2, . . . , wn, en particular, la funcion de salida sera:

f(x) =

{1 Si

∑ni=0 wixi > 0

0 en otro caso

Jorge Baier Aranda, PUC 28

Page 6: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

En notacion vectorial:

f(x) =

{1 Si w · x > 0,

0 en otro caso.

La funcion de salida se conoce tambien como funcion de activacion.

Jorge Baier Aranda, PUC 29

Page 7: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Funciones no Lineales

Ademas de la funcion umbral que hemos visto recien, se utilizan funcionescontinuas, las mas utilizadas son:

Gaussiana:f(x) = e−

12σ

∑ni=1(xi−ci)

2

-5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50.00

0.10

0.20

0.30

0.40

0.50

0.60

0.70

0.80

0.90

1.00

Activación Gaussiana

1.000.52

Jorge Baier Aranda, PUC 30

Page 8: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Donde σ y c1, . . . , cn son constantes. La respuesta de esta funcion depende de ladistancia entre x y c.

Sigmoidal: Se utiliza como una alternativa no lineal a la funcion umbral (cd).

f(x) =1

1 + e−∑n

i=1 wixi

-5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Activación Sigmoidal

Esta funcion tambien se conoce como funcion logıstica. Una razon importantepara preferir esta funcion a la funcion umbral , es que 1/(1 + e−x) es continua ydiferenciable.

Jorge Baier Aranda, PUC 31

Page 9: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Tangente Hiperbolica: Similar a la funcion logıstica, pero tiene como rango a[−1, 1]. La expresion es la siguiente.

1− e−x

1 + e−x.

Jorge Baier Aranda, PUC 32

Page 10: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Redes Neuronales

Una red neuronal se construye en base a neuronas como la de McCulloch-Pitts.Si N1, . . . , N3 son neuronas de dos entradas, entonces una red puede ser como:

x3

x1 N1

N2

N3

N4

N5

N6x2

Toda red neuronal determina una familia de funciones de salida. Una configuracionde pesos determina a una funcion individual de la familia.

Jorge Baier Aranda, PUC 33

Page 11: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Estructura de una Red Neuronal

Existen muchos tipos de redes neuronales.

Las redes neuronales mas utilizadas de tipo feed-forward , que son grafos dirigidosacıclicos.

En el resto de nuestra exposicion trabajaremos con redes que estan ordenadas encapas. En una red de este tipo, cada neurona esta conectada solo con neuronasde la siguiente capa.

Jorge Baier Aranda, PUC 34

Page 12: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Aprendizaje en Redes Neuronales

Para lograr que una red neuronal pueda representar una funcion es necesariosometerla a un proceso de aprendizaje.

Debemos estar conscientes que por el solo hecho de elegir una cierta estructurapara la red estamos incurriendo en un sesgo inductivo.

Si queremos aprender una funcion f(x) podemos usar una red neuronal de algunaarquitectura y pesos que hay que definir.

Jorge Baier Aranda, PUC 35

Page 13: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Limitaciones de los Perceptrones

Los perceptrones solo pueden aprender conceptos linealmente separables.

Un concepto es linealmente separable si existe un hiperplano capaz de separartodos los puntos que el concepto clasifica como 1 de los que clasifica como 0.

Por ejemplo, un perceptron no puede aprender el XOR.

Jorge Baier Aranda, PUC 36

Page 14: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Regla de Aprendizaje del Perceptrón

Veremos el caso particular de la neurona de McCulloch-Pitts:

La red se inicializa con valores aleatorios para los pesos wi. Si se esta procesandoun ejemplo de entrenamiento con salida correcta d y la red entrega salida y, elpeso wi de la entrada xi se ajusta de acuerdo a la regla:

wi ← wi + η(d− y)xi.

η es una constante positiva llamada constante de aprendizaje.

La regla de aprendizaje se aplica iterativamente a cada uno de los ejemplos. Cadavez que se procesa un ejemplo, se ajustan los pesos.

Si todos los ejemplos se clasifican correctamente, se detiene el proceso. En otrocaso, se vuelve al punto anterior.

Jorge Baier Aranda, PUC 37

Page 15: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Error Cuadrático Medio

El problema de aprendizaje en una red neuronal es un problema de busqueda.

El espacio queda definido por:

• La arquitectura de la red.• El espacio de valores de los parametros de la red (pesos).

Dada la arquitectura de la red, buscaremos una hipotesis que maximice elrendimiento (minimice el error, con respecto a los ejemplos). Ası, si T es unconjunto de n ejemplos, con 〈xi, di〉 ∈ T para i = 1 . . . n, el rendimiento es:

P = −1n

n∑i=1

(f(xi)− di)2.

donde f(xi) corresponde a la salida de la red para el i−esimo ejemplo (conside-rando una unidad con una sola salida).

La medida anterior considera el error mirando todos los ejemplos, por lo cual esapropiada para metodos de aprendizaje batch.

Jorge Baier Aranda, PUC 38

Page 16: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

La reglaDeltade entrenamiento

La regla delta de entrenamiento esta basada en un analisis matematico de lafuncion de salida de los perceptrones.

Esta basada en el metodo del gradiente.

Una de sus ventajas es que funciona con cualquier funcion de activacion diferen-ciable.

Deduciremos uns regla de actualizacion de pesos para hacer aprender a unperceptron sin umbral (ADALINE). Es decir, una unidad lineal con:

o(x) = w · x

Si D = {〈x0, d0〉, . . . , 〈xn, dn〉} es el conjunto de entrenamiento, consideremosla funcion de error como:

E(w) =12

n∑k=1

(dk − o(xk))2

Jorge Baier Aranda, PUC 39

Page 17: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

El Gradiente

∇E(w) =[

∂E

∂w0,

∂E

∂w1, . . . ,

∂E

∂wm

],

donde m es la dimension de los ejemplos.

Ahora:

∂E

∂wi

=∂

∂wi

1

2

n∑k=1

(dk − o(xk))2

=1

2

n∑k=1

∂wi

(dk − o(xk))2

=

n∑k=1

(dk − ok)∂

∂wi

(dk − o(xk))

=

n∑k=1

(dk − ok)∂

∂wi

(dk − w · xk)

=n∑

k=1

(dk − ok)(−xk,i),

Jorge Baier Aranda, PUC 40

Page 18: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

donde xk,i es la i-esima componente de xk.

Como el gradiente da la direccion de mayor crecimiento, los pesos se puedenactualizar con la regla:

w← w − η∇E(w).

o bien:

wi ← wi + ηn∑

k=1

(dk − ok)(−xk,i).

Jorge Baier Aranda, PUC 41

Page 19: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Algoritmo de descenso por el gradiente

Descenso-Gradiente(ejemplos,η).

Cada ejemplo es un par 〈x, d〉 y η es la tasa de aprendizaje.

Inicializar los pesos wi en un valor pequeno aleatorio.

Repita hasta que converja:

• Inicialice ∆wi en cero.• Para cada 〈x, d〉 en ejemplos:◦ Calcule la salida o de la unidad.◦ Para cada peso wi:

∆wi ← ∆wi + η(d− o)xi.

• Para cada wi:wi ← wi + ∆wi.

Jorge Baier Aranda, PUC 42

Page 20: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Unidad de Umbral Sigmoidal

En redes mas complejas, se utilizan con frecuencia unidades con funciones deactiviacion no lineales. Una de las mas populares son las unidades sigmoidales.

x1

xn

x0 = 1

w0w1

wn

...S

σ(net)

Donde:net = w · x

y

o = σ(net) =1

1 + e−net

Jorge Baier Aranda, PUC 43

Page 21: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Una caracterıstica util de la funcion logıstica es que:

dσ(x)dx

= σ(x)(1− σ(x)).

Jorge Baier Aranda, PUC 44

Page 22: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Gradiente del error en Unidades Sigmoidales

Consideremos la medida de error E definida previamente y calculemos:

∂E

∂wi

=∂

∂wi

1

2

n∑k=1

(dk − ok)2

=1

2

n∑k=1

∂wi

(dk − ok)2

=

n∑k=1

(dk − ok)∂

∂wi

(dk − ok)

=

n∑k=1

(dk − ok)

(−

∂ok

∂wi

)

Jorge Baier Aranda, PUC 45

Page 23: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Pero,

∂ok

∂wi=

∂σ(netk)∂wi

=∂σ(netk)

∂netk

∂netk∂wi

= ok(1− ok)xk,i

donde xk,i es la i-esima componente de xk.

Finalmente:∂E

∂wi= −

n∑k=1

(dk − ok)ok(1− ok)xk,i

Jorge Baier Aranda, PUC 46

Page 24: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Redes Multicapa

Veremos como entrenar redes de dos capas y extenderemos el resultado al casogeneral.

Una red de dos capas se ve de la siguiente manera:

xi

x1

xn

...

...

z1

z0 = 1

zj

zJ

x0 = 1

1

k

J K

j

1

w(2)kj

yK yK

ykyk

y1 d1

dk

dK

w(1)ji

Donde y1, . . . , yL son las salidas de la red y d1, . . . , dL son los datos usados paraentrenar.

Jorge Baier Aranda, PUC 47

Page 25: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Si consideramos el error cuadratico de todas las salidas,

E(x) =12

K∑m=1

(dm − ym)2

obtenemos la regla de actualizacion para los pesos de la ultima capa:

∆w(2)kj = −η

∂E

∂w(2)kj

= η(dk − yk)f ′(netk)zj,

donde k = 1, . . . ,K y j = 1, . . . , J y netk =∑J

l=0 wklzl y donde f es la funcionde activacion.

Para obtener la regla de actualizacion de pesos de w(1)ji es necesario aplicar la

regla de la cadena, obteniendose lo siguiente:

∆w(1)ji = ρh

[K∑

k=1

(dk − yk)f ′(netk)w(2)kj

]f ′(netj)xi

Jorge Baier Aranda, PUC 48

Page 26: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Error Backpropagation

Backpropagation(ejemplos, η, nin, nout , nhidden)

Caso particular de una red con una capa escondida, con conexiones completas hacia adelante y

unidades sigmoidales.

Inicializar todos los pesos en valores aleatorios pequenos.

Repita hasta que haya convergencia:

Para cada ejemplo:

1. Procese el ejemplo a traves de la red y calcule la salida.

2. Para cada unidad k de salida:

δk ← yk(1− yk)(tk − yk)

3. Para cada unidad escondida h

δh ← yh(1− yh)∑

k∈salidas

wkhδk

4. Actualizar los pesos wj,i:

wji ← wji + ηδjxj,i

Jorge Baier Aranda, PUC 49

Page 27: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

Comentarios al Algoritmo

El ciclo principal del algoritmo se repite miles de veces. La condicion de terminopuede cambiarse:

Numero fijo de iteraciones.

Terminar cuando el error en los ejemplos caiga bajo un valor prefijado.

Terminar cuando el error en un conjunto de validacion obedezca un criterio, etc.

Jorge Baier Aranda, PUC 50

Page 28: Redes Neuronales - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2622/rna.pdf · Aprendizaje en Redes Neuronales Para lograr que una red neuronal ... un perceptron no puede

¿Qué podemos representar?

Funciones booleanas: Cualquier funcion booleana es representable por una redcon una capa escondida. El numero de nodos en la capa escondida puede crecerexponencialmente en el numero de entradas.

Funciones continuas: Cualquier funcion continua acotada puede representarsecon una red con una capa escondida de unidades sigmoidales y una capa de salidade unidades lineales (sin umbral).

Funciones Arbitrarias: Cualquier funcion puede aproximarse con una red condos capas escondidas de unidades sigmoidales y una capa de salida de unidadeslineales (sin umbral).

Jorge Baier Aranda, PUC 51