Documentos de Académico
Documentos de Profesional
Documentos de Cultura
REDES NEURONALES
APUNTES
UNIDAD 1
• Redes Neuronales Biológica y Artificial
• Función de Transferencia
• Clasificación de las Redes
UNIDAD II
• Red de Hopfield
• Red LAM
• Red BAM
• Red de Hamming
UNIDAD III
• Red Perceptrón
• Red Perceptrón multicapa
• Red ADALINE
• Red MADALINE
• Red Backpropagation
BIBLIOGRAFÍA.
Redes Neuronales Artificiales
“Fundamentos, modelos y aplicaciones”
J.R. Hilera y V.J. Martinez
Alfaomega ra-ma
2000
EVALUACION
DEPARTAMENTAL EXAMEN PRACTICAS PARTICIPACIONES
Y TAREAS
Primero 50% 40% 10%
Segundo 40% 50% 10%
Tercero 30% 30% 30%
PRACTICAS
- Nombre
- Objetivo
- Desarrollo teórico, Práctico
- Resultados
- Conclusiones individuales.
Caracterizado por
búsquedas constantes de
nuevas vías para mejorar
sus condiciones de vida
Hombre
Reduce el trabajo en donde
la fuerza es un papel
principal
Implementan algoritmos
Problema que no admite un
para resolver multitud
tratamiento algorítmico
de problemas.
Clasificación de objetos
Limitación importante con rasgos comunes.
Autómatas: Maquinas que realicen mas o menos una función típica de seres humanos.
Disciplina científica y técnica que se ocupa de las ideas que permiten ser inteligentes a los
ordenadores (Def. H Winston).
Intenta expresar soluciones de problemas complejos, como el cerebro humano, usando sistemas de
computación.
Se le dota a la maquina de cierta inteligencia que no es mas que la combinación de elementos simples
interconectados que operan de forma paralela para resolver problemas relacionados con el
reconocimiento de formas o patrones, predicción, clasificación, codificación, etc. (Emula ciertas
características propias de los humanos, como la capacidad de memorizar y asociar hechos).
DEFINICIONES.
Una nueva forma de computación, inspirados en modelos biológicos.
Nuevo sistema para el tratamiento de la información, cuya unidad básica de procesamiento esta
inspirada en la célula fundamental “neurona”.
Tolerancia a fallos: Las redes pueden aprender a reconocer patrones con ruidos distorsionados o
incompletos
Las redes pueden seguir haciendo su función a pesar de que se destruya parte de la misma.
Las redes son tolerantes a fallos debido que su información esta distribuida en las conexiones entre
neuronas.
Operación en tiempo real: Para que las redes operen en tiempo real, la necesidad de cambio en los
pesos de conexión o entrenamiento es mínima.
Los cómputos neuronales pueden ser realizados en paralelo con otro hardware para obtener esa
capacidad.
Neurona: Célula viva, consta de un cuerpo celular esférico, del que sale una forma principal el axón, y
varias ramas más cortas llamada dendritas.
La característica que diferencia a las neuronas con otras células vivas es su capacidad de comunicarse.
La neurona tiene un liquido interior diferente del liquido exterior (iones sodio y potasio).
El externo es diez veces más rico en sodio que el interno
El interno es diez veces más rico en potasio que el externo
Esta diferencia produce una diferencia de potencial de aproximadamente 70mVoltios
negativas en el interior de la célula (potencial de reposo).
Esa inversión de voltaje se propaga a lo largo del axón y provoca la emisión de los
neurotransmisores en los terminales axónicos (sinopsis).
SIMILITUD
Las señales que llegan, son las entradas a las neuronas (Xi).
Son ponderadas (Atenuadas o amplificadas). A través de un parámetro llamado Peso (Wi).
Estas señales pueden excitar a la neurona (peso positivo) o inhibir (peso negativo).
El efecto es la suma de las entradas ponderadas. Si la suma es mayor al umbral de la neurona,
entonces la neurona se activa produciendo una salida.
W Informar de las neuronas que aprende la red (valor que se calcula mediante una ecuación
matemática)
[1 0 1 0 1 1]A
[ 14 4 8 3 − 1 − 1] ⋅ [1 1 1 0 0 0]
[1 1 1 0 1 1]B
3 2 2 8
NEURONA ARTIFICIAL
Recibe entradas de células
Trabajo Simple vecinas y calcula un valor de
salida y las envía a las
NEURONA demás células.
Hay 3 tipos
de unidades
ESTADO DE ACTIVACION.
Representa el estado del sistema en un tiempo t.
Las neuronas tienen dos estados de activación binarios
1 Activo (Excitado)
0 Pasivo (Reposo)
Los valores pueden ser continuos o discretos [0,1][-1,1]
La conectividad entre neuronas (nodos) de una red esta relacionada con la forma en que las
salidas de las neuronas están canalizadas para convertirse en entradas de otras neuronas.
Las conexiones que unen a las neuronas tiene asociado un peso que hacer que la red adquiera
conocimiento.
Cada conexión entre la neurona i y j esta ponderada por un peso Wji
Netj es la suma del producto de cada señal por el valor de la sinopsis que conecta ambas
neuronas.
N
net j = ∑ W ji yi Salida de la neurona i (+, - ó 0)
i
REGLA DE PROPAGACION: Combina los valores de entrada a una unidad con los pesos de las
conexiones
FUNCIÓN ESCALON
1 si x ≥ 0
F ( x) =
0 si x < 0
1 si x ≥ 0
F ( x) =
− 1 si x < 0
f ( x) = x
0 si x < −C
F ( x) = 1 si x>C
x 1 en _ otro
2 c +
2 caso
− 1 si x < −C
F ( x) = 1 si x>C
x en _ otro
c caso
FUNCIÓN SIGMOIDAL
1
f ( x) =
1 + e ∞x
1 − e −∞x
f ( x) =
1 + e − ∞x
f ( x ) = tan( x )
REGLA DE APRENDIZAJE
Biológica
La información memorizada en el cerebro esta más relacionada con las conexiones que en las neuronas
mismas (sinapsis).
Artificial
El conocimiento se encuentra en los pesos de las conexiones entre neuronas.
Todo proceso de aprendizaje implica cierto numero de cambios en estas conexiones (se aprende
modificando los valores de la red y la red ha aprendido cuando los valores de los pesos son estables)
Las redes asocian o aprenden con relaciones de entrada – salida que han sido dadas de un colección de
ejemplos(patrones).
Existen 2 grupos de redes.
Supervisado. Aprendizaje con maestro, cuenta con una salida con cada uno de los patrones
No supervisado. Aprendizaje sin maestro, organiza los patrones en categorías, clustering.
Clasificación de
las Redes
RED DE HOPFIELD
Entrad as X0 X1 X2 X3 Xn
C 0 , C 1 , C 2 ,..., C M −1 ,
C es un vector
Red de Hopfield tiene N neuronas
EJERCICIO:
Queremos almacenar dos patrones ejemplares C0 y C1 que tengan 3 elementos en una red de Hopfield
de 3 neuronas (patrones binarios).
C 0 = [0,1,0]
C 1 = [1,1,0]
w01 = 1
3
[(C 0
0 ) (
* C10 + C01 * C11 )]
w01 = 1
3
[(0 *1) + (1 *1)] = 13
w02 = 1
3
[(C 0
0 ) (
* C20 + C01 * C21 )]
w02 = 1
3
[(0 * 0) + (1 * 0)] = 0
w12 = 1
3
[(C0
1 ) (
* C20 + C11 * C21 )]
w12 = 1
3
[(1 * 0) + (1 * 0)] = 0
0 1 0
3
w = 1 0 0
3
0 0 0
2) Inicicaliza el valor del estado de cada neurona con el valor de entrada
Ui (0)=Xi
Edo(Tiempo (cuando es 0 el edo = entrada))= Entrada
4) Itera hasta que la red converja (la red converge cuando el valor de la energía no baja más)
Convergencia: el valor de la salida de la red no cambia por iteración.
5) Condición de convergencia
y (n) = y (n − 1)
Yi(n + 1) = yi (n)
i = 0 ≈ N −1
6) Salida final de la red.
Cuando la red converja, la salida actual de la red es la salida de la red.
y = [ y0 , y1 , y2 , K , y N −1 ]
EJEMPLO 1:
Almacena 2 patrones en la memoria de la red neuronal de Hopfield y los patrones que almacena son:
C1= [1, –1, 1] C2= [–1, 1, –1]
1 2 3
Entrad as 1 -1 1
1 -1 1
M −1
1
Wij = N ∑C C
s =0
i
s s
j i ≠ j
0 i = j
[( ) (
w12 = 1 C10 * C 20 + C11 * C 21
3
)]
w12 = 1 [(1 * (−1) ) + ((−1) * 1)] = − 2
3 3
[(
w13 = 1 C10 * C30 + C11 * C31
3
) ( )]
w13 = 1
3
[(1 * 1) + ((−1) * (−1) )] = 2 3
0 −2
[( ) ( )]
2
w23 = 1 C 20 * C30 + C21 * C31 3 3
3
w = − 2 0 −2
w23 = 1 [((−1) * 1) + (1 * (−1))] = − 2 3 2 3 3
3 3 −2 0
3
Aplicando C1 a la red
Entrada x = [1, − 1, 1]
Edo inicial u (0) = [1, − 1, 1]
Salida Inicial y (0) = fn[u (0)] = [1, − 1, 1]
0 −2
2
3 1
[ ]
3
u (1) = Wy T (0) = − 2 0 − 2 ⋅ − 1 = 4 , − 4 , 4
2 3 3
3 3 3
3 − 2 0 1
3
[
u (1) = 4 , − 4 , 4
3 3 3
]
y (1) = fn[u (1)] = [1, − 1, 1]
y (n) = y (n − 1) ∴ la red convergió y asocio con C1
Aplicando C2 a la red
Entrada x = [− 1, 1, − 1]
Edo. inicial u (0) = [− 1, 1, − 1]
Salida Inicial y (0) = fn[u (0)] = [− 1, 1, − 1]
0 −2 2 −1
3
[ ]
3
u (1) = Wy (0) = − 2
T
0 − 2 ⋅ 1 = − 4 , 4 , − 4
2 3 3 3 3 3
3 − 2 0
− 1
3
[
u (1) = − 4 , 4 , − 4
3 3 3
]
y (1) = fn[u (1)] = [− 1, 1, − 1]
y (n) = y (n − 1) ∴ la red convergió y asocio con C2
Entrada x = [1, − 1, − 1]
Edo inicial u (0) = [1, − 1, − 1]
Salida Inicial y (0) = fn[u (0)] = [1, − 1, − 1]
0 −2 2 1
3
[ ]
3
u (1) = Wy (0) = − 2
T
0 − 2 ⋅ − 1 = 0, 0, 4
2 3 3 3
3 − 2 0
− 1
3
[
u (1) = 0, 0, 4
3
]
y (1) = fn[u (1)] = [1, 1, 1]
y (n) ≠ y (n − 1) ∴ la red NO converge hay que seguir iterando.
0 −2 2 1
3
[ ]
3
u (2) = Wy (1) = −
T 2 0 − ⋅ 1 = 0, − 4 , 0
2
2 3 3 3
3 − 3 2
0 1
[
u (2) = 0, − 4 , 0
3
]
y (2) = fn[u (2)] = [1, − 1, 1]
y (2) ≠ y (1) ∴ la red NO converge hay que seguir iterando.
0 −2 2 1
3
[ ]
3
u (3) = Wy (2) = −
T 2 0 − ⋅ − 1 = 4 , − 4 , 4
2
2 3 3 3 3 3
3 − 2 0
1
3
[
u (3) = 4 , − 4 , 4
3 3 3
]
y (3) = fn[u (3)] = [1, − 1, 1] la red converge y asocia con C1
Distancia de Hamming
EJEMPLO 2:
X 1 = [1, 1, 1, − 1]
X 2 = [− 1, − 1, − 1, 1]
X P = [1, − 1, 1, − 1]
w12 = 1
4[1 + 1] = 2 4
w13 = 14 [1 + 1] = 2
4 0 2
4
2
4 − 24
w14 = 14 [− 1 − 1] = − 2 2 0 2 − 2 4
4
w=
4 4
w23 = 14 [1 + 1] = 2 24 2
4 0 − 24
4 2
− 4 − 2 4 − 2 4 0
w24 = 14 [− 1 − 1] = − 2
4
w34 = 14 [− 1 − 1] = − 2
4
Aplicando X1 a la red
x = [1, 1, 1, − 1]
u (0) = [1, 1, 1, − 1]
y (0) = fn[u (0)] = [1, 1, 1, − 1]
0 2
4
2
4 − 24 1
2 0 2 − 2 4 1
u (1) = wy (0) =
T 4 4
⋅
24 2
4 0 − 24 1
2
− 4 − 2 4 − 2 4 0 − 1
u (1) = [6 4 6 4 6 4 − 6 4 ]
y (1) = fn(u (1)) = [1, 1, 1, − 1]
y (1) = y (0) ∴ la red converge y se asocia a X1.
Aplicando X2 a la red
x = [− 1, − 1, − 1, 1]
u (0) = [− 1, − 1, − 1, 1]
y (0) = fn[u (0)] = [− 1, − 1, − 1, 1]
0 2
4
2
4 − 2 4 − 1
2 0 2 − 2 4 − 1
u (1) = wy (0) =
T 4 4
⋅
24 2
4 0 − 2 4 − 1
2
− 4 − 2 4 − 2 4 0 1
u (1) = [− 6 4 − 6 4 − 6 4 6 4 ]
y (1) = fn(u (1)) = [− 1, − 1, − 1, 1]
y (1) = y (0) ∴ la red converge y se asocia a X2.
Aplicando Xp a la red
x = [1, − 1, 1, − 1]
u (0) = [1, 1, 1, − 1]
y (0) = fn[u (0)] = [1, − 1, 1, − 1]
0 2
4
2
4 − 24 1
2 0 2 − 2 4 − 1
u (1) = wy (0) =
T 4 4
⋅
24 2
4 0 − 24 1
2
− 4 − 2 4 − 2 4 0 − 1
u (1) = [2 4 6 4 2 4 − 2 4 ]
y (1) = fn(u (1)) = [1, 1, 1, − 1]
y (1) ≠ y (0) ∴ la red NO converge hay que seguir iterando.
u (1) = [1, 1, 1, − 1]
u (2) = [6 4 6 4 6 4 − 6 4 ]
y (2) = fn(u (2)) = [1, 1, 1, − 1]
y (2) = y (1) ∴ la red converge y se asocia a X1.
EJEMPLO 3
e1 = [1, − 1, 1]
w12 = 13 [− 1] = − 13
w13 = 13 [1] = 1
3
w23 = 1
3 [− 1] = − 13
0 −1 1
3 3
w = − 1 0 −
1
13 3
3 − 3
1 0
Aplicando e1 a la red
x = [1, − 1, 1]
u (0) = [1, − 1, 1]
y (0) = fn[u (0)] = [1, − 1, 1]
0 −1 1 1
3
[ ]
3
u (1) = Wy (0) = −
T 1 0 − ⋅ − 1 = 2 , − 2 , 2
1
1 3 3 3 3 3
3 − 1 0
1
3
[
u (1) = 2 , − 2 , 2
3 3 3
]
y (1) = fn[u (1)] = [1, − 1, 1]
y (1) = y (0) ∴la red convergió y asocio con e1
0 −1 1 −1
3
[ ]
3
u (1) = Wy T (0) = − 1 0 − 1 ⋅ 1 = − 2 , 2 , − 2
13 3 3 3 3
3 −1 0 − 1
3
[
u (1) = − 2 , 2 , − 2
3 3 3
]
y (1) = fn[u (1)] = [1, − 1, 1]
y (1) = y (0) ∴la red convergió y asocio con a
EJEMPLO 4:
Almacenar un patron C1C2C3 y ver funcionamiento de la red
C 1 = [1 1 1]
C 2 = [− 1 − 1 − 1]
C 3 = [1 − 1 1]
M −1
1
Wij = N ∑C C
s =0
i
s s
j i ≠ j
0 i = j
w12 = 13 [1 + 1 + (−1)] = 1
3
w13 = 13 [1 + 1 + 1)] = 1
w23 = 13 [1 + 1 + (−1)] = 1
3
0 1 1
3
w = 1 0 1
3 1
3
1 3
0
Aplicando C1.
x = [1, 1, 1]
u (0) = [1, 1, 1]
y (0) = fn[u (0)] = [1, 1, 1]
0 1 1 1
[ ]
3
u (1) = Wy T (0) = 1 0 1 ⋅ 1 = 4 , 2 , 4
3 1 3
3 3 3
1 0 1
3
[
u (1) = 4 , 2 , 4
3 3 3
]
y (1) = fn[u (1)] = [1, 1, 1]
y (1) = y (0) ∴ la red convergió y asocio con C1.
Aplicando C2.
x = [− 1, − 1, − 1]
u (0) = [− 1, − 1, − 1]
y (0) = fn[u (0)] = [− 1, − 1, − 1]
0 1 1 − 1
[ ]
3
u (1) = Wy T (0) = 1 0 1 ⋅ − 1 = − 4 , − 2 , − 4
3 1 3 3 3 3
1 0
− 1
3
[
u (1) = − 4 , − 2 , − 4
3 3 3
]
y (1) = fn[u (1)] = [− 1, − 1, − 1]
y (1) = y (0) ∴ la red convergió y asocio con C2.
Aplicando C1.
x = [1, − 1, 1]
u (0) = [1, − 1, 1]
y (0) = fn[u (0)] = [1, − 1, 1]
0 1 1 1
[ ]
3
u (1) = Wy T (0) = 1 0 1 ⋅ − 1 = 2 , 2 , 2
3 1 3
3 3 3
1 0 1
3
[
u (1) = 2 , 2 , 2
3 3 3
]
y (1) = fn[u (1)] = [1, 1, 1]
y (1) ≠ y (0) ∴ la red NO converge.
u (1) = [1, 1, 1]
y (1) = fn[u (1)] = [1, 1, 1]
0 1 1 1
[ ]
3
u (2) = Wy T (1) = 1 0 1 ⋅ 1 = 4 , 2 , 4
3 3 3 3 3
1 1
0 1
3
[
u (2) = 4 , 2 , 4
3 3 3
]
y (2) = fn[u (2)] = [1, 1, 1]
y (2) = y (1) ∴ la red converge y asocia con C1.
[
u (1) = Wy T (0) = 4 , 0, − 2
3
]3
y (1) = fn[u (1)] = [1, 1, − 1] LA RED NO CONVERGE
y (1) ≠ y (0)
x = [1, 1, − 1]
u (1) = [− 1, 1, − 1]
y (1) = fn[u (1)] = [1, 1, − 1]
[
u (2) = Wy T (1) = − 2 , 0, 4
3
]3
y (2) = fn[u (2)] = [− 1, 1, 1] LA RED NO CONVERGE, SE REPITE EL MISMO PATRON.
y (2) ≠ y (1)
EJEMPLO 5
p1 p2 C1 C2
p1 = [− 1 − 1 1 1] p 2 = [1 1 − 1 − 1] C 1 = [1 1 − 1 1] C 2 = [1 − 1 1 1]
w12 = 14 (1 + 1) = 2 4
w13 = 14 (−1 − 1) = − 2 4 0 1
2 − 12 − 1 2
w14 = 14 (−1 − 1) = − 2 4 1 0 − 12 − 12
w= 2
w23 = 14 (−1 − 1) = − 2 4 − 12 − 12 0 1
2
1
w24 = 14 (−1 − 1) = − 2 4 − 2 − 2 1 1
2 0
w34 = 14 (1 + 1) = 2 4
Aplicando C1
x = [1 1 − 1 1]
u (0) = [1 1 − 1 1]
y (0) = fn[u (0)] = [1 1 − 1 1]
u (1) = w ⋅ y T (0) = [12 1
2
1
2 − 32 ]
y (1) = fn[u (1)] = [1 1 1 − 1]
y (1) ≠ y (0)
u (1) = [1 1 1 − 1]
y (1) = fn[u (1)] = [1 1 1 − 1]
u (2) = w ⋅ y T (1) = [12 1
2 − 3 2 − 12 ]
y (2) = fn[u (2)] = [1 1 − 1 − 1]
y (2) ≠ y (1)
u (2) = [1 1 − 1 − 1]
y (2) = fn[u (2)] = [1 1 − 1 − 1]
u (3) = w ⋅ y T (3) = [32 3
2 − 32 − 32 ] La red asocia y converge e P2
y (3) = fn[u (3)] = [1 1 − 1 − 1]
y (3) = y (2)
Aplicando C2
x = [1 − 1 1 1]
u (0) = [1 − 1 1 1]
y (0) = fn[u (0)] = [1 − 1 1 1]
u (1) = w ⋅ y T (0) = [− 32 − 12 1
2
1
2 ]
y (1) = fn[u (1)] = [− 1 − 1 1 1]
y (1) ≠ y (0)
u (1) = [− 1 − 1 1 1]
y (1) = fn[u (1)] = [− 1 − 1 1 1]
u (2) = w ⋅ y T (1) = [− 32 − 3 2 3
2
3
2 ] La red converge y asocia en P1.
y (2) = fn[u (2)] = [− 1 − 1 1 1]
y (2) = y (1)
a = [a , a ,LL, a ]
i i
1
i
2
i
N1
N1 = N 2 → Auto asociación.
N1 ≠ N 2 → Hetero asociación.
Y = fn( wx T + θ )
Donde x es vector de entrada y Y es vector de salida.
EJEMPLO 1:
a1 = [1 0 1 0] b1 = [0 1 0 1]
a 2 = [0 1 0 1] b 2 = [1 0 1 0]
M
wij = ∑ (2aiM − 1)(2b Mj − 1)
j =1
4
θ j = − 12 ∑ wij j = 1,2,3,4
j =1
MATRIZ DE PESOS
− 2 2 − 2 2
2 − 2 2 − 2
w=
− 2 2 − 2 2
2 − 2 2 − 2
Calculando el BIAS
4
θ i = − 12 ∑ wij
j =1
θ1 = −
1
(− 2 + 2 − 2 + 2) = 0
2
θ 2 = − (2 − 2 + 2 − 2 ) = 0
1
2
θ = [0, 0, 0, 0]
θ 3 = − (− 2 + 2 − 2 + 2 ) = 0
1
2
θ 4 = − (2 − 2 + 2 − 2 ) = 0
1
2
Operación de la red
Y = fn( wx T + θ )
− 2 2 − 2 2 1 − 4 2
2 − 2 2 − 2 0 4 − 2
wa1T = ⋅ = +
− 2 2 − 2 2 1 − 4 2
2 − 2 2 − 2 0 4 − 2
Y = fn( wx T + θ ) = [0 1 0 1] = b1
T
− 2 2 − 2 2 0 − 4
2 − 2 2 − 2 1 4
wa 2T = ⋅ =
− 2 2 − 2 2 0 − 4
2 − 2 2 − 2 1 4
Y = fn( wx T + θ ) = [1 0 1 0] = b 2
T
EJEMPLO 2:
x1 = [− 1 1 − 1] y1 = [1 − 1 1]
x 2 = [− 1 − 1 − 1] y 2 = [− 1 − 1 − 1]
x 3 = [1 1 1] y 3 = [1 1 1]
w11 = [(2(−1) − 1)(2(1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 7
w12 = [(2(−1) − 1)(2(−1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 19
w13 = [(2(−1) − 1)(2(1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 7
w21 = [(2(1) − 1)(2(1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 11
w22 = [(2(1) − 1)(2(−1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 7
w23 = [(2(1) − 1)(2(1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 11
w31 = [(2(−1) − 1)(2(1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 7
w32 = [(2(−1) − 1)(2(−1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 19
w33 = [(2(−1) − 1)(2(1) − 1)] + [(2(−1) − 1)(2(−1) − 1)] + [(2(1) − 1)(2(1) − 1)] = 7
7 19 7
w = 11 7 11
7 19 7
Calculando el BIAS
3
θ i = − 12 ∑ wij
j =1
θ1 = −
1
(7 + 19 + 7 ) = − 33 2
2
θ 2 = − (11 + 7 + 11 ) = − 29 2
1
2
[
θ = − 33 2 , − 29 2 , − 33 2 ]
θ 3 = − (7 + 19 + 7 ) = − 33 2
1
2
Operación de la red
7 19 7 − 1 5 −332 − 232
wx1T = 11 7 11 ⋅ 1 = − 15 + −29 2 = − 59 2
7 19 7 − 1 5 −332 − 232
Y = fn( wx T + θ ) = [− 1 − 1 − 1] NO ASOCIA
7 19 7 − 1 − 33 −332 − 99 2
wx = 11 7 11 ⋅ − 1 = − 29 + −29 2 = − 87 2
2T
EJEMPLO 3:
p1 p2 S1 S2
p1 = [− 1 − 1 1 1] p 2 = [1 1 − 1 − 1] S 1 = [1 − 1 1 1] S 2 = [1 1 − 1 1]
Matriz de pesos
− 2 10 − 6 − 2
− 2 10 − 6 − 2
w=
− 2 − 6 10 − 2
− 2 − 6 10 − 2
Calculando el BIAS
4
θ i = − 12 ∑ wij
j =1
θ1 = −
1
(− 2 + 10 − 6 − 2) = 0
2
θ 2 = − (− 2 + 10 − 6 − 2 ) = 0
1
2
θ = [0 0 0 0]
θ 3 = − (− 2 − 6 + 10 − 2) = 0
1
2
θ 4 = − (− 2 − 6 + 10 − 2 ) = 0
1
2
Operación de la red
− 2 10 − 6 − 2 − 1 − 16
− 2 10 − 6 − 2 − 1 − 16
wp 1T = ⋅ =
− 2 −6 10 − 2 1 16
− 2 −6 10 − 2 1 16
P1 = [0 0 1 1] S 1 = [1 0 1 1]
p 2 = [1 1 0 0] S 2 = [1 1 0 1]
0 2 − 2 0
0 2 − 2 0
w=
0 − 2 2 0
0 − 2 2 0
Calculando el BIAS
4
θ i = − 12 ∑ wij
j =1
1
θ1 = − (0 + 2 − 2 + 0) = 0
2
θ 2 = − (0 + 2 − 2 + 0) = 0
1
2
θ = [0 0 0 0]
θ 3 = − (0 − 2 + 2 + 0) = 0
1
2
θ 4 = − (0 − 2 + 2 + 0) = 0
1
2
− 2 10 − 6 − 2 − 1 − 16
− 2 10 − 6 − 2 − 1 − 16
wp 1T = ⋅ =
− 2 − 6 10 − 2 1 16
− 2 − 6 10 − 2 1 16
0 2 − 2 0 0
0 2 − 2 0 0
wp =
1T
⋅ y = [0 0 1 1]
0 − 2 2 0 1
0 − 2 2 0 1
0 2 − 2 0 1
0 2 − 2 0 1
wp 2T = ⋅ y = [1 1 0 0]
0 − 2 2 0 0
0 − 2 2 0 0
Ux 1 2 3 4 N ENTRADA
Uy 1 2 3 4 M SALIDA
Donde:
X y Y son patrones de entrada.
Ux y Uy son vectores de estados.
Operación de la red.
L L
w = ∑ y k x Tk ó w = ∑ xiK y Kj
K =1 K =1
Donde:
yk = K–ésimo patron ejemplar para la capa y.
xk = K–ésimo patron ejemplar para la capa x.
L = Número de pares de patrones
1. Operación X Y
Se calcula el valor de estado de la neurona en el lado y.
u y = w ⋅ xT
Donde:
w = Matriz
uy = Valor de estado en el lado y.
La salida y se calcula:
1; u ≥ 0
y = fn(u y ) fn(u ) =
− 1; u < 0
X
2. Operación Y
ux = y ⋅ w
T
x = fn(u x )
Heteroasociativa:
ux = yT ⋅ w u y = wT ⋅ x T
x = fn(u x ) y = fn(u y )
Ejemplo 1: (Autoasociativa)
Queremos construir una red BAM que tiene capacidad de asociar los 3 siguientes patrones binarios
x = (− 1 1 − 1), (− 1 − 1 − 1), (1 1 1)
y = (1 − 1 1), (− 1 − 1 − 1), (1 1 1),
L
w = ∑ xiK y Kj
K =1
( )
w11 = x11 y11 + x12 y12 + x13 y13 = (− 1 + 1 + 1) = 1
w12 = (x y + x y + x y ) = (1 + 1 + 1) = 3
1 1
1 2
2
1
2
2
3
1
3
2
w13 = (x y + x y + x y ) = (− 1 + 1 + 1) = 1
1 1
1 3
2
1
2
3
3 3
1 3
w 21 = (x y + x y + x y ) = (1 + 1 + 1) = 3
1 1
2 1
2 2
2 1
3 3
2 1 1 3 1
1; u ≥ 0
w 22 = (x y + x y + x y ) = (− 1 + 1 + 1) = 1
1 1 2 2 3 3
w = 3 1 3 fn(u ) =
− 1; u < 0
2 2 21 2 2 2
w 23 = (x y + x y + x y ) = (1 + 1 + 1) = 3
1
2
1
3
2
2
2
3
3 3
2 3
1 3 1
w31 = (x y + x y + x y ) = (− 1 + 1 + 1) = 1
1 1
3 1
2 2
3 1
3 3
3 1
w32 = (x y + x y + x y ) = (1 + 1 + 1) = 3
1 1
3 2
2
3
2
2
3
3
3
2
w33 = (x y + x y + x y ) = (− 1 + 1 + 1) = 1
1 1
3 3
2
3
2
3
3 3
3 3
Operación X Y Operación Y X
u y1 = w ⋅ x1
T
u x1 = w ⋅ y1
T
1 3 1 − 1 1 1 3 1 1 − 1
u y1 = 3 1 3 ⋅ 1 = − 5 u x1 = 3 1 3 ⋅ − 1 = 5
1 3 1 − 1 1 1 3 1 1 − 1
y1 = fn(u y1 ) = [1 − 1 1] x1 = fn(u x1 ) = [− 1 1 − 1]
Asocia con y1 Asocia con x1
u y 2 = w ⋅ x2T u x 2 = w ⋅ y 2T
1 3 1 − 1 − 5 1 3 1 − 1 − 5
u y 2 = 3 1 3 ⋅ − 1 = − 7 u x 2 = 3 1 3 ⋅ − 1 = − 7
1 3 1 − 1 − 5 1 3 1 − 1 − 5
y2 = fn(u y 2 ) = [− 1 − 1 − 1] x 2 = fn(u x 2 ) = [− 1 − 1 − 1]
Asocia con y2 Asocia con x2
u y 3 = w ⋅ x3T u x 3 = w ⋅ y3T
1 3 1 1 5 1 3 1 1 5
u y 3 = 3 1 3 ⋅ 1 = 7 u x 3 = 3 1 3 ⋅ 1 = 7
1 3 1 1 1 1 3 1 1 5
y3 = fn(u y 3 ) = [1 1 1] x3 = fn(u x 3 ) = [1 1 1]
Asocia con y3 Asocia con x3
Ejemplo 2:
x1 = (1 − 1 − 1 1 − 1 1 1 − 1 − 1 1)
y1 = (1 − 1 − 1 − 1 − 1 1) L
w = ∑ xiK y Kj
K =1
x2 = (1 1 1 − 1 − 1 − 1 1 1 − 1 − 1)
y 2 = (1 1 1 1 − 1 − 1)
w91 = (− 1 − 1) = −2 w10,1 = (1 − 1) = 0
w92 = (1 − 1) = 0 w10.2 = (− 1 − 1) = −2
w9.3 = (1 − 1) = 0 w10,3 = (− 1 − 1) = −2
w94 = (1 − 1) = 0 w10, 4 = (− 1 − 1) = −2
w95 = (1 + 1) = 2 w10,5 = (− 1 + 1) = 0
w96 = (− 1 + 1) = 0 w10,6 = (1 + 1) = 2
2 0 0 0 −2 0
0 2 2 2 0 − 2
0 2 2 2 0 − 2
0 −2 −2 −2 0 2
− 2 0 0 0 2 0
w=
0 −2 −2 −2 0 2
2 0 0 0 −2 0
0 2 2 2 0 − 2
− 2 0 0 0 2 0
0 − 2 − 2 − 2 0 2
Operación Y X
ux1 = wy1
T
2 0 0 0 −2 0 4
0 2 2 2 0 − 2 − 8
0 2 2 2 0 − 2 1 − 8
0 −2 −2 −2 0 2 − 1 8
− 2 0 0 0 2 0 − 1 − 4
u x1 = ⋅ =
0 −2 −2 −2 0 2 − 1 8
2 0 0 0 − 2 0 − 1 4
0 2 2 2 0 − 2 1 − 8
− 2 0 0 0 2 0 − 4
0 − 2 − 2 − 2 0 2 8
x1 = fn(u x1 ) = [1 − 1 − 1 1 − 1 1 1 − 1 − 1 1]
T
Asocia con x1
u y1 = wT ⋅ x1T
1
− 1
2 0 0 0 −2 0 2 0 − 2 0 − 1
0 2 2 − 2 0 − 2 0 2 0 − 2 1
0 2 2 − 2 0 − 2 0 − 2 0 − 2 − 1
w= ⋅
0 2 2 −2 0 −2 0 2 0 − 2 1
− 2 0 0 0 2 0 −2 0 2 0 1
0 − 2 − 2 2 0 2 0 −2 0 2 − 1
− 1
1
u y1 = wT x1T
u y1 = [8 − 12 − 12 − 12 − 8 12]
T
y1 = fn(u y1 ) = [1 − 1 − 1 − 1 − 1 1]
Asocia con x1
u x 2 = w ⋅ y 2T
u x 2 = [4 8 8 − 8 − 4 − 8 4 8 − 4 − 8]
x2 = fn(u x 2 ) = [1 1 1 − 1 − 1 − 1 1 1 − 1 − 1]
Asocia con x2
u y 2 = wT ⋅ x2T
u y 2 = [8 12 12 12 − 8 − 12]
y 2 = fn(u y 2 ) = [1 1 1 1 − 1 − 1]
Asocia con y2.
Ejemplo 3:
A1 = [− 1 − 1 − 1 − 1] A2 = [1 1 1 − 1]
B1 = [1 1 − 1] B2 = [1 − 1 1]
0 −2 2
0 −2 2
w =
0 −2 2
− 2 0 0
uA1 = w ⋅ B T uA2 = w ⋅ B T
0 − 2 2 − 4 0 −2 2 4
0 − 2 2 1 − 4 0 −2 1
2 4
uA1 = ⋅ 1 = uA2 = ⋅ −1 =
0 − 2 2 − 4 0 −2 2 4
− 1 1
− 2 0 0 − 2 − 2 0 0 − 2
A1 = fn(uA1 ) = [− 1 − 1 − 1 − 1] A2 = fn(uA2 ) = [1 1 1 − 1]
Asocia con A1. Asocia con A2.
uB1 = w ⋅ AT uB2 = w ⋅ AT
0 −2 2 − 1 0 −2 2 1
0 −2 2 2
2 − 1 0 −2 2 1
uB1 = ⋅ = 6 uB2 = ⋅ = −6
0 −2 2 − 1 0 −2 2 1
− 6 6
− 2 0 0 − 1 − 2 0 0 1
B1 = fn(uB1 ) = [1 1 − 1] B2 = fn(uB2 ) = [1 − 1 1]
Asocia con B1. Asocia con B2.
Ejemplo 4:
A1 = [− 1 1 − 1 1] B1 = [1 − 1 1 − 1]
A2 = [− 1 − 1 − 1 − 1] B2 = [1 1 1 1]
A3 = [1 − 1 1 − 1] B3 = [− 1 1 − 1 1]
− 3 1 − 3 1
1 − 3 1 − 3
w=
− 3 1 − 3 1
1 − 3 1 − 3
uA1 = w ⋅ B1T uB1 = w ⋅ A1T
− 3 1 − 3 1 1 − 8 − 3 1 −3 1 − 1 8
1 −3 1 − 3 − 1 8 1 −3 1 − 3 1 − 8
uA1 = ⋅ = uB1 = ⋅ =
− 3 1 − 3 1 1 − 8 − 3 1 − 3 1 − 1 8
1 −3 1 − 3 − 1 8 1 −3 1 − 3 1 − 8
A1 = fn(uA1 ) = [− 1 1 − 1 1] B1 = fn(uB1 ) = [1 − 1 1 − 1]
uA2 = w ⋅ B2T uB2 = w ⋅ A2T
− 3 1 − 3 1 1 − 4 − 3 1 − 3 1 − 1 4
1 − 3 1 − 3 1 − 4 1 − 3 1 − 3 − 1 4
uA2 = ⋅ = uB2 = ⋅ =
− 3 1 − 3 1 1 − 4 − 3 1 − 3 1 − 1 4
1 − 3 1 − 3 1 − 4 1 − 3 1 − 3 − 1 4
A2 = fn(uA2 ) = [− 1 − 1 − 1 − 1] B2 = fn(uB2 ) = [1 1 1 1]
uA3 = w ⋅ B3T uB3 = w ⋅ A3T
− 3 1 − 3 1 − 1 8 − 3 1 − 3 1 1 − 8
1 − 3 1 − 3 1 − 8 1 − 3 1 − 3 − 1 8
uA3 = ⋅ = uB3 = ⋅ =
− 3 1 − 3 1 − 1 8 − 3 1 − 3 1 1 − 8
1 − 3 1 − 3 1 − 8 1 − 3 1 − 3 − 1 8
A3 = fn(uA3 ) = [1 − 1 1 − 1] B3 = fn(uB3 ) = [− 1 1 − 1 1]
RED DE HAMMING
Es uno de los ejemplo mas simples de aprendizaje, competitivo, las neuronas en la capa de salid de esta
red compiten unas con otras para determinar la ganadora, la cual indica el patron prototipo mas
representativo en la entrada de la red.
2.- La competición para determinar cual de los vectores prototipo esta mas cercano al vector de
entrada.
Ym SALIDA
Y0 Y1
Escoge el
máximo
elemento
Calcula el puntaje de
similitud
(Grado de similitud)
• Calcular la salida de la primera red, que indica cuan cercano está cada vector de entrada a los
patrones prototipo. (Ejemplares) es decir calcula el grado de similitud entre el patrón de entrada
y los patrones ejemplares.
N −1
u j (0) = ft 1 N ∑ wij xi + θ j
i =0
1 x >1
ft ( x) = x 0 ≤ x ≤ 1
0 x<0
1 X
En la segunda capa se determina por medio de una capa competitiva el patrón prototipo más cercano.
Las neuronas en esta capa son iniciadas con la salida de la capa en realimentación, la cual indica el
grado de similitud.
Las neuronas compiten unas con otras para determinar una ganadora; después la competición solo una
neurona tendrá una salida no cero. (Positiva):
En cada iteración, cada salida de la neurona se decrementará en proporción a la suma de las otras
neuronas.
EJEMPLO 1:
Ejemplares: Patrones de entrada
P1 = [1 − 1 1 1 − 1]
a1 = [1 − 1 1 1 − 1]
P2 = [− 1 1 − 1 1 1]
a 2 = [1 1 − 1 1 1]
P3 = [1 − 1 − 1 − 1 1]
Neuronas de entrada = 5
Patrones = 3 ∴ son el número de neuronas de salida de la red.
C ij N
wij = θj =
2 2
w11 = 1
2 12 − 12 12 1
2 − 12 52
1 θ j = = 52
N
w12 = − 1 w = − 12 12 − 1 2 12 2
2 2
2
1 − 1 − 1 − 1 1
2
52
w13 = 1 2 2 2
2
N
u k (0) = ft 1 ∑ wij x1 + θ j
N i =1
1
12 − 12 12 1 − 12 − 1 52 52 52 5 1
2
1 3 5 1
1 1 + 5 =
1 1
− 2 1 − 2
1 1
2 5 − 2 + 2 = 5 1 = 0.2
5 1
2 2 2
2 − 12 − 12 − 12 − 1 5
2
1 1 5 2 0.4
2 2 2
− 1
u (0) = ft [1 0.2 0.4]
[0.85 0 0.1]