Download - Redes ART
Redes ART
Redes ART (Adaptative Resonance Theory)
• Diseñadas por Carpenter y Grossberg (1986).
• Es una teoría no un algoritmo.
• Existen diferentes implementaciones.
• Modeliza:
• La abstracción
• El aprendizaje sin olvido de lo aprendido anteriormente
• El aprendizaje continuo, no separa aprendizaje de producción
Redes ART (Adaptative Resonance Theory)
• Es competitiva (por inhibición lateral).
• Es recursiva.
• Utiliza aprendizaje no supervisado.
• Existen diferentes paradigmas:
- ART1. Binaria.
- ART2. Continua.
- ART3. Jerárquica.
• Es un clasificador de vectores tan eficaz como Kohonen.
Gail Carpenter y Stephen Grossberg
Arquitectura
z
y
G1
G2
GAIN 2RECOGNITION
LAYER
RESET
COMPARISONLAYER
GAIN 1
x
R
vectorialescalar
Arquitectura
• GAIN1, GAIN2 y RESET son bloques de control. Sus salidas son escalares.
• RECOGNITION LAYER y COMPARISON LAYER son bloques de neuronas. Sus salidas son vectores.
• es el patrón de vigilancia, determina cuando dos vectores son suficientemente similares para que pertenezcan al mismo cluster.
Funcionamiento Básico
• Para cada vector de entrada se dispara una única neurona del nivel de reconocimiento, la neurona correspondiente al patrón almacenado que más se parezca a la entrada “la ganadora se lo lleva todo”
• Si se dispara más de una neurona, se escoge la primera.
• Las salidas de la capa de reconocimiento serán todas 0 excepto la de la neurona ganadora sólo llega SU vector de pesos a la capa de comparación.
Funcionamiento Básico
• La capa de comparación mira si el vector de la entrada y el que llega de la capa de reconocimiento son suficientemente similares (de acuerdo con el coeficiente de vigilancia establecido). Si es así, el vector se clasifica en ese cluster y se adaptan los pesos
• En caso contrario se inhibe la neurona y se busca una nueva candidata.
• Se repite el proceso hasta que se encuentre una clase que permita clasificar el vector de acuerdo con la precisión deseada.
• Si la clasificación no es posible en ninguna de las neuronas ya existentes , se crea un nuevo cluster.
Capa de reconocimiento
1
1y
211w
2y my
221w
21mw
2
1y
212w
2y my
222w
22mw
n
1y
21nw
2y my
22nw
2mnw
1z
. . .
2znz
z
)( 21w
)( 2
2w
)( 2nw
Capa de comparación
1y 2y my
1 2 m
jNeurona que se dispara de la capa de reconocimiento
1x 2x mx
jz
. . .
1G
11jw
12jw
1jmw )( 1
jw
Algoritmo• Paso 0: Inicialización. )2(1 L )9,0(10 m = componentes del vector de entrada
mLwij
1
1)0(0 2
(pesos del nivel de reconocimiento)
1)0(1 ijw (pesos del nivel de comparación)
• Paso 1: Mientras parada = FALSO hacer:
xyz
0• Paso 3:
• Paso 2: Para cada :x
• Paso 4: Calcular:
(en binario es el número de 1’s)
m
iixx
1
Algoritmo• Paso 5: Para cada nodo j del nivel de reconocimiento, tal que
(no esté inhibido)
yywnetzm
iiijjj
.
1
2
1jz
• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que
1| jjJ zjzz
• Paso 8: Calcular la nueva iy1 · JiJii wzxy
• Paso 9: Calcular y
Algoritmo
• Paso 10:
- Si y volver al paso 61/ Jzxy
(Se inhibe la neurona J y se prueba con otra)
- Si ir al paso 11xy
/
• Paso 11: Actualizamos los pesos de J.
iJii
iJ ywyL
yLw
12
1
• Paso 12: Test de condición de parada
Ejemplo: Clasificación de letras
(1)
(2)
(3)
(4)
(5)
Ejemplo:
26.04 Lm
1)0(1
1)0( 12
ijij w
mw
)}0011(),1000(),0001(),1100{(}{ x
• Paso 0: Inicialización
6.02 L
1)0(2.0)0( 12 ijij ww
Ejemplo:• Paso 1: Mientras parada = FALSO hacer:
• Paso 2: Para cada :x
• Paso 3: )1100(y 0 xz
• Paso 4: Calcular: 21
m
iixx
m
iiijjj ywnetz
1
2
• Paso 5: Para cada nodo j del nivel de reconocimiento, tal que
(no esté inhibido)
• Como es la primera cogemos una neurona nueva
1jz
4.0)0(2.0)0(2.0)1(2.0)1(2.01 z
Ejemplo:
• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que 1| jjJ zjzz
J = 1
• Paso 9: Calcular 2y
• Paso 8: Calcular la nueva iy1 · JiJii wzxy
)1100()1111(,1),1100( 111 ywzx i
6.01/ xy
• Paso 10:
RESET es falso, ir al paso 11
Ejemplo:
• Paso 11: Actualizamos los pesos de J (columna de W 2 y fila de W 1).
iJi
iiJ
yw
yL
yLw
1
2
1
0011 ;
0
0
67.0
67.0
12
WW
Ejemplo:
• Paso 3:
• Paso 4: Calcular:
• Paso 5: Para cada nodo j del nivel de reconocimiento, tal que (no este inhibido)
• Probamos primero con la única neurona no nueva
)0001(0 xyz
11
m
iixx
m
iiijjj ywnetz
1
2
1jz
0)1(0)0(0)0(67.0)0(67.01 z
- Segundo vector de entrenamiento.
Ejemplo:• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que
J = 1 Que es la neurona NO NUEVA
•Paso 8: Calcular la nueva yi
• Paso 9: Calcular
•Paso 10:
RESET es cierto, inhibir
1| jjJ zjzz
1JiJii wzxy
0y
6.00/ xy
)0000()1100(,1),0001( 111 ywzx i
1z )1( 1 z
Ejemplo:• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que
Creamos una neurona nueva J = 2
Paso 8: Calcular la nueva yi
• Paso 9: Calcular
• Paso 10:
RESET es falso, ir al
paso 11.
1| jjJ zjzz
1JiJii wzxy
1y
6.01/ xy
)0001()1111(,1),0001( 122 ywzx i
2.0)1(2.0)0(2.0)0(2.0)0(2.02 z
Ejemplo:
• Paso 11: Actualizamos los pesos de J (segunda columna de W 2 y segunda fila de W 1).
iJi
iiJ
yw
yL
yLw
1
2
1
1000
0011 ;
10
00
067.0
067.0
12 WW
Ejemplo:
• Paso 3:
• Paso 4: Calcular:
• Paso 5: Para cada nodo j del nivel de reconocimiento, tal que (no este inhibido)
)1000(0 xyz
11
m
iixx
m
iiijjj ywnetz
1
2
1jz
0)0(1)0(0)0(0)1(0
67.0)0(0)0(0)0(67.0)1(67.0
2
1
z
z
- Tercer vector de entrenamiento.
Ejemplo:
• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que
J = 1 (es la que da la salida mayor)
• Paso 8: Calcular la nueva yi
• Paso 9: Calcular
• Paso 10:
RESET es falso, ir al
paso 11.
1| jjJ zjzz
1JiJii wzxy
1y
6.01/ xy
)1000()1100(,1),1000( 111 ywzx i
Ejemplo:• Paso 11: Actualizamos los pesos de J (primera columna de W 2 y primera fila de W 1).
iJi
iiJ
yw
yL
yLw
1
2
1
1000
0001 ;
10
00
00
01
12 WW
Ejemplo:
• Paso 3:
• Paso 4: Calcular:
• Paso 5: Para cada nodo j del nivel de reconocimiento, tal que (no este inhibido)
)0011(0 xyz
21
m
iixx
m
iiijjj ywnetz
1
2
1jz
1)1(1)1(0)0(0)0(0
0)1(0)1(0)0(0)0(1
2
1
z
z
- Cuarto vector de entrenamiento.
Ejemplo:
• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que
J = 2 (es la que da la salida mayor)
• Paso 8: Calcular la nueva yi
• Paso 9: Calcular
• Paso 10:
RESET es cierto, inhibir j = 2
1| jjJ zjzz
1JiJii wzxy
1y
6.05.0/ xy
)0001()0001(,1),0011( 122 ywzx i
Ejemplo:
• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que
J = 1 (es la que queda)
• Paso 8: Calcular la nueva yi
• Paso 9: Calcular
• Paso 10:
RESET es cierto, inhibir j = 2
1| jjJ zjzz
1JiJii wzxy
0y
6.00/ xy
)0000()1000(,1),0011( 111 ywzx i
Ejemplo:
• Paso 6: Mientras RESET = CIERTO:
• Paso 7: Encontrar J tal que
La nueva J es una neurona nueva
• Paso 8: Calcular la nueva yi
• Paso 9: Calcular
• Paso 10:
RESET es falso ir a 11
1| jjJ zjzz
1JiJii wzxy
2y
6.01/ xy
)0011()1111(,3),0011( 13 ywzx iJ
Ejemplo:•Paso 11: Actualizamos los pesos
iJi
iiJ
yw
yL
yLw
1
2
1
1100
1000
0001
67.010
67.000
000
001
12 WW