You are on page 1of 22

Procesamiento Digital de Imágenes

Pablo Roncagliolo B.
Nº 21

Redes Neuronales

prb@2007 2

1
Redes Neuronales Básicas

Células de McCulloch&Pitts

El Perceptró
Perceptrón

ADALINE

El Perceptró
Perceptrón Multicapa

prb@2007 3

Celulas de McCulloch-Pitts
1943. Fueron un modelo simplificado del
funcionamiento de las neuronas del cerebro.

 Cada cé
célula puede tener dos estados de salida, 0 ó 1.

x1 w1

xi wi Σ S
wn Θ
xn
prb@2007 4

2
Celulas de McCulloch-Pitts
Las cé
células operan en lapsos discretos.

Una red neuronal de cé


células de McCulloch-
McCulloch-Pitts tiene la capacidad de
computo universal. Es decir, cualquier estructura que pueda ser
programada en un computador, puede ser modelada con este tipo de
redes.
x1 w1

wi Σ
xi
wn Θ
S 1
s(t + 1) = 
∑i wi xi (t) > θ
xn
0 ...en caso contrario
Sin embargo, el tamañ
tamaño de estas redes para problemas complejos es
muy elevado. Ademá
Además el mé
método de aprendizaje para redes muy grandes
no es apropiado.
prb@2007 5

Celulas de McCulloch-Pitts

Ejemplo: NOT

-1
x S
-1

x1 ∑x w i i S
0 0 1
1 −1 0
prb@2007 6

3
Celulas de McCulloch-Pitts

Ejemplo: AND

1
x1
1 S
x2 1

x1 x2 ∑x wi i S
0 0 0 0
0 1 1 0
1 0 1 0
1 1 2 1
prb@2007 7

Celulas de McCulloch-Pitts

Ejemplo: OR

1
x1
x2 1 S
0

x1 x2 ∑x wi i S
0 0 0 0
0 1 1 1
1 0 1 1
1 1 2 1
prb@2007 8

4
Celulas de McCulloch-Pitts

XOR ??? Con una celula no es posible.

?
x1
? S
x2 ?

x1 x2 ∑x wi i S
0 0 0
0 1 1
1 0 1
1 1 0
prb@2007 9

El Perceptrón
Rosenblat generalizó
generalizó las cé
células de McCulloch-
McCulloch-Pitts
Se concibió
concibió como un sistema capaz de realizar tareas de clasificació
clasificación de
forma automá
automática.
La idea era disponer de un sistema que a partir de un conjunto de de
ejemplos (patrones) de clases diferentes, fuera capaz de determinar
determinar las
ecuaciones de las superficies que hací
hacían de frontera de dichas clases.
x1 n
w1
y' = ∑ wi xi
i =1
y’ y
w2 y = F ( y' , σ )
1 si s > σ
x2
σ F (s, σ ) = 
−1 en caso contrario
prb@2007 10

5
El Perceptrón
Se puede expresar la misma ecuació
ecuación considerando SIGMA como parte
de la sumatoria de entrada a la funció
función:

 n 
y = F  ∑ wi xi + σ 
 i =1 
1 si s > 0
F (s,σ ) = 
− 1 en caso contrario
Ej. Para dos entradas:

y = F (w1 x1 + w2 x2 + σ )
Se observa que el umbral que separa las dos respuestas de la red 1 y
–1, corresponde a una recta con pendiente –w1/w2 e intercepto -σ/w2
prb@2007 11

El Perceptrón
Graficamente, la separació
separación de las dos clases:

prb@2007 12

6
El Perceptrón
En el caso general serí
sería:

Dado el conjunto de puntos A=(a1,a2....an) y B=(b1,b2....bn). Obtener


Obtener el
conjunto W=(w1,w2....wn) tal que:

r
∀a ∈ A : w1a1 + .... + wn an + σ > 0
y
r
∀b ∈ B : w1b1 + .... + wnbn + σ > 0
Esta es la base del aprendizaje del PERCEPTRON.
prb@2007 13

El Perceptrón
El proceso de aprendizaje:
Sea :
1
d ( x) = clase del vector x = 
− 1
PASO 0: Comenzar con valores aleatorios para pesos y umbral.
PASO 1: Seleccionar un ejemplo X del conjunto de entrenamiento.
PASO 2: Si y<>d(x), modificar wi de acuerdo con:

∆wi=d(x)xi
PASO 3: Si no se ha cumplido el criterio de finalizació
finalización, volver a 1

prb@2007 14

7
El Perceptrón
El proceso de aprendizaje:

∆wi=d(x)xi

Se observa que si la salida y=d(x)=1 para un vector x de clase –1,


entonces

∆wi = -xi

El delta W es proporcional al nodo de entrada y en la direcció


dirección de
clasificació
clasificación del vector x.

prb@2007 15

y = F (w1 x1 + w2 x2 + σ )
El Perceptrón 1
F (s, σ ) = 
− 1 en
si s > 0
caso contrario
1
Ejemplo: AND x1 x2 AND
0 0 0( A)
1 0 0( A) Patron Salida Clasifica
0 1 0( A) (0,0 | 0) +1 Mal
1 1 1( B )
Actualizo pesos

x1
1
∆wi=d(x)xi
Inicialmente al azar
w1=w2=1 w1=w1+∆w1=1+(-
=1+(-1)*0= 1
Umbral=0.5 1 y
w2=w2+∆w2=1+(-
=1+(-1)*0= 1
x2 0.5
w0=w0+∆w0=0.5+(-
=0.5+(-1)*1= -0.5
prb@2007
1 16

8
y = F (w1 x1 + w2 x2 + σ )
El Perceptrón 1
F (s, σ ) = 
− 1 en
si s > 0
caso contrario
2
Ejemplo: AND x1 x2 AND
0 0 0( A) Patron Salida Clasifica
1 0 0( A) (0,1 | 0) +1 Mal
0 1 0( A)
1 1 1( B )

x1
1
∆wi=d(x)xi
w1=w1+∆w1=1+(-
=1+(-1)*0=1
1 y
w2=w2+∆w2=1+(-
=1+(-1)*1=0
x2 -0.5
w0=w0+∆w0=-0.5+(-
0.5+(-1)*1=-
1)*1=-1.5
prb@2007 17

El Perceptrón 3
Ejemplo: AND x1 x2 AND
0 0 0( A) Patron Salida Clasifica
1 0 0( A) (1,0 | 0) −1 Bien
0 1 0( A) (1,1 | 1) −1 Mal
1 1 1( B )

x1
1
∆wi=d(x)xi
w1=w1+∆w1=1+(+1)*1=2
0 y
w2=w2+∆w2=0+(+1)*1=1
x2 -1.5
w0=w0+∆w0=-1.5+(+1)*1=-
1.5+(+1)*1=-0.5
prb@2007 18

9
El Perceptrón 4
Ejemplo: AND x1 x2 AND
0 0 0( A) Patron Salida Clasifica
1 0 0( A) (1,1 | 1) +1 Bien
0 1 0( A) (0,0 | 0) −1 Bien
1 1 1( B ) (0,1 | 0) +1 Mal

x1
2
∆wi=d(x)xi
w1=w1+∆w1=2+(-
=2+(-1)*0=1
1 y
w2=w2+∆w2=1+(-
=1+(-1)*1=0
x2 -0.5
w0=w0+∆w0=-0.5+(-
0.5+(-1)*1=-
1)*1=-1.5
prb@2007 19

El Perceptrón 5
Ejemplo: AND x1 x2 AND
0 0 0( A) Patron Salida Clasifica
1 0 0( A) (1,0 | 0) +1 Mal
0 1 0( A)
1 1 1( B )

x1
1
∆wi=d(x)xi
w1=w1+∆w1=1+(-
=1+(-1)*1=0
0 y
w2=w2+∆w2=0+(-
=0+(-1)*0=0
x2 -1.5
w0=w0+∆w0=-1.5+(-
1.5+(-1)*1=-
1)*1=-2.5
prb@2007 20

10
El Perceptrón 6
Ejemplo: AND x1 x2 AND
0 0 0( A) Patron Salida Clasifica
1 0 0( A) (1,1 | 1) −1 Mal
0 1 0( A)
1 1 1( B )

x1
0
∆wi=d(x)xi
w1=w1+∆w1=0+(+1)*1=1
0 y
w2=w2+∆w2=0+(+1)*1=1
x2 -2.5
w0=w0+∆w0=-2.5+(+1)*1=-
2.5+(+1)*1=-1.5
prb@2007 21

El Perceptrón 7
Ejemplo: AND x1 x2 AND
0 0 0( A) Patron Salida Clasifica
1 0 0( A) (0,0 | 0) −1 Bien
0 1 0( A) (0,1 | 0) −1 Bien
1 1 1( B ) (1,0 | 0) −1 Bien
(1,1 | 1) +1 Bien
x1
1

1 y
x2 -1.5

prb@2007 x1 ·1 + x2 ·1 − 1.5 = 0 ⇒ x2 = − x1 − 1.5 22

11
El Perceptrón
Ejemplo prá
práctico...

Set de ejemplos durante Ejemplos fuera del entrenamiento para


el entranamiento verificar capacidad de generalizació
generalización
prb@2007 23

El Perceptrón
Paso 1
clear;
clear;

map1=(0:255)/255;
Respuestas map=[map1'
map=[map1' map1' map1'];
correctas para figure(1);
los 8 ejemplos de COLORMAP(map
COLORMAP(map);
);
entrenamiento

CLASE=[1 1 1 1 -1 -1 -1 -1];

PESOS=rand
PESOS=rand(1,1024);
(1,1024);
UMB=rand
UMB=rand(1,1);
(1,1);

 n 
y = F  ∑ wi xi + σ 
 i =1 
prb@2007 24

12
El ciclo while se deberí
debería realizar hasta
que todos los ejemplos sean clasificados
El Perceptrón correctamente de manera consecutiva.

index=1;
index=1;
Paso 1 i=0;
while i<200
Lee imagen 32x32 A=double
A=double(
(imread(['f'
imread(['f' num2str(index
num2str(index)
) '.bmp'
'.bmp']));
]));
subplot(2,1,1);
subplot(2,1,1); image(A);
image(A);

CAPA_ENTRADA=[];
Transforma en for f=1:32,
f=1:32, CAPA_ENTRADA=[CAPA_ENTRADA A(f,:)];end
A(f,:)];end;
;
vector de 1024
Y=sum(CAPA_ENTRADA.*PESOS+UMB);
sum(CAPA_ENTRADA.*PESOS+UMB);
if (Y>0 & CLASE(index
CLASE(index)<0)
)<0) | (Y
(Y<0 & CLASE(index
CLASE(index)>0)
)>0)
disp('ERROR')
disp('ERROR')
PESOS=PESOS+CLASE(index
PESOS=PESOS+CLASE(index)*CAPA_ENTRADA;
)*CAPA_ENTRADA;
 n 
y = F  ∑ wi xi + σ  UMB=UMB+CLASE(index
UMB=UMB+CLASE(index);
);
 i =1  end;
end;

index=
index=index+1;
index+1;
if index>8
index>8,, index=1;
index=1; end;
end;
i=i+1;
end;
end;

wi=wi+∆wi=wi+d(x)xi
prb@2007 25

El Perceptrón  ADALINE
ADALINE (ADAptive LInear NEuron): Neuron Lineal Adaptativa

La salida del perceptró


perceptrón en binaria.
La regla de aprendizaje del perceptró
perceptrón no mide el grado
de “error”
error”.
Widrow & Hoff, 1960 proponen ADALINE.
Consiste simplemente en una transformació
transformación que
permite adaptar una entrada X a una salida Y.

n
r
y = ∑ wi xi + σ
i =1
prb@2007 26

13
ADALINE
La regla de aprendizaje de ADALINE considera el error entre la
salida lograda y versus la salida deseada d

r r
d−y
Esta regla se conoce como REGLA DELTA

∆wi = α ∑ (d p − y p )xi
∀p
La constante α se denomina TASA DE APRENDIZAJE
prb@2007 27

ADALINE
 Al igual que en el perceptró
perceptrón los pasos son:

1. Inicializar los pesos en forma aleatoria


2. Introducir PATRON de entrada
3. Calcular salida Y, y obtener diferencia ∑ (d
∀p
p − yp )

4. Para todos los pesos, multiplizar dicha diferencia por la


entrada correspondiente y ponderarla por la tasa α
5. Actualizar todos los pesos wi= wi + ∆wi
6. Si no se ha cumplido el criterio de convergencia, regresar a
2. Si se han acabado todos los patrones, empezar de nuevo
a introducir patrones.
prb@2007 28

14
ADALINE 0
 Ejemplo: Decodificador Binario a Decimal
0 0 1 [1]
tasa α =0.3
0 1 0 [2] x1
0.84

0 1 1 [3] 0.394
1 0 0 [4] x2

1 0 1 [5] 0.783

1 1 0 [6] x3
1 1 1 [7] y = ∑ wi xi
∀i

prb@2007 29

ADALINE 1
 Ejemplo: Decodificador Binario a Decimal
x1
0 0 1 [1] 0.84 tasa α =0.3
0 1 0 [2]
0 1 1 [3] x2
0.394

1 0 0 [4] 0.783
1 0 1 [5] x3
y = 0.84·0 + 0.394·0 + 0.783·1 = 0.783
1 1 0 [6] E = ∑ (d p − y p ) = 1 − 0.783 = 0.217
1 1 1 [7] ∀p

w1 = w1 + αE·x1 = 0.84
w2 = w2 + αE·x2 = 0.394
prb@2007
w3 = w3 + αE·x3 = 0.783 + 0.3·0.217·1 = 0.848 30

15
ADALINE 2
 Ejemplo: Decodificador Binario a Decimal
x1
0 0 1 [1] 0.84 tasa α =0.3
0 1 0 [2]
0 1 1 [3] x2
0.394

1 0 0 [4] 0.848
1 0 1 [5] x3
y = 0.84·0 + 0.394·1 + 0.848·0 = 0.394
1 1 0 [6] E = ∑ (d p − y p ) = 2 − 0.394 = 1.61
1 1 1 [7] ∀p

w1 = w1 + α ·Ex1 = 0.84
w2 = w2 + α ·Ex2 = 0.394 + 0.3·1.61·1 = 0.876
prb@2007
w3 = w3 + α ·Ex3 = 0.848 31

ADALINE 7
 Ejemplo: Decodificador Binario a Decimal
x1
0 0 1 [1] 0... tasa α =0.3
0 1 0 [2]
0 1 1 [3] x2
0...

1 0 0 [4] 0...
1 0 1 [5] x3
y = 3.09·1 + 1.966·1 + 1.825·1 = 6.881
1 1 0 [6] E = ∑ (d p − y p ) = 7 − 6.881 = 0.12
1 1 1 [7] ∀p

Resultado w1 = w1 + αE·x1 = 3.09 + 0.3·0.12 = 3.126


despues de la
primera iteració
iteración
w2 = w2 + αE·x2 = 1.966 + 0.3·0.12 = 2.002
del
entrenamiento
prb@2007
w3 = w3 + αE·x3 = 1.825 + 0.3·0.12 = 1.861 32

16
ADALINE
 Ejemplo: visualizació
visualización de los pesos segú
según iteraciones..
Iteración Pesos
1 3.12 2.00 1.86 > La tasa de aprendizaje α
2 3.61 1.98 1.42 tambié
también puede ser adaptativa.

3 3.82 1.98 1.2 > Por ejemplo al inicio el valor


4 3.92 1.98 1.1 puede ser alto, para dar
5 3.96 1.99 1.02 “grandes pasos”
pasos” de correcció
corrección
del error y para salir de
6 3.99 2.00 1.01 mínimos locales.
7 4.00 2.00 1.00
8 4.00 2.00 1.00 > Sin embargo al final del
entrenamiento debe disminuir
9 4.00 2.00 1.00 para hacer correcciones finas.
prb@2007
10 4.00 2.00 1.00 33

Sin embargo...
 El uso del Perceptró
Perceptrón o de las redes ADALINE permite
aproximar de manera fá
fácil, cualquier tipo de funció
función o sistemas,
sólo conociendo un conjunto de ejemplos.
 De esta manera cualquier sistema (caja negra), se puede
representar por una red.
 Sin embargo, despué
después de la dé
década del 50 se demostró
demostró que
estas té
técnicas poseen grandes limitaciones.
 Un ejemplo clá
clásico es el OR Exclusivo.

 CONCLUSION: éstas té técnicas só


sólo pueden
resolver sistemas donde los ejemplos son
linealmente separables.

prb@2007 34

17
Sin embargo...
x2
 OR Exclusivo.

x1
?
1 0
?
? y 0 1
x2 x1
?
x2

El Perceptró
Perceptrón o ADALINE 1 0
nunca convergen!!
Solució
Solución: varias redes en
cascada  complejidad!!
0 1
prb@2007 x1 35

Sin embargo...

prb@2007 36

18
Perceptrón Multicapa
 Corresponde a una generalizació
generalización del Perceptró
Perceptrón y Adaline
 1969, Minsky & Papert mostraron que el uso de varios
perceptrones simples (neuronas ocultas) puede ser una solució
solución
para problemas no lineales. Sin embargo no dejaron en claro
como se puede entrenar (ajustar los pesos ocultos)
 1986, Rumelhart & ..., presentó
presentó un mé
método para retropropagar el
error medido en la salida hacia las neuronas ocultas. Se
denomina REGLA DELTA GENERALIZADA.
 1989, Cybenko, Hornik, han demostrado que el Perceptró
Perceptrón
Multicapa es un aproximador universal. Cualquier funció
función
continua sobre Rn, puede ser aproximada, con al menos una
capa oculta.

prb@2007 37

Perceptrón Multicapa
 El Perceptró
Perceptrón Multicapa: puede aprender a partir de ejemplos,
aproximar relaciones no lineales, filtrar ruido, modelar sistemas...
sistemas...
 Con éxito ha sido aplicado a:
 Reconocimiento del habla (Cohen, 93)
 Reconocimiento de caracteres (Sackinger, 92)
 Reconocimiento de caracteres escritos (Guyon, 91)
 Control de Procesos (Werbos, 89)
 Modelamiento de Sistemas Diná
Dinámicos (Narendra, 90)
 Conducció
Conducción de vehí
vehículos (Pomerleau, 92)
 Diagnó
Diagnósticos mé
médicos (Baxt, 92)
 Predicció
Predicción de Series Temporales (Weiggend, 90)
 Etc...
prb@2007 38

19
Perceptrón Multicapa
 Arquitectura:
 CAPA DE ENTRADA
 CAPAS OCULTAS
 CAPA DE SALIDA

Todas las neuronas transmiten


informació
información hacia delante: se
denominan redes feedforward
Cada neurona posee un umbral
independiente. Se considera como una
entrada má
más cuya entrada es 1.
Generalmente se utilizan resde
completamente conectadas
Funció
Función de activació
activación de las neuronas:
sigmoidal,
prb@2007 hiperbó
hiperbólica. 39

Perceptrón Multicapa
Funció
Función de activació
activación de las neuronas:
sigmoidal, hiperbó
hiperbólica  son equivalentes (f2=2f1-1)
Sigmoidal Hiperbólica
1 1

0 -1

1 1 − e− x
f ( x) = f ( x) =
1 + e− x 1 + e− x
La derivada de la f. Sigmoidal es: f(x)’
f(x)’=f(x)(1-
=f(x)(1-f(x))
prb@2007 40

20
Perceptrón Multicapa
Algoritmo BACKPROPAGATION:

atrás su error δ a las


Cada neurona de salida distribuye hacia atrá
neuronas ocultas que se conectan a ella, ponderado por el valor
de la conexió
conexión.

Cada neurona oculta recibe un δ de cada neurona de salida.


término δ de la neurona oculta.
La suma de estas es el té

Se repite el proceso hacia atrá


atrás... Por ello el nombre
“retropropagació
retropropagación del error”
error”.

prb@2007 41

Perceptrón Multicapa
Algoritmo BACKPROPAGATION:
Pesos de la capa oculta 1, y umbrales de
la capa de salida:

w ji = w'ji + α ·δ i x j
ui = ui' + α ·δ i i nodos

j nodos
δ i = (si − yi )· yi ·(1 − yi )
prb@2007 42

21
Perceptrón Multicapa
Algoritmo BACKPROPAGATION:
Pesos de la capa entrada, y umbrales de
la capa de salida:

wkj = wkj' + α ·δ j xk
u j = u 'j + α ·δ j i nodos

k nodos

δ j = x j (1 − x j )∑ w jiδ i
j nodos

∀i
prb@2007 43

Perceptrón Multicapa
x1
w11
Ejemplo: XOR
w12 uj1 a1 v11
v11 = v + α ·δ ·a1
'
11
i
x2
w21 ui1 y
uj2 a2 v21
v12 = v12' + α ·δ i ·a2 w22
Capa i
Capa k Capa j

ui1 = ui + α ·δ
'
1
i

w11 = w11' + α ·δ1j ·x1


δ = (s − y)· y·(1 − y)
i

...
TAREA: Implementar esta
uj1 = uj1' + α ·δ1j
pregunta de prueba.
δ1j = a1 (1 − a1 )∑ v1iδ i
prb@2007
∀i 44

22