Está en la página 1de 12

Redes neuronales (y algoritmos genticos)

1. El Perceptron
2. Descenso por gradiente
3. Regla Delta
4. Redes multicapa
5. Funciones de activacin
6. Retropropagacin
7. Computacin evolucionista

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 1

Neurona formal (1943)


e
1
e
n
i
1
i

s=1 si (

U) y (

i = 0)
j

El modelo simula:
Sinapsis excitadoras e inhibidoras
Umbral de excitacin
Sumacin espacial

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 2

Neuronas formales y lgica de orden 0

McCulloch y Pitts (1943)


x
x
x

1
x x x
1 2 3

x
x

1
2

x x x
1 2 3

1
x
x
x

x
1

x x x
1 2 3

2
x
3

x
1

x x x
1 2 3

c 2002 DIT-ETSIT-UPM

1
x +x +x
1 2 3

2
3

x x +x x
1 2 1 2

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 3

El Perceptron (Rosenblatt, 1958)

w
1

x0=-1
w
0
y=

w x
i i

s = 1 si y > 0
s = -1 si y <= 0

w
n
x

Conjunto de entrenamiento:



x1  x2  xn  r 

1  1 

Regla de entrenamiento (refuerzo):

Si s
1 y r 1 aumentar los w i correspondientes a xi 
reducir los correspondientes a xi 0

Si s 1 y r
1 reducir los wi correspondientes
a xi 

aumentar los correspondientes a xi 0
c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

0y

0y
transp. 4

Algoritmo del Perceptron


x

w
1

x0=-1
w
0
y=

w x
i i

s = 1 si y > 0
s = -1 si y <= 0

w
n
x

while (!cond_term) {
for (e=0; e<nEj; e++)
for (i=0; i<=n; i++) {
dw[i] = k*(r[e]-s[e])*x[i][e];
w[i] = w[i] + dw[i];
}
}
x[i][e] = xi para el ejemplo e
c 2002 DIT-ETSIT-UPM

transp. 5

Aprendizaje: redes neuronales (y algoritmos genticos)

Convergencia del Perceptron

n
algoritmo de
refuerzo

Condicin de convergencia:
separabilidad lineal en el espacio x1  x2  xn


Minsky y Papert (1969)


c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 6

Descenso por gradiente: principio

Elemento lineal: y x

s x


w x


w :
Error de una hiptesis



E w
r e se
(e: ndice de ejemplos)


Idea: acercarse al mnimo mediante


incrementos de w proporcionales al

gradiente de E


E
w0



E
wn 

w
1

w
2

: direccin de mximo crecimiento de E

K  E

c 2002 DIT-ETSIT-UPM

transp. 7

Aprendizaje: redes neuronales (y algoritmos genticos)

Descenso por gradiente: adaptacin de pesos

E w


1
2

re

se ;


Como se
E
wi

1
2 wi

E
w0



E
wn 

K  E

w  xe ,
re

se

wi

c 2002 DIT-ETSIT-UPM

re

K  re

se  xie


se  xie


Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 8

Descenso por gradiente: algoritmo

while (!cond_term) {
for (i=0; i<=n; i++) dw[i] = 0;
for (e=0; e<nEj; e++)
for (i=0; i<=n; i++)
dw[i] = dw[i] + k*(r[e]-s[e])*x[i][e];
for (i=0; i<=n; i++)
w[i] = w[i] + dw[i];
}
x[i][e] es xie: valor de la entrada i para el ejemplo e

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 9

Descenso incremental o regla delta

Variante del algoritmo del gradiente


(Widrow y Hoff, 1960: adalines):
No funcin error global, sino por ejemplo: Ee w


1
2

re

se

2


Iteracin sobre los ejemplos, modificando wi para cada uno


Algoritmo (igual al del Perceptron, pero re  se

0  1 ):


while (!cond_term) {
for (e=0; e<nEj; e++)
for (i=0; i<=n; i++)
w[i] = w[i] + k*(r[e]-s[e])*x[i][e];
}
c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 10

Diferencias entre Perceptron, Gradiente y Regla Delta

Delta aproxima Gradiente para K suficientemente pequeo, y requiere


menos computacin
Si hay varios mnimos (funciones de activacin no lineales), Delta mejor
que Gradiente para evitar mnimos locales
Perceptrn usa el error (discreto) a la salida del umbral; Gradiente/Delta, el
error (continuo) de la combinacin lineal de entradas
Perceptrn converge tras un nmero finito de iteraciones a una hiptesis
(w) que clasifica perfectamente los ejemplos siempre que stos sean
linealmente separables
Gradiente/Delta convergen asintticamente a una hiptesis de mnimo error
(local) aunque los ejemplos no sean linealmente separables
(Demostraciones en Hertz et al., 1991)
c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 11

Redes multicapa

Perceptron y otras funciones de activacin con una sola capa:


limitacin por la condicin de separabilidad lineal
Se pueden conseguir superficies no lineales con una red de
varias capas? Para funciones lgicas, s (ejemplo tpico: ORX)
Pero no con el algoritmo del gradiente ni la regla delta: la red
seguira siendo lineal
Con funciones de activacin no lineales?
(como el Perceptron)
Nuestra opinin personal es que la extensin es estril
(Minsky y Papert, 1969)

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 12

El entrenamiento de redes multicapa

Problema del entrenamiento: asignacin de mrito


(credit assignment)
Mrito (o responsabilidad) de un peso (wi j :
E
medida de su contribucin al error global ( w
)


ij

Dificultad con el Perceptron:


la funcin de activacin no es diferenciable
Se necesita una neurona con funcin de activacin
no lineal, para conseguir superficies no lineales

diferenciable, para poder calcular wi j

c 2002 DIT-ETSIT-UPM

K

E
wi j

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 13

Neurona no lineal y diferenciable


x

1j

x0j=-1
w
0j

w
1j

y=
j

w x
ij ij

("net ")
j

wnj
x nj

ds
dy

Con esta funcin sigmoidal (o logstica),


E
wi j

E  y j
y j wi j

E 
y j

1
-y
1+e j

s(y j) =

sy


sy

1
y j 2

rj

wi j
c 2002 DIT-ETSIT-UPM

sj

2


rj

sj


K j xi j , con j


xi j

Si se conoce r j (neurona de salida) para un ejemplo e,


Ee
y j

s j
y j

rj

rj

sj  sj  1


sj sj 1


Aprendizaje: redes neuronales (y algoritmos genticos)

sj

sj


transp. 14

Notacin para redes multicapa

xi j : entrada a la neurona j procedente de la i


(para la capa de entrada, entradas a la red)

wi j : peso de la conexin de la neurona i a la j


j : factor de error de la neurona j
e: ndice sobre los ejemplos
l : ndice sobre las neuronas de salida
h  r: ndices sobre neuronas ocultas
Para varias neuronas de salida el error global de una hiptesis w es:
Gradiente: E w


Regla delta: Ee w
c 2002 DIT-ETSIT-UPM

2 e l
1

2 l

rle
rle

sle

sle

2


Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 15

Ajuste de pesos en redes multicapa

Considerando regla Delta, wi j

Ee
wi j

K

K  j  xi j , con

Ee
y j

Para la funcin de activacin sigmoidal resulta:


Neuronas de salida: l

sl  1

sl


rl

sl


Neuronas de la capa anterior a la de salida:

sh  1

sh  l whl  l


Neuronas de
la capa c:

sh  1

c 2002 DIT-ETSIT-UPM

sh 


r: capa c+1

whr  r


Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 16

Algoritmo de retropropagacin: adelante


/* Se inicia w[c][i][j] con nmeros aleatorios pequeos */
iniciar(w);
while (!cond_term) {
for (ie=0; ie<nEj; ie++) { /* nEj: nmero de ejemplos */
for (j=0; j<nn[0]; j++) { /* nn[c]: num. neuronas en capa c */
for (i=0; i<nEnt; i++) /* nEnt: num. entradas a la red */
x[0][i][j] = e[ie][i][j];
s[0][j] = f(x[0][i][j], w[0][i][j]); /*sigm((w*x)):
bucle en i*/
}
/* Se propaga hacia adelante la entrada */
for (c=1; c<nc; c++) {
/* nc: nmero de capas */
for (j=0; j<nn[c]; j++) {
for (i=0; i<nn[c-1]; i++) /* nn[c-1] = num.ent. capa c */
x[c][i][j] = s[c-1][i];
s[c][j] = f(x[c][i][j], w[c][i][j]); /* bucle en i */
}
} /* ya tenemos las salidas para el ejemplo ie */
c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 17

Algoritmo de retropropagacin: errores de salida


/* Errores en la capa de salida (nc-1) */
for (l=0; l<nn[nc-1]; l++) {
d[nc-1][l] = s[nc-1][l]*(1 - s[nc-1][l])*(r[ie] - s[nc-1][l]);
/* Ajuste de pesos de la capa de salida */
for (i=0; i<nn[nc-2]; i++) /* Si nc = 1, nn[nc-2] = nEnt */
w[nc-1][i][l] = w[nc-1][i][l] + K*d[nc-1][l]*x[nc-1][i][l];
}
En el caso de una sola capa, hemos terminado
(falta cerrar el bucle de ejemplos y la condicin de terminacin)
En el caso de varias capas falta lo ms interesante: propagar hacia atrs
los errores, modificando los pesos convenientemente

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 18

Algoritmo de retropropagacin: atrs


/* Se propagan hacia atrs los errores (si nc > 1)*/
for (c=nc-2; c>=0; c--) {
for (h=0; h<nn[c]; h++) {
suma = 0;
for (r=0; r<nn[c+1]; r++)
suma = suma + w[c][h][r]*d[c+1][r];
d[c][h] = s[c][h]*(1 - s[c][h])*suma;
/* y se van ajustando los pesos */
for (i=0; i<nn[c-1]; i++) /* Si c=0, nn[c-1] = nEntr */
w[c][i][h] = w[c][i][h] + K*d[c][h]*x[c][i][h];
}
}
} /* cierra el bucle de ejemplos */
} /* cierra la condicin de terminacin */
Atribuido generalmente a Rumelhart, Hinton y Williams (1985)
Idea original de Werbos (1974) redescubierta por Parker (1982)
(Widrow, Proc. IEEE, Sep. 1990)
c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 19

Redes multicapa: ejemplo


Una capa oculta: superficies convexas
Dos capas ocultas: superficies arbitrarias
Ejemplo: reconocimiento de 10 sonidos vocales en el contexto
h_d (Huang y Lippmann, 1988)
4000
head

had

heed
hid

2000
F2 (Hz)

head

hid

hud

heard

1000

whod

hod
hood

whod

hawed

500
0

1000

500

1400

F1 (Hz)
hood

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 20

Modelos basados en la naturaleza (binicos)

Ontognesis
Modelos neurocibernticos
Filognesis
Modelos evolucionistas
Al fin y al cabo, no hay tantas tcnicas informticas que hayan
demostrado su valor a lo largo de 3.000 millones de aos de
pruebas de campo (Forsyth, 1986)

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 21

La evolucin como modelo


Primeras ideas: Generacin de
mutaciones al azar sobre el
cdigo binario de programas
(Frieldberg, 1958)

poblacin de individuos
competicin por recursos
seleccin

Actualmente, nfasis en otros


mecanismos genticos, p. ej.,
trueque de genes (crossover)

combinacin de adaptados

Computacin evolucionista:

reproduccin
mutaciones

c 2002 DIT-ETSIT-UPM

Algoritmos genticos:
individuos = cadenas de bits
Programacin gentica:
individuos = rboles sintcticos
de los programas

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 22

Algoritmos genticos para optimizacin


Problema: encontrar el mximo de f x1   xn


Poblacin: valores del dominio x1   xn en binario




Operadores genticos:
Mutacin (cambio de un bit con probabilidad pequea)
Seleccin de las parejas reproductoras (probabilidad
proporcional al valor de la funcin)
Entrecruzamiento de los genomas de cada pareja
Nueva generacion: los hijos sustituyen a los individuos menos
adaptados
Convergencia: cuando hay muchos valores iguales
La mutacin sirve para resolver el problema de los
mximos locales
c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genticos)

transp. 23

También podría gustarte