Sei sulla pagina 1di 61

5. 11.

PERCEPTRON MULTICAPA
Clases con Formas de
Regiones de Problema
Estructura Regiones Regiones más
Decisión de la XOR
Mezcladas Generales

Medio Plano
Limitado por un
Hiperplano

Regiones
Cerradas o
Convexas

Complejidad
Arbitraria
Limitada por el
Número de
Neuronas

1
5. 11 PERCEPTRON MULTICAPA
Un Perceptrón multicapa es una red con alimentación hacia delante,
compuesta de varias capas de neuronas entre la entrada y la salida de la
misma, esta red permite establecer regiones de decisión mucho más
complejas que las de dos semiplanos, como lo hace el perceptrón de un solo
nivel.
Estructura de la Red: La estructura típica de una red multicapa se observa en
la figura.

2
Notación compacta de una red de tres capas

3
5.12. BACKPROPAGATION O RETROPROPAGACION
• Procedimiento para encontrar el vector gradiente de una función
error asociada a la salida de la red con respecto a los parámetros de
la misma.
• El nombre backpropagation surge pues del cálculo que se hace en
el sentido inverso de la red, propagándose desde los nodos de
salida hacia los nodos de entrada.
• Esto permite poder aplicar a posteriori alguno de los muchos
métodos de optimización con gradiente para obtener el
comportamiento deseado de la red.
• Las redes tipo Backpropagation utilizan principalmente dos
funciones de transferencia en la primera capa: logsig, cuando el
rango de la función es siempre positivo y tansig como en este caso,
cuando se le permite a la función oscilar entre valores positivos y
negativos limitados en el intervalo –1, 1.
• El algoritmo Backpropagation es fácil de implementar, y tiene la
flexibilidad de adaptarse para aproximar cualquier función, siendo
una de las redes multicapa más potentes;

4
Retropropagación
constante
b
wk1 (n)
x1(n) función de
resultado transferencia salida salida
net =ok(n) calculada deseada

x2(n)
wk2 (n)
 f() yk(n) dk(n)

  sumatoria

ek(n)
wk3 (n)
x3(n) ek(n) = dk(n) – yk(n)
Pesos
entradas k = capa

5
Backpropagation. Arquitectura

6
Backpropagation
Dado el siguiente conjunto de vectores
{( x1 , y1 ), ..., ( x p , y p )}
que son ejemplos de correspondencia funcional
y   (x) x  R N , y  RM
se busca entrenar la red para que aprenda una
aproximación
y '   ' ( x)

7
Backpropagation. Capa Oculta
• Patrón de entrada
x p  ( x p1 , x p 2 ,..., x pN ) t

• Entrada neta de la j-ésima neurona de la capa


oculta
n
neta   w x pi  
h
pj
h
ji
h
j
i 1

• Salida de la j-ésima neurona de la capa oculta

i pj  f (neta )
j
h h
pj

8
Backpropagation. Capa de Salida
• Entrada neta de la k-ésima neurona de la capa de
salida

L
neta   w i  
o
pk
o
kj pj
o
k
• Salida de la k-ésima neurona
j 1 de la capa de salida

o pk  f ko (netaopk )

9
Actualización de pesos

• Error en una sola unidad de la capa de


salida
 pk  ( y pk  o pk )
donde
– y es la salida deseada
– o es la salida real.
– p se refiere al p-ésimo vector de entrada
– k se refiere a la k-ésima unidad de salida
10
Actualización de pesos
• Se busca minimizar
M
1
E p    pk2

2 k 1

M
1
E p   ( y pk  o pk ) 2

2 k 1
se tomará el valor negativo del gradiente

11
Actualización de pesos
E p f o
 (neta ) o

 ( y pk  o pk ) k pk

wkj
o
 (netaopk ) wkjo
 (neta )o
  L o 
 o
pk
  wkj i pj  hk   i pj
o

wkj
o
wkj  
 j 1 
Salida de la
E p neurona oculta j
 ( y pk  o pk ) f k ' (neta pk )i pj
o o

wkj
o

Peso del arco que une la neurona j de la capa


oculta y la neurona k de la capa de salida
12
Actualización de pesos
• Por lo tanto, para la capa de salida se tiene
  ( y pk  o pk ) f ' (neta )
o
pk k
o o
pk

w (t  1)  w (t )   i
o
kj
o
kj
o
pk pj
donde
w (t  1)  w (t )   p w (t )
o
kj
o
kj
o
kj

 p w (t )   ( y pk  o pk ) f ' (neta )i pj
o
kj k
o o
pk

 se denomina parámetro de velocidad de aprendizaje


13
Función de Activación
• Hay dos formas de la función de salida que tienen
interés
a) f (neta )  neta
k
o o
jk
o
jk

 neta ojk 1
b) f (neta )  (1  e
k
o o
jk )
• Derivadas
a) f ' 1
k
o

b) f '  f (1  f )  o pk (1  o pk )
k
o
k
o
k
o

14
Actualización de pesos
Por lo tanto, si se utiliza a)

wkjo (t  1)  wkjo (t )  ( y pk  o pk )i pj

y si se utiliza b)

wkjo (t  1)  wkjo (t )  ( y pk  o pk )o pk (1  o pk )i pj

15
Actualización de pesos
• Corrección para los pesos de los arcos entre la capa
de entrada y la oculta

 p w (t )   x pi
h
ji
h
pj
• serán de la forma:

 pjh  f jh ' (neta hpj )  pk


o
wkjo
k
16
Backpropagation. Entrenamiento
• Aplicar un vector de entrada y calcular su salida.
• Calcular el error.
• Determinar en qué dirección (+ o -) debe cambiarse
los pesos para reducir el error.
• Determinar la cantidad en que es preciso cambiar
cada peso.
• Corregir los pesos de las conexiones.
• Repetir los pasos anteriores para todos los patrones
hasta reducir el error a un valor aceptable.

17
ALGORITMO DE RETROPROPAGACION
(Modificado de Internet de Francisco José Ribadas Peña)

Descripción del ejemplo


• Entrenamiento de un perceptron
multicapa para realizar la operación
XOR
• Descripción de la red.
• 1 capa oculta
• 2 neuronas en capa de entrada (i1, i2)
• 2 neuronas en capa oculta (h1, h2)
• 1 neurona en capa de salida (o1) ENTRADAS SALIDAS
X1 X2 T1
• Red inicial con pesos aleatorios
E1 0 1 1
• Conjunto de entrenamiento E2 1 0 1
• Tasa de aprendizaje: α = 0,25 E3 1 1 0
E4 0 0 0
O elena se caso por civil en Miraflores o en 18
barranco
Propagación hacia adelante del ejemplo e1
• Entradas
• x1 = 0, x2 = 1
• Salida esperada: t1 = 1
• Capa oculta
• Neurona h1:
Entrada: 0,1 ∗ 0 + (−0,7) ∗ 1 = −0,7
Salida: 1 = 1/(1+e0,7) = 0,332
• Neurona h2:
Entrada: 0,5 ∗ 0 + 0,3 ∗ 1 = 0,3
Salida: 1 = 1/(1+e−0,3) = 0,574
• Capa de salida
• Neurona o1:
Entrada: 0,2 ∗ 0,332 + 0,4 ∗ 0,574 = 0,296
Salida: 1 /(1+e−0,296 )= 0,573 19
Abreviado en ”notacion vectorial”
• Salida capa oculta:

• Salida capa de salida:

20
Ajuste de pesos por retropropagacion del error
• Neurona o1:
• Error real obtenido en neurona o1: t1 − o1 = 1 − 0,573 = 0,427
• Nuevos pesos para neurona o1: W2jk = W2jk + α hj ∆k
∆k = g′(entk) ∗ (Tk − ok) = ok ∗ (1 − ok) ∗ (Tk − ok)
∆1 = 0,573 ∗ (1 − 0,573) ∗ 0,427 = 0,1044
• W211 = W211 + αh1∆1 = 0,2 + 0,25 ∗ 0,332 ∗ 0,1044 = 0,2086
• W221 = W221 + αh2∆1 = 0,4 + 0,25 ∗ 0,574 ∗ 0,1044 = 0,4149

21
(2) Pesos de la capa oculta
• Formulas de ajuste:
• Error estimado en neurona hj:

OJO: W2jk se refiere a los pesos de la capa de salida antiguos (antes del ajuste
anterior)
• Nuevos pesos para neurona hj: W1ij = W1ij + α ij∆1j
Neurona h1:
Error estimado:
∆1 = h1 ∗ (1 − h1) ∗ (W211 ∗ 0,1044) = 0,332 ∗ (1 − 0,332) ∗ (0,2 ∗
0,1044) = 0,046
• Nuevos pesos:
W111 = W111 + αi1∆1 = 0,1 + 0,25 ∗ 0 ∗ 0,046 = 0,1
W121 = W121 + αi2∆1 = −0,7 + 0,25 ∗ 1 ∗ 0,046 = −0,684
22
(2) Pesos de la capa oculta
• Neurona h2:
• Error estimado:
• ∆2= h2 ∗ (1 − h2) ∗ (W221 ∗ 0,1044) = 0,574 ∗ (1 − 0,574) ∗ (0,4
∗ 0,1044) = 0,0102
• • Nuevos pesos:
• W112 = W112 + αi2∆1 = 0,5 + 0,25 ∗ 0 ∗ 0,0102 = 0,5
• W122 = W122 + αi2∆1 = 0,3 + 0,25 ∗ 1 ∗ 0,0102 = 0,3025

23
Nueva
red

• Para el mismo ejemplo e1, la salida será un poco mejor (más


cercana al objetivo)
• Salida capa oculta:

Salida capa de salida:

24
EJEMPLO 2 BAKPROPAGACION 1.5

• aproximar la siguiente función: 1

0.5

0
-3 -2 -1 0 1 2 3
-0.5

-1

-1.5

Los parámetros de entrada y sus


valores de salida asociados, se
observan en la tabla
La configuración escogida para la
red corresponde a una red 1:2:1
es decir una entrada, dos
neuronas en la capa oculta y una
salida;(ver figura)

1 2 3 4 5 6
p -2 -1,2 0,4 0,4 1,2 2
t -1 -0,81 -0,31 0,309 0,809 1
25
Ejemplo 2 BackPropagacion
Los valores iniciales para la matriz de pesos y el vector de ganancias de la
red se escogieron en forma aleatoria así:

Para el proceso de cálculo, se


le presenta a la red el patron
de entrenamiento p1, de esta
forma la primera iteración es
como sigue

Como se esperaba la primera iteración no ha sido suficiente, para aproximar la función


correctamente, así que se calculará la sensitividad para iniciar el proceso de actualización
de los valores de los pesos y las ganancias de la red.
Los valores de las derivadas del error medio cuadrático son:

26
Ejemplo 2 BackPropagacion
• Y las sensitividades, empezando desde la última hasta la primera capa,
• s2=-2(1) (-1.63) = 3.26

Con estos valores, y de acuerdo a la regla de actualización descrita


anteriormente, los nuevos parámetros de la red son:

Con esto se completa la


primera iteración, y el
algoritmo queda listo para
presentar a la red el siguiente
patrón y continuar el proceso
iterativo hasta obtener un
valor de tolerancia aceptable
para el error.
27
5.13 APRENDIZAJE NO SUPERVISADO
(Traducido del libro de Malcon A. Tafner- Redes Neurais Artificiais)
• El Modelo de Kohonen (Teuvo ) es una red Neuronal tipo
feed forward ( alimentado por delante) de entrenamiento no
supervisado. Considerando una red de dos dimensiones, el
paradigma de kohonen no impone en absoluto , ninguna
forma topológica , pudiendo ser hexagonal, rectangular ,
triangular, etc.

Ej 2. Ejemplo de modelo
hexagonal

28
REDES DE KOHONEN
• EL esquema básico de un modelo de Kohonen tiene la propiedad de modificarse a
si mismo.
• Las neuronas de la capa compiten entre sí para ser los vencedores en cada
modificación .
• La Neurona cuyo vector de pesos genera la menor distancia Euclidiana con el
vector de entrada es el vencedor. Dentro de este modelo no supervisado, no
solamente los pesos del vencedor, sino también los pesos de sus vecinos ( dentro
de un sentido físico) son ajustados.

•Fig 2. Ejemplo de un mapa de Kohonen con neuronas de salida


usadas de forma bidimensional. En este ejemplo todas las entradas
X0,…. , a XN están conectadas con las salidas.
29
REDES DE KOHONEN
• Este comportamiento tiene por objetivo hacer con que la red simule una
actividad cerebral. Este paradigma es basada en la teoría de que las
células nerviosas corticales están arreglados anatómicamente en
relación a los estímulos que reciben de los sensores a las cuales están
conectadas.
• Con relación a este tema vale recordar que algunos científicos,
rastreando la actividad cerebral , notaron que a pesar de todas las células
nerviosas están conectadas o asociadas entre sí, existen centros de
actividad mas intensificados conforme la actividad ejercida en ese
momento. Cuando se oye música, por ejemplo, o cuando se esta
efectuando un razonamiento matemático , existen áreas diferentes del
cerebro con mayor actividad. Este es el paradigma topológico.

•Fig. 3. Región de actividad cerebral cuando se está oyendo palabras

30
REDES DE KOHONEN
La neurona
• Si la red posee un total de 30 neuronas en la capa de salida, habrá
consecuentemente 30 salidas posibles para cualquier cantidad de entradas que
la red estuviere siendo sometida.
• Otro aspecto fundamental es que la neurona estará ampliamente conectada con
las entradas, Eso quiere decir que , habiendo 10 entradas habrá
consecuentemente 10 conexiones sinápticas entre cada neurona de salida y los
10 puntos de la capa de entrada.

Salidas (y)

Entradas (x)

4. Conexiones entre los puntos de entrada y las neuronas de salida


( 3 neuronas de salida cuatro puntos de entrada)
31
REDES DE KOHONEN

Cada conexión sináptica representa un peso sináptico , o sea un valor . Así si


cada neurona de salida estuviere conectado con 4 entradas, tendrá
también 4 pesos sinápticos , una para cada entrada.

Salidas (y)

Pesos (w)
sinápticos

Entradas (x)

Fig 4. Conexiones sinápticas de una neurona de salida ligada a 4 entradas


32
REDES DE KOHONEN
• Esta propiedad espacial o topológica de la red es
determinada por el modo como son definidos con sus
vecinos. Si, por ejemplo una neurona fuera i sus vecinos
pueden entonces ser definidos como i+1 e i-1. Toda la
vecindad forma el conjunto de vecinos.

Ejemplo1 Ejemplo 2

En el inicio el conjunto de vecinos es extenso y no muy bien definido


La mejor autoorganización, conforme observaciones del propio Kohonen,
ocurre cuando el conjunto de vecinos comienza a extender o disminuir con el
tiempo, pudiendo entonces la vecindad ser definida como de tiempo
variable. 33
Vi(0)

Vi(1)
REDES DE
KOHONEN V i(2)

Fig 6. Topologia de vecindad en los diferentes tiempos en que los mapas de


medidas son formados V(i) en un conjunto de neuronas considerando vecinos
de neuronas en el tiempo El conjunto de vecinos inicia extenso en forma vaga
decreciendo en su tamaño en este ejemplo , 0<t1>t2.

• El proceso de vecindad, como se nota es un simple competición por el


mejor aprendizaje , o sea quien aprende mejor será el vencedor. El
ajuste de vecindad es una especie de estímulo para las neuronas que
tienen en torno del vencedor para que puedan llegar o tener las
mismas condiciones de disputa con la neurona vencedora, y de esa
forma, responder también al hecho representado en la red.
34
REDES DE KOHONEN
LA ADAPTACION DE LAS NEURONAS (AJUSTE DE PESOS)
• El Ajuste de los pesos acontece de la siguiente forma ,
primero se procura descubrir cual es la neurona vencedora
para la entrada presentada o sea cual es la neurona que
posee la menor distancia Euclidiana.
• Podemos traducir la distancia Euclidiana haciendo la
siguiente pregunta. ¿ Cúal es la neurona que posee los
valores de pesos más parecidos con los valores de entrada
presentados.
• Este cálculo es hecho entre el vector de entrada y el vector
de pesos de la neurona en cuestión , o sea se suma la
diferencia entre cada valor de entrada y o de peso.

35
REDES DE KOHONEN
LA ADAPTACION DE LAS NEURONAS (AJUSTE DE PESOS)
• Imaginemos que x = [ x1, x2,x3,--- xn] representa nuestra
entrada en un tiempo t cualquiera y w = [wi1, wi2, wi3,…-
win] los pesos de una neurona i cualquier en el mismo
tiempo t- De esa forma si el cálculo de la distancia Euclidiana
(d) de la neurona i es
• Dj(t) =∑ (xj(t)-wij(t)2
• Donde : d= distancia de la neurona
– i= índice de las entradas y de los pesos
– j=indexación de las entradas y de los pesos
– N= Numero de entradas (Cantidad de x y respectivamente
cantidad de w por neurona)
– Xj(t)= entrada j en el tiempo t
– Wij(t)= peso j de la neurona i en el tiempo t

36
REDES DE KOHONEN
• Ejemplo podemos suponer que en el momento los valores de la
entrada fuesen x = { 10,4,3,7,5 } y los pesos de la neurona 3 en el
mismo momento fuesen
w = {4,6,2,8,4} La distancia entonces sería igual:
• D3= (x1-w31)2 +(x1-w32)2 + (x1-w33)2+ (x1-w34)2 +(x1-w35)2
• D3= (10-4)2 +(4-6)2 +(3-2)2+ (7-8)2 +(5-5)2
• D3= (6)2 +(-2)2 +(1)2+ (-1)2 +(0)2 D3= 36 +4 +1+ 1 +0= 42
• En cada paso del aprendizaje la neurona que mejor responde (que
posee la menor diferencia), deberá ser ajustado para responder
aun más aquella entrada y conjuntamente, todas las neuronas
dentro de la vecindad Vj serán alterados. Las neuronas que
estuvieren fuera del subconjunto de vecindad no serán
alterados.
• La adaptación de Kohonen es muy simple- Básicamente es pegar
la diferencia entre los vectores (x y w) y sumar una fracción de
esta diferencia al vector de pesos originales (w):

37
REDES DE KOHONEN
• Este proceso no es hecho solamente para la neurona vencedora,
mas también para su vecindad . realizando este proceso tenemos
los siguientes pasos:
• La tasa de error es la entrada menos el peso ( x(t)- Wi(t))
• La tasa de error es entonces multiplicado por una constante de
aprendizaje α(t)
• El peso ahora es igual al propio, mas la tasa de error
• Para ese conjunto de valores y métodos obtenemos un nuevo
peso.
• Matemáticamente quiere decir:
• Wi(t+1) = { wi(t)+a(t)[x(t)-wi(t)] } Si i Є Vi(t))
• wi(t) Si i Є Vi(t)
• 0 <α(t)<1

38
EL ALGORITMO DE LA RED NEURONALDE KOHONEN
• Los pasos de los pasos de entrenamiento de una red de Kohonen
• 01 Especificar el número de iteraciones
• 02 Inicializar los pesos de las N neuronas con valores aleatorios
bajos( bajos en relación a los valores de entrada)
• 03 Situar la razón de vecindad Vi de cada neurona (inicialmente
se recomienda que Vi sea igual al tamaño de la red)
• 04 Presentar una entrada a la red
• 05 Calcular la distancia Euclidiana entre la entrada y los pesos
para cada neurona de salida
N
• Di= Σ (xi(t)- Wij(t))2
J=1

39
EL ALGORITMO DE LA RED NEURONALDE KOHONEN
• 06 Seleccionar la neurona vencedora o sea la neurona que
presenta la menor distancia ( el menor di)
• 07 Los pesos de la neurona seleccionada son actualizados
juntamente con todas las neuronas que están dentro de la
vecindad definido por Vi(t)
• Wij(t+1)=Wij(t)+a(t)(xi(t)-Wij(t)) Donde i Є Vi(t) y 0< i <= N
• El termino (t) es un termino de avance que debe estar entre 0 y 1
( 0 < α <1 ) t(1) ) Se recomienda iniciar con un valor alto y
decrementandolo con el correr del tiempo
• 07 Es necesario modificar la razón de vecindad de las neuronas
• Esa modificación deberá implicar nuevo decremento de la razón
de Vi(t)
• 08 Se existe aún algún hecho que hace parte del conjunto de
entrenamiento que no fue presentado a la red volver al paso 03
• 10.- Si un número de iteraciones realizadas hasta este momento
convergió a un número especificado en el inicio encerrar esa
fase de entrenamiento, caso contrario realizar nueva iteración
del conjunto de entrenamiento retornándolo al paso 04
40
UN EJEMPLO DE RED DE KOHONEN
• Se tiene un pequeño ejemplo sobre el
funcionamiento de entrenamiento de algoritmo de
Kohonen , utilizamos para este caso un conjunto de
entrenamiento pequeño siendo aplicado también a
una red pequeña . Esto fue hecho para simplificar el
entrenamiento y también tornarlo más rápido.
Fig 7 Mapa de 4
neuronas de salida
con dos neuronas de
entrada

El número de iteraciones es igual a 2.


La topología de la red es cuadrada compuesta de 4 neuronas (2x 2).
Habrá apenas 2 entradas conectadas ampliamente con las 4 neuronas de
salida.
La constante de aprendizaje α (t) será de 0.9 durante todo el entrenamiento
de la red.
La vecindad debido al tamaño reducido para este ejemplo, iniciará
directamente para Vi=[i], o sea , la neurona tendrá apenas el propio como
vecino.
41
REDES DE KOHONEN
Neurona

La forma de conexión sináptica acontece


de la siguiente forma:
La figura 8 ilustra que una neurona posee w1 w2
tantas conexiones cuantas fueren las
x1 x2
entradas a los elementos asociados.
Muestra , también, que una neurona
deberá tener, en un caso encima, dos Fig. 8. Ejemplo de una
pesos, para cada sinapsis. Las entradas neurona y sus ligazones
deberán estar conectadas directamente sinápticas
con la neurona.
Los pesos de nuestro ejemplo inicia con los
siguientes valores
Neurona 11 = { w1, w2 } = {2,2 }
Neurona 12 = { w1, w2 } = {3,2 }
Neurona 21 = { w1, w2 } = {2,1 }
Neurona 22 = { w1,w2 } = {1,3 }

Fig 9 .- Disposición topológica de la neuronas sobre el mapa.


42
El conjunto de entrenamiento se constituye de
Entrada 1 = { x1, x2}= {0,3}
REDES DE KOHONEN Entrada 2 = { x1, x2}= {7,2}

10

La neurona vencedora es el 22 , En nuestra lista d = { 5,10,8,1}, el menor valor es 1.


Ajustando las pesos del neurona vencedora 22: W= w + (α(x-w))
W1=1+(0.9.(0 -1)) W1=1+(-0.9) W1=0.1
W2=3+(0.9.(3-3)) W2=3+(0) W2=3 43
Presentando por primera vez la entrada 2
Encontrando la neurona vencedora: d = [25,16,26,37] > 0 el menor valor es 16 que
corresponde al neurona 12 . Ajustando los pesos de la neurona 12 W= w + (α (x-w))
W1=3+(0.9.(7-3)) W1=3+(3.6) W1=6.6
W2=2+(0.9.(2-2)) W2=2+0 W2=2 44
Presentado por la 2da vez la entrada 1
Encontrando la neurona vencedora: D = {5, 44.56, 8, 0.01] > El menor valor es 0.01 que
corresponde al neurona 22 Ajustando los pesos de la neurona 22:
W= w + (α (x-w))
W1=0.1+(0.9.(0-0.1)) W1=01+(-0.09) W1=0.01 45
W2=3+(0.9.(3-3)) W2=3 +(0) W2=3
Calculando la distancia Neurona Calculando la distancia
Neurona de la neurona 21
de la neurona 11

11 D=S(x-w)
2 12 D=S(x-w)
2

2 2 D11=(7-2)2+(2-2)2
6.6 2 D12=(7-6.6 )2+(2-2)2

D12=0.16
D11=25+0
7 2 D11=25 7 2 D12= 0.16

Calculando la distancia Neurona Calculando la distancia


Neurona de la neurona 22
de la neurona 21

21 D=S(x-w)
2 22 D=S(x-w)
2

2 1 D21=(7-2)2+(2-1)2
0.01 3 D22=(7-0.01 )2+(2-3)2

D21=25+1 D22= 48.86 +1


7 2 D21=26
7 2 D22= 49.86

Presentando por la segunda Vez la entrada 2 Encontrando la neurona vencedora:


D={25, 0.16, 26, 49.86 }> El menor valor 0.16 que corresponde al neurona 12
Ajustando los pesos de la neurona 22 : W= w + (a(x-w))
W1=6.6-(0.9.(7-6.6)) W1=6.6+0.36 W1=6.96
W2=2+(0.9.(2-2)) W2=2 +(0) W2=2 46
REDES DE KOHONEN

• entrenamos la red para reconocer dos conjuntos {0,3} y {7,2 }


• {0,3} dispara neurona 22 y 22
• {7,2} dispara neurona 12 y 12
• como sabemos, una red neuronal tienen propiedades de
reconocer patrones que no forman parte del conjunto de
entrenamiento , y eso es posible por sus capacidades de
generalización. Vamos entonces a evaluar las capacidades de
reconocimiento del conjunto {8, 3} , este conjunto es
extremadamente parecido con el conjunto {7,2 } y así
esperamos que la misma neurona sea activado en virtud de
la semejanza de los conjuntos

47
REDES DE KOHONEN presentando el conjunto [8,3]
Calculando la distancia Neurona Calculando la distancia
Neurona de la neurona 21
de la neurona 11

11 D=Σ(x-w)2
12 D=Σ(x-w)2
6.96
2 1 D11=(8-2)2+(3-2)2 2 D12=(8-6.96)2+(3-2)2

D11=36+1 D12= 1.04+1


8 3 D11=37 8 3 D12= 2.04

Calculando la distancia Neurona Calculando la distancia


Neurona de la neurona 22
de la neurona 21

21 D=Σ(x-w)2
22 D=Σ(x-w)2
0.01
2 1 D21=(8-2)2+(3-2)2 3 D22=(8-0.01)2+(3-3)2

D21=36+4 D22= 63.84+0


8 3 D21=40
8 3 D22= 63.84

Encontrando la neurona vencedora


D={ 37, 2.04, 40, 63,84} > el menor valor es 2.04, que corresponde a la neurona 12.
podemos verificar que la red reconoce el conjunto [8, 3] como siendo semejante al
conjunto [7,2.] -El mismo deberá acontecer con un patrón muy próximo al conjunto [0 3]:48Es
cierto que no generará una distancia igual a 0,
REDES DE KOHONEN

2,1 2,2 Vencedor

e 1={0,3}

1,1 1,2

Fig 70. Un ejemplo de visualización

49
5.14 RED DE HOPFIELD
• Las redes de Hopfield son redes de adaptación probabilística,
recurrentes, funcionalmente entrarían en la categoría de las
memorias autoasociativas, es decir, que aprenden a reconstruir los
patrones de entrada que memorizaron. Usado en el
reconocimiento de patrones w12
1 2
w21
w41
w13 w13
12 w32
w23
w24 w42
w14
w34
3 4
w43
50
A 1 2 3 4 salida
1 1 0 -3 3 -3 3 -6 3 -6
EJEMPLO DE RED DE 0 2 -3 0 -3 3 1 0 1 0
HOPFIELD 1 3 3 -3 0 -3 Recuerda a A
0 4 -3 3 -3 0

PARA EL VECTOR B
B 1 2 3 4 salida
0 1 0 -3 3 -3 -6 3 -6 3
1 2 -3 0 -3 3 0 1 0 1
0 3 3 -3 0 -3 recuerda a B
1 4 -3 3 -3 0

PARA EL VECTOR C
C 1 2 3 4 salida
0 1 0 -3 3 -3 -3 0 -3 3
1 2 -3 0 -3 3 0 1 0 1
0 3 3 -3 0 -3 recuerda a B
0 4 -3 3 -3 0

PARA EL VECTOR D
D 1 2 3 4 salida
0 1 0 -3 3 -3 3 -3 0 -3
0 2 -3 0 -3 3 1 0 1 0
1 3 3 -3 0 -3 recuerda a A 51
0 4 -3 3 -3 0
RED DE HOPFIELD
• Aquí damos un ejemplo de asociación del patrón usando una red Hopfield.
Un patrón representando un carácter se convierte en una entrada para una
red Hopfield a través de un vector bipolar. Este vector bipolar es generado
de la cuadrícula pixel (el elemento del cuadro) para el carácter. Con una
asignación de uno 1 para un pixel negro y uno - 1 para un pixel que es
blanco.
• Por simplicidad usaremos cuadrícula del 3x3 para el patrón de carácter en
nuestro ejemplo, ésta significa que la red Hopfield Tenga 9 nodos en una
red neuronal en la única capa de la red. Otra vez por simplicidad. Usamos
dos patrones del prototipo, o patrones referenciales( ver Figura5.
Considere el patrón a la izquierda como una representación del carácter
"positivo". +. Y el que está en la derecha que de, "menos".

-1 1 -1 -1 -1 -1
1 1 1 1 1 1
-1 1 -1 -1 -1 -1

52
SIGNO +
-1 1 -1 1 1 1 -1 1 -1
Salida
C+ 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
-1 1 0 0 2 -2 -2 -2 2 0 2 -12 2 -12 12 14 10 -12 2 -12
1 2 0 0 0 0 0 0 0 2 0 -1 1 -1 1 1 1 -1 1 -1
-1 3 2 0 0 -2 -2 -2 2 0 2 Recuerda al signo +
1 4 -2 0 -2 0 2 2 -2 0 -2
1 5 -2 0 -2 2 2 0 -2 0 -2
1 6 -2 0 -2 2 2 0 -2 0 -2
-1 7 2 0 2 -2 -2 -2 0 0 2
1 8 0 2 0 0 0 0 0 0 0
-1 9 2 0 2 -2 -2 -2 2 0 0 RED DE HOPFIELD

signo menos
-1 -1 -1 1 1 1 -1 -1 -1
Salida
C- 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
-1 1 0 0 2 -2 -2 -2 2 0 2 -12 -2 -12 12 14 10 -12 -2 -12
-1 2 0 0 0 0 0 0 0 2 0 -1 -1 -1 1 1 1 -1 -1 -1
-1 3 2 0 0 -2 -2 -2 2 0 2 Recuerda al signo -
1 4 -2 0 -2 0 2 2 -2 0 -2
1 5 -2 0 -2 2 2 0 -2 0 -2
1 6 -2 0 -2 2 2 0 -2 0 -2
-1 7 2 0 2 -2 -2 -2 0 0 2
-1 8 0 2 0 0 0 0 0 0 0
-1 9 2 0 2 -2 -2 -2 2 0 0
53
RED DE HOPFIELD

signo corrompido
-1 -1 -1 1 1 1 -1 -1 -1
Salida
C- 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
-1 1 0 0 2 -2 -2 -2 2 0 2 -12 2 -12 12 14 10 -12 2 -12
1 2 0 0 0 0 0 0 0 2 0 -1 1 -1 1 1 1 -1 1 -1
-1 3 2 0 0 -2 -2 -2 2 0 2 Recuerda al signo -
1 4 -2 0 -2 0 2 2 -2 0 -2
1 5 -2 0 -2 2 2 0 -2 0 -2
1 6 -2 0 -2 2 2 0 -2 0 -2
-1 7 2 0 2 -2 -2 -2 0 0 2
1 8 0 2 0 0 0 0 0 0 0
-1 9 2 0 2 -2 -2 -2 2 0 0

54
5.15 DESCRIPCIÓN DE LAS FUNCIONES UTILIZADAS EN MATLAB
• Red tipo Perceptrón: en Matlab 7.4:
• newp: Crea una red tipo Perceptrón, que requiere las siguientes entradas:
• NET = NEWP(PR,S,TF,LF)
PR : Rx2 matriz de valores máximos y mínimos para los R elementos de entrada.
S : Número de neuronas.
• TF : Función de Transferencia, en este '. caso 'hardlims'.
LF : Función de aprendizaje, para este caso 'learnp
• rands: Función simétrica que inicializa aleatoriamente los valores de pesos y ganancias
de una red con valores entre -1 y 1; requiere de la estructura
• rands(S,PR), generando una matriz de dimensiones S x PR.
• adapt: Permite a una red neuronal adaptarse a los patrones de entrada, esta función
tiene la siguiente sintaxis: [net,Y,E,Pf,Af] = adapt(NET,P,T,Pi,Ai)
• net : Red que va a crearse
P : Entradas a la red; deben aparecer en forma de un arreglo de matrices.
T : Salidas esperadas de la red, si no se especifican son ceros por defecto.
Pi : Condiciones de retardo para la entrada inicial, por defecto son ceros.
Ai : Condiciones de retardo para la capa inicial, por defecto ceros
• net.adaptParam.passes: Número

55
• Red tipo Backpropagation:
• newff: Crea una red tipo Backpropagation, requiere que le sean especificados los
siguientes parámetros newff: (PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
• PR : Rx2 Matriz de valores máximos y mínimos de cada uno de las R neuronas de
entrada.
Si : Número de neuronas para cada una de las capas.
TFi : Función de transferencia a utilizar en cada una de las capas, por defecto utiliza tansig
BTF : Algoritmo de entrenamiento a utilizar, por defecto utiliza trainlm
BLF : Función de actualización de los pesos, por defecto utiliza learngdm.
PF : Función para evaluar el desempeño de la red, por defecto utiliza mse.
Traingd:. Es un algoritmo de aprendizaje muy lento, que requiere de la siguiente sintaxis:
• net.trainParam.epochs: Máximo número de iteraciones para obtener convergencia
• net.trainParam.goal: Error máximo permitido
• net.trainParam.lr: Rata de aprendizaje
• net.trainParam.max_fail: Máximo número de fallas
• net.trainParam.min_grad: Mínimo rendimiento del gradiente
• net.trainParam.show: Intervalo de visualización de los resultados
• net.trainParam.time: Máximo tiempo de entrenamiento en segundos
• Con este algoritmo el aprendizaje de la red se detendrá si el número de iteraciones
excede el comando net.trainParam.epochs, si se alcanzó el valor del error propuesto como
meta, si la magnitud del gradiente es menor que net.trainParam.min_grad, o si el tiempo d
entrenamiento supera el valor de net.trainParam.time.
56
DISEÑO Y ENTRENAMIENTO CON REDES NEURONALES CON MATLAB V 7.4
• Ejercicio .- Cree una red perceptron para realizar la función AND . El Vector
de la entrada p = [0 0 1 1;0 1 0 1] y el vector de salida deseado t=[0 0 0 1].
Llame la red RedAND. Una vez creado, la red se entrenará.
• Paso 1 creación de la red RedAND = newp([0 1;0 1],1,'hardlim','learnp')
• Paso 2. Ingrese los vectores de entrada y el vector de salida deseada
• >> p = [0 0 1 1;0 1 0 1] p= 0 0 1 1
0 1 0 1
• >> t=[0 0 0 1] t= 0 0 0 1
• Paso 3 asigne los pesos y bias RedAND.IW{1,1} = [0 0]; RedAND.b{1} = 0;
• Paso 4. Simule la red A = sim(RedAND,p) A= 1 1 1 1
• Paso 5 Puedes inicializar la red aleatoriamente
• >> RedAND.biases{1}.initFcn = 'rands';
• >> RedAND.inputweights{1,1}.initFcn = 'rands';
• >> RedAND = init(RedAND);
• Paso 6 verifique los pesos y bias.
• >> RedAND.IW{1,1} = 0.8116 -0.7460
• >> RedAND.b{1,1} = 0.6294
• Paso 7 Simule la red >> A = sim(RedAND,p) A= 1 0 1 1
57
ENTRENAMIENTO DE LA RED
• Entrenar la red Pereptron anterior para que aprenda la función AND .
• Paso 1 asigne los pesos y bias RedAND.IW{1,1} = [0 0]; RedAND.b{1} = 0;
• Paso 2.. Poner algunos parametros de aprendizaje
• RedAND.trainParam.epochs= 100;
• RedAND.trainParam.show= 25;
• RedAND.trainParam.time= Inf;
• Entrene la red
• >> RedAND = train(RedAND,p,t)
• TRAINC, Epoch 0/100
• TRAINC, Epoch 6/100
• TRAINC, Performance goal met.
• Paso . Puede ver los pesos
• >> RedAND.IW{1,1} ans = 2 1
• >> RedAND.b{1,1} ans = -3
• >> A= sim(RedAND,p) A = 0 0 0 1
58
ENTRENAMIENTO DE LA RED
• Para que entrene de de nuevo modifique modfique parametros o cree de
nuevo
• 1 asigne los pesos y bias RedAND.IW{1,1} = [0 0]; RedAND.b{1} = 0;
• 2 modifique algunos parametros
• >> RedAND.trainParam.epochs= 1;
• >>RedAND.trainParam.show= 1;
• >>RedAND.trainParam.time= Inf;
• >> RedAND = train(RedAND,p,t)
• TRAINC, Epoch 0/1
• TRAINC, Epoch 1/1
• TRAINC, Maximum epoch reached.
• 3 . Puede ver los nuevos pesos y bias
• >> RedAND.IW{1,1} ans = 1 1
• >> RedAND.b{1,1} ans = 0
• 3. simule la red A= sim(RedAND,p) A = 1 1 1 1
59
APRENDIZAJE DEL AND
COMPRUEBE Entradas
nro x1 x2 T
SIMULACION A T E
ITERENTX1 X2 w1 w2 b Suma
har(x) DW1DW2Db
CON EXCEL 1 0 0 0 1 1 0 0 0 0 0 0 1 0 -1 0 0 -1
2 0 1 0 2 2 0 1 0 0 -1 -1 0 0 0 0 0 0
3 1 0 0 3 3 1 0 0 0 -1 -1 0 0 0 0 0 0
RESUMEN 4 1 1 1 4 4 1 1 0 0 -1 -1 0 1 1 1 1 1
PERE % 5 1 0 0 1 1 0 0 1 0 -1 0 0 -1
W1 0 6 2 0 1 1 1 -1 0 1 0 -1 0 -1 -1
1 2 0.5 W2 0 7 3 1 0 1 0 -2 -1 0 0 0 0 0 0
2 3 0.8 b 0 8 4 1 1 1 0 -2 -1 0 1 1 1 1 1
R 1 9 1 0 0 2 1 -1 -1 0 0 0 0 0 0
3 3 0.8 10 2 0 1 2 1 -1 0 1 0 -1 0 -1 -1
4 2 0.5 11 3 1 0 2 0 -2 0 1 0 -1 -1 0 -1
12 4 1 1 1 0 -3 -2 0 1 1 1 1 1
5 1 0.3 13 1 0 0 2 1 -2 -2 0 0 0 0 0 0
14 2 0 1 2 1 -2 -1 0 0 0 0 0 0
6 0 0 15 3 1 0 2 1 -2 0 1 0 -1 -1 0 -1
16 4 1 1 1 1 -3 -1 0 1 1 1 1 1
17 1 0 0 2 2 -2 -2 0 0 0 0 0 0
18 2 0 1 2 2 -2 0 1 0 -1 0 -1 -1
19 3 1 0 2 1 -3 -1 0 0 0 0 0 0
20 4 1 1 2 1 -3 0 1 1 0 0 0 0
21 1 0 0 2 1 -3 -3 0 0 0 0 0 0
22 2 0 1 2 1 -3 -2 0 0 0 0 0 0
23 3 1 0 2 1 -3 -1 0 0 0 0 0 0
24 4 1 1 2 1 -3 0 1 1 0 0 0 0
ITERENTX1 X2 w1 w2 b Suma
har(x) DW1DW2Db

60
5.16 PRACTICA DE LABORATORIO DE REDES NEURONALES
Usando Matlab u hoja de cálculo resuelva:
• Un perceptrón que reconozca la función OR, AND.
• Resuelva en Matlab problemas de backpropagacion
• Resuelvas problemas de redes con aprendizaje no
supervisado

61

Potrebbero piacerti anche