Documentos de Académico
Documentos de Profesional
Documentos de Cultura
al Cómputo
Neuronal Artificial
978-1-4135-2424-6
iii
Una Introducción al Cómputo Neuronal Artificial
iv
Una Introducción al Cómputo Neuronal Artificial
v
Una Introducción al Cómputo Neuronal Artificial
vi
Una Introducción al Cómputo Neuronal Artificial
Abstract
En este trabajo se presenta una introducción al estudio y análisis de las Redes
Neuronales Artificiales. Se hace mención de las bases neurofisiológicas que inspiran a
algunas de las Arquitecturas Neuronales más populares y se plantean de manera formal sus
procedimientos correspondientes haciendo uso de herramientas provenientes de áreas como
el Álgebra Lineal y el Cálculo Diferencial de Varias Variables. Se estudian inicialmente las
neuronas de tipo Adaline y Perceptrón. En el caso del Perceptrón se presentan el Problema
de Representación y el Teorema de Convergencia a fin de plantear los alcances y
limitaciones que se tiene con este tipo de Neurona Artificial. Posteriormente se aborda el
estudio de la Red Madaline a fin de establecer los retos que surgen para el aprendizaje en
una red formada por varias neuronas. Se da un especial énfasis a las redes compuestas por
Perceptrones al estudiar los fundamentos de su popular mecanismo de aprendizaje, definido
por el Algoritmo de Retropropagación. También se presentarán a las Redes de Kohonen
como un ejemplo de Arquitectura Neuronal cuyo aprendizaje no requiere de supervisión. A
lo largo del texto se desarrollan aplicaciones de las Redes Neuronales en los contextos del
Modelado y Predicción de Señales, Modelado de Funciones Booleanas y Clasificación
Automática de Imágenes.
vii
Una Introducción al Cómputo Neuronal Artificial
viii
Una Introducción al Cómputo Neuronal Artificial
Prólogo
ix
Capítulo 1. Introducción
Dentritas
(Entradas)
Región
Pre-sináptica
Axón (Salidas)
Núcleo
Las neuronas pueden ser clasificadas en 3 tipos de acuerdo al rol que cumplen
dentro de una Red Neuronal:
• Neuronas aferentes:
o Transmiten mensajes al interior del organismo los cuales proceden de los receptores
sensoriales (vista, tacto, olfato, etcétera).
• Neuronas eferentes:
o Llevan mensajes a las estructuras ejecutoras haciendo que los músculos se
contraigan o relajen y también al ordenar a las glándulas la secreción de hormonas.
• Interneuronas:
o Sirven como puntos de conexión entre otras neuronas dentro del sistema nervioso
central y constituyen aproximadamente el 97% de todas las células nerviosas.
Veremos en secciones posteriores como que es que esta clasificación es sumamente útil, ya
que en una Red Neuronal Artificial efectivamente identificaremos a las neuronas aferentes
(la entrada de la red), las interneuronas y a las neuronas eferentes (la salida de la red). De
acuerdo a su rol es como los algoritmos de aprendizaje aplican cambios y ajustes.
Parte del poder del Cómputo Neuronal radica en la capacidad de las neuronas para
transportar y transmitir mensajes. A esta propiedad se le conoce como Excitabilidad.
Analicemos de manera superficial como que es que una neurona transmite un mensaje.
Como cualquier célula, una neurona es delimitada por su membrana. La membrana de la
neurona se encuentra Polarizada. Es decir, en el exterior se presenta una baja
concentración de iones de potasio mientras que en su interior esta concentración es alta. Por
otro lado, se tiene una alta concentración de iones de sodio en el exterior y una baja
concentración en el interior. Estas concentraciones no se equilibran gracias a que la
membrana tiene diferencias de permeabilidad lo que impide el paso de iones del interior al
exterior y viceversa.
9
Una Introducción al Cómputo Neuronal Artificial
Dentrita
(Entrada)
Unión Neurotransmisor
Sináptica
Sinapsis
-
(Salida)
Dado que una neurona puede tener miles de sinapsis, entonces ésta se puede
conectar, y por tanto transmitir su impulso, a otros miles de neuronas. Véase la Figura 1.3.
Es más, una neurona puede conectarse consigo misma. En otras palabras, al procesar la
10
Capítulo 1. Introducción
señal que ella misma generó se tiene un proceso que en ocasiones es llamado de
Retroalimentación. No todas las conexiones entre neuronas tienen los mismos valores o
pesos. Y de hecho esos valores o pesos determinan si la membrana de la neurona que recibe
el impulso lo transmitirá o no. Ello se debe a la existencia de Sinapsis Excitadoras y
Sinapsis Inhibidoras. Estas diferencias de pesos o prioridades son moduladas
precisamente por los neurotransmisores involucrados, los cuales en ocasiones son
clasificados en Neurotransmisores Excitadores y Neurotransmisores Inhibidores. Un
neurotransmisor excitador incrementa las probabilidades de que la neurona receptora
continúe con la transmisión del mensaje, mientras que un neurotransmisor inhibidor puede
encargarse de bloquear su transmisión.
Región
Pre-sináptica
Neurona i+1
Neurona i+1
Dentritas Dentritas
Neurona i Neurona i+1
Región
Pre-sináptica
Axón i+1 Neurona i+3
Neurona i
Dentritas
Neurona i+2
Axón i
Axón i+3
Región
Pre-sináptica
Neurona i Región
Pre-sináptica
Neurona i+2
Neurona i +3
Neurona i+2
Axón i+2
Dentritas
Neurona i+3
A partir de este punto nos será más conveniente representar a las neuronas
(biológicas o artificiales) en términos esquemáticos. Véase la Figura 1.4. A toda neurona
se le visualizará como una entidad que cuenta con n entradas (las dentritas). En cada
entrada se recibirá un valor proveniente de otra neurona, o bien, tales valores pueden
formar también una entrada proveniente del mundo exterior. En el primer caso estaríamos
modelando una interneurona, mientras que en el segundo nuestra neurona sería del tipo
11
Una Introducción al Cómputo Neuronal Artificial
aferente. Ello implica que el conjunto de las entradas de una neurona puede ser
representado como un vector con n componentes. Cada entrada i, i = 1, 2, …, n, tendrá
asociada un peso wi. Este peso tendrá la función de neurotransmisor. El peso wi se asociará
al valor recibido en la entrada i. La combinación de ambos puede caracterizar a la conexión
como excitadora o como inhibidora. Todo par (entrada i, peso wi) es llevado al núcleo en
donde se efectuará el Cómputo Neural. El resultado obtenido es un único valor el cual es
distribuido en m salidas (las sinapsis). Estas salidas pueden conectarse con el mundo
exterior, en donde por instancia tenemos una neurona de tipo eferente. Si, por otro lado,
cada salida se conecta con otra neurona entonces tenemos una interneurona. Nótese que de
hecho podemos tener las siguientes caracterizaciones de neuronas en función de su relación
con otras neuronas y con el mundo exterior:
• Aferente/Eferente: entradas provenientes del exterior, salidas enviadas al exterior.
• Aferente/Interneurona: entradas provenientes del exterior, salidas enviadas a otras
neuronas.
• Interneurona/Eferente: entradas provenientes de otras neuronas, salidas enviadas al
exterior.
• Interneurona: entradas provenientes de otras neuronas, salidas enviadas a otras
neuronas.
W1
W2
Salida 1
Núcleo Salida 2
Wn
Salida m
Con base en los puntos anteriores, también contamos con los elementos para una
representación esquemática de Red Neuronal (biológica o artificial). En la Figura 1.5 se
presenta un ejemplo de fragmento de esquema de Red Neuronal. Se puede apreciar
claramente la presencia de 3 neuronas y la manera en que se encuentran conectadas sus
respectivas entradas y salidas. A cada neurona le es asignado un índice. Por lo tanto, para
diferenciar los pesos a estos se les asignan dos índices de manera que wi,j denota al j-ésimo
peso de la i-ésima neurona.
12
Capítulo 1. Introducción
Wi+2,1
W i+2,2
Neurona i+2
W i,1
W i+2,n
W i,2
Neurona i
W i+1,1
W i,n
W i+1,2
Neurona i+1
W i+1,n
Los principios básicos de las Redes Neuronales Artificiales fueron formulados por
Warren McCulloch y Walter Pitts en 1943 al proponer la idea de analizar el Cómputo
Neuronal (Biológico) por medio de operaciones elementales (sumas, multiplicaciones y
lógica básica). Establecieron cinco principios como punto de partida:
• La actividad de una neurona es “Todo o Nada”. Se refiere al hecho de que las salidas
proporcionadas por la neurona son binarias: 0 o 1. La neurona proporcionará un 1 (el
“todo”) si las entradas que recibe, y al ser “sumadas” de alguna manera, proporcionan
un valor lo “suficientemente alto” precisamente para proporcionar la salida 1. De lo
contrario, se proporciona la salida 0 (la “nada”). Es claro que entonces contamos con
Neurona Binaria.
• Un cierto número fijo de sinapsis, mayor a 1, deben ser estimuladas dentro de un
intervalo de tiempo para que una neurona sea excitada. Entenderemos a la excitación de
la neurona como el simple hecho de que inicia el procesamiento de su entrada. Es decir,
sólo se ha planteado un criterio para “encender” una neurona.
13
Una Introducción al Cómputo Neuronal Artificial
Por otro lado, en 1949, Donald Hebb estableció un principio que también es
utilizado en la actualidad: la Ley de Aprendizaje Hebbiano ( Hebbian Rule, Hebbian
Learning Law). Esta ley se cita de la siguiente manera:
¿Qué significa que la eficiencia de una neurona sea incrementada? Veamos primero
un ejemplo clásico que se utiliza para visualizar el proceso de Aprendizaje Hebbiano.
a) Supóngase que una célula S causa salivación y es excitada por una célula F la cual, a su
vez, es excitada por el avistamiento de comida.
b) Supóngase además que una célula L, la cual es excitada al escuchar una campana,
también se conecta con S, pero L no es capaz de encender o excitar, por sí sola, a S:
necesita a F.
c) Ahora, cada vez que S es excitada por F, también recibe estimulación proveniente de L.
Sin embargo, la conexión entre S y L es débil o no cuenta con prioridad suficiente de
manera que S no detecta o ignora el impulso proveniente de L. Como ya comentamos,
para excitar a S, L necesita excitar a F y ésta a su vez excita a S.
d) Eventualmente, por repetición sucesiva y por cambios metabólicos o de algún otro tipo,
L será capaz de excitar a S sin que F intervenga. Es decir, tales cambios incrementan el
peso (o prioridad) de la entrada de L hacia S.
e) L ha aprendido a estimular a S y a su vez S ha aprendido a detectar y responder a las
señales de L (sin intervención alguna de F).
14
Capítulo 2. Preliminares Matemáticos
f f
X1 X1
x0 x0
a) b)
Figura 2.1. Interpretación del signo de las pendientes de las Rectas Tangentes a una función f .
a) Una pendiente positiva señala la dirección de crecimiento de f .
b) Una pendiente negativa indica que f decrece en la dirección positiva del eje X 1.
Ahora bien, consideremos una función f tal que f : 2 → . Por ejemplo, sea f la
función f ( x1, x2) = x22 − x12 . Su vector gradiente estará dado por
−2 x1
∇ f =
2 x2
4 4 0
∇ f (−2,3) = = + = 4e1 + 6e2
6 0 6
Los dos ejemplos anteriores nos permiten observar como es que efectivamente cada
componente del vector gradiente nos informa acerca de la razón de cambio de una función
en las direcciones de los ejes principales de n . En el caso particular de n = 1 de hecho no
tenemos otras maneras de movernos más a que a lo largo del eje X 1. Sin embargo, cuando
25
Una Introducción al Cómputo Neuronal Artificial
n > 1 es claro que podemos considerar direcciones no necesariamente paralelas a los ejes
principales. Y además, nos interesará conocer las razones de cambio de una función cuando
nos movemos a lo largo de tales direcciones. Por ejemplo, ¿qué tanto crece o decrece la
función f ( x1, x2) = x22 − x12 cuando nos movemos, a partir de un punto dado, en la dirección
T
−3 −3
del vector ?
18 18
Du f ( x1 ,..., xn ) = ∇f ⋅ u
u1
u
= ∇ f ⋅
2
(Ecuación 2.1.2)
un
δ f δf δ f
= u1 + u2 + ... + un
δ x1 δ x2 δ xn
−3
18
u1 =
−3
18
Ahora deseamos conocer la derivada direccional de f ( x1, x2) = x22 − x12 en el punto (-2,3) en
la dirección de u1. Por lo tanto, al aplicar la Ecuación 2.1.2, se tiene:
26
Capítulo 2. Preliminares Matemáticos
−3
4 18 −3 −3
= ⋅ = 4 + 6
6 −3 18 18
18
=−5 2
Ello implica que partiendo del punto (-2,3) y moviéndose en la dirección del vector u1, la
función f tiene una razón de cambio −5 2 . Tal razón, al ser negativa, nos indica que de
hecho la función decrece al moverse en esa dirección.
−1
u2 =
0
4 −1
= ⋅
6 0
=−4
Partiendo del punto (-2,3) y moviéndose en la dirección del vector u2, la función f tiene una
razón de cambio -4. Nuevamente, la función decrece al moverse en esa dirección.
2
− 13
u3 =
3
13
27
Una Introducción al Cómputo Neuronal Artificial
2
−
4 13
= ⋅
6 3
13
10
=
13
Concluimos que partiendo del punto (-2,3) y moviéndonos en la dirección u3, la función f
10
tiene una razón de cambio . Aunque la razón es positiva, es menor que la obtenida
13
4
para la dirección , con valor 4. Ello implica que en la dirección dada por u3 la función
0
4
crece aunque más “lento” que usando la dirección .
0
Por la teoría del Algebra Lineal se sabe que el producto punto entre ∇ f y el vector
unitario u también puede ser expresado como:
28
Capítulo 2. Preliminares Matemáticos
Pero en sí, el vector gradiente indica una dirección y es en esa dirección donde f tiene su
máximo crecimiento. Esta propiedad es sumamente útil si se requieren identificar máximos
en la función f .
Previamente establecimos que para f ( x1, x2) = x22 − x12 su vector gradiente en el
4
punto (-2, 3) era ∇ f (-2,3) = . La magnitud del vector gradiente está dada por:
6
||∇ f (-2,3)|| = 42 + 62 = 52
4
Por lo tanto, partiendo del punto (-2, 3) y en la dirección dada por el vector , el vector
6
gradiente, se tiene la máxima razón de cambio de f , 52 , y en consecuencia su dirección
de máximo crecimiento. Cualquier derivada direccional en el punto (-2, 3) indicará una
razón de cambio menor o igual a la proporcionada por el vector gradiente.
Ahora nos plantearemos una nueva pregunta: ¿Cómo encontrar aquel vector cuya
dirección, y partiendo del punto ( x1, …, xn), nos indique la mínima razón de cambio de f ?
La función coseno tiene su valor mínimo cuando θ = π. Ello implica que los vectores u y ∇ f
apuntan en direcciones opuestas. Por lo tanto, en ese caso, se tendrá que
Entonces, es claro que la dirección opuesta a la del vector gradiente nos indica hacia donde
f tiene su mínima razón de cambio. Esta propiedad es sumamente útil si se requieren
identificar mínimos en la función f .
4
Para f ( x1, x2) = x22 − x12 su vector gradiente en el punto (-2, 3) era ∇ f (-2,3) = con
6
magnitud || ∇ f (-2, 3)|| = 52 . Por lo tanto, partiendo del punto (-2, 3) y en la dirección dada
4
por el vector (-1) se tiene la mínima razón de cambio de f , - 52 . Cualquier otra
6
derivada direccional en el punto (-2, 3) indicará una razón de cambio mayor o igual a la
proporcionada por la dirección opuesta del vector gradiente.
29
Una Introducción al Cómputo Neuronal Artificial
Existen tres condiciones a las cuales los datos experimentales deben sujetarse y que
de hecho asumiremos se cumplen:
• Deben ser suficientes en cantidad.
• Deben capturar los principios fundamentales del sistema o modelo de origen.
• Y finalmente, deben ser libres, tanto como sea posible, de ruido.
d ≈ wx1 + b
Es decir, buscaremos valores para las variables w y b de manera que contemos con un
modelo lineal tal que dado un valor para la variable x1, obtengamos, tan justa como sea
posible, la correspondiente predicción d . O de manera más específica, dado un valor de
entrada particular x1,i y el correspondiente ruido o error εi, el cual se agrega a wx1,i + b,
entonces podemos garantizar una predicción exacta d i:
Donde εi es ahora el error agregado a x2,i, w es una pendiente y b es una intersección con el
eje X 2. Al valor b también se le llama sesgo. Es claro que se buscará entonces una recta en
el plano que se ajuste a las observaciones ( x1,i, d i). Véase la Figura 2.2. Es bien sabido que
cualquier recta se ajusta perfectamente a dos observaciones, pero ésta no necesariamente se
ajustará al resto de las observaciones. Nuestro problema a resolver se plantea en el
siguiente cuestionamiento: ¿Cuál es la mejor elección de w y b tal que la recta wx1 + b esté
tan “cerca” como sea posible a todas las observaciones?
30
Una Introducción al Cómputo Neuronal Artificial
1 N 2
J = ε
2 N i =1 i
(Ecuación 2.2.5)
J nos
proporciona, para una recta candidata, el error total que ésta tiene con el
conjunto de observaciones. Ahora el objetivo será minimizar a J . La Sección anterior nos
proporcionó herramientas para lograr este objetivo. J puede ser vista como una Función de
Error para la cual se quiere determinar su mínimo global. Se garantiza la existencia de un
único mínimo ya que si se observan las Ecuaciones 2.2.3 y 2.2.5, se tiene que J describe un
paraboloide en el espacio tridimensional debido a que depende de las variables w y b. Es en
este mínimo donde el vector gradiente de J es precisamente el vector cero. Por lo tanto, el
primer paso es determinar ∇ J . Ello implica encontrar las derivadas parciales de J respecto
a las variables w y b. Posteriormente, el segundo paso consistirá en igualar a las
expresiones resultantes a cero. Esto genera un sistema de ecuaciones:
δ J
δ b = 0
δ J = 0
δ w
La solución del sistema de ecuaciones nos proporcionará los valores óptimos de b y w de tal
forma que la función de error J sea minimizada tanto como sea posible. De esta forma,
habremos encontrado a la mejor recta para ajustar nuestros datos.
δ J δ 1 N 2
= ε i
δ b δ b 2 N i =1
1 N δ 2
2 N
= ε i
i =1 δ b
1 N δ 2
=
2 N i =1 δ b
( di − wx1,i − b ) (Por la Ecuación 2.2.3)
1 N δ
=
2 N i =1
2 ( di − wx1,i − b ) ( d i − wx1,i − b )
δ b
(Regla de la Cadena)
1 N
di y wx1,i son constantes
= (d i − wx1,i − b ) ( −1)
N i =1 respecto a b
32
Capítulo 2. Preliminares Matemáticos
1 N
= ( wx1, + b − d )
N i =1
i i
wx i b d
N
= 1, + − i
i =1 N N N
N
x1,i N
b N
d i
= w + −
i =1 N i =1 N i =1 N
δ J N
x1,i N
b N
d
= w + − i (Ecuación 2.2.6)
δ b i =1 N i =1 N i =1 N
δ J δ 1 N 2
= ε i
δ w δ w 2 N i =1
1 N δ 2
2 N
= ε i
i =1 δ w
1 N δ 2
=
2 N i =1 δ w
( di − wx1,i − b ) (Por la Ecuación 2.2.3)
1 N δ
=
2 N i =1
2 ( di − wx1,i − b ) ( d i − wx1,i − b )
δ w
(Regla de la Cadena)
Es decir:
2
δ J N
x1,i N
x1,i N
dx
= w + b − i 1, i (Ecuación 2.2.7)
δ w i =1 N i =1 N i =1 N
33
Una Introducción al Cómputo Neuronal Artificial
δ J δ J
Ahora tanto como son igualadas a cero y se cuenta con el siguiente
δ b δ w
sistema de ecuaciones:
N x1,i N b N d i
w + − =0 (Ecuación 2.2.8)
i =1 N i =1 N i =1 N
N x 2
w 1,i + b x1,i − d i x1, i = 0
N N
(Ecuación 2.2.9)
i =1 N i =1 N i =1 N
Hagamos:
N
x1,i N
d i
x = 1 N
i=
d = 1 N
i=
N
x1,2i N
d i x1,i
2
x = 1 N
i=
xd = 1
i= N
wx + b − d = 0 (Ecuación 2.2.10)
2
wx + bx − xd = 0 (Ecuación 2.2.11)
wx + b − d = 0
⇔ b = d − wx
wx 2 + (d − wx ) x − xd = 0
2
⇔ wx 2 + d ⋅ x − w ( x ) − xd = 0
34
Capítulo 2. Preliminares Matemáticos
2
⇔ wx 2 − w ( x ) = xd − d ⋅ x
xd − d ⋅ x
⇔ w= 2 (Ecuación 2.2.12)
2
x − x ( )
b = d − wx
xd − d ⋅ x
=d− 2 x
x − x
2
( )
2
xd ⋅ x − d ⋅ x ( )
= d − 2
x 2 − ( x )
( )
2 2
d x2 − x ( ) − xd ⋅ x + d ⋅ ( x )
= 2
x − x
2
( )
2
d ⋅ x − xd ⋅ x
= 2
x − x
2
( )
Es decir:
d ⋅ x2 − xd ⋅ x
b= 2 (Ecuación 2.2.13)
2
x − x ( )
Las Ecuaciones 2.2.12 y 2.2.13 representan los valores óptimos para las variables w
y b respectivamente. Ello se debe a que se determinó para qué valores precisamente de w y
b el vector gradiente de la función de error J es el vector cero.
35
Una Introducción al Cómputo Neuronal Artificial
15
10
5
4 2 2 4
5
10
w = 2.9818
b = 3.9545
Ello implica que la recta que mejor se ajusta a nuestro conjunto de datos está dada por:
36
Capítulo 2. Preliminares Matemáticos
15
10
5
4 2 2 4
5
10
Figura 2.4. La recta d = 2.9818 x1 + 3.9545 como el mejor estimador lineal
para el conjunto de datos presentado en la Tabla 2.1.
2
J = 5w + 0.5b2 – 29.81w – 3.95b + 52.397
37
Una Introducción al Cómputo Neuronal Artificial
modelará la correlación lineal entre el vector xi y el escalar d i. Sea d i’ el valor
proporcionado por nuestro estimador:
P
'
di = b + 1 w x ,
k =
k ik (Ecuación 2.3.1)
ε i = di − d i'
P
= di − b + wk xi ,k (Ecuación 2.3.2)
k =1
= di − (b + w1 xi ,1 + w2 xi ,2 + ... + wP xi, P )
38
Capítulo 2. Preliminares Matemáticos
P
ε i = di − wk xi ,k (Ecuación 2.3.3)
k = 0
δ J
δ w = 0
0
δ J
=0
δ
1 w
δ J
δ w = 0
P
En términos geométricos, lo que buscamos son los valores de los coeficientes w0,
w1, …, wP de manera que el hiperplano multidimensional
se ajuste lo mejor posible a nuestro conjunto de mediciones ( xi, d i), xi ∈ P +1 , d i ∈ ,
i = 1, 2, 3, …, N . Por otro lado, la función de error J describe a una hipersuperficie , en
particular, un hiperparaboloide multidimensional. La ecuación de tal lugar geométrico está
dada en función de las variables w0, w1, …, wP. Por lo tanto, el hiperparaboloide asociado a
J está inmerso en un espacio Euclidiano ( P+2)-Dimensional. Sin embargo, demostraremos
que, tal como sucede en el caso bidimensional (véase la Sección anterior), J cuenta con un
único mínimo. En ese punto el vector gradiente es el vector cero. Es precisamente en esa
localidad donde encontramos los valores óptimos para w0, w1, …, wP.
39
Una Introducción al Cómputo Neuronal Artificial
2
δ J δ 1 N P
=
δ w j δ w j 2 N i =1
di − wk xi , k
k = 0
(Por la Ecuación 2.3.4)
2
1 N δ P
= d − w x
2 N i =1 δ w j i k =0 k i ,k
1 N P
δ P
= 2
2 N i =1 d i −
k =0
w x
k i ,k
δ w j
d i −
k = 0
wk xi , k
1
N P
δ P
= di − wk xi ,k − 0 wk xi , k (di es constante respecto a w j )
δ w j
N i =1 k =0 k =
Todas las variables wk son
1 N
P
= di − wk xi ,k ( − xi , j ) constantes respecto a w j excepto
N i =1
k = 0
aquella para la cual k = j
1
N P
= − xi , j d i − wk xi , k
N i =1 k = 0
Concretizando:
δ J 1 N P
= − xi , j d i − wk xi , k (Ecuación 2.3.5)
δ w j N i =1 k = 0
1 N P
− xi , j d i − wk xi , k = 0 j = 0,1, 2,...P
N i =1 k = 0
1 N
P
−
N 1i=
xi , j d i −
0 w x ,
k =
k i k = 0
N
P
(Al multiplicar ambos lados
⇔ xi , j di − wk xi , k = 0
i =1 k = 0 por - N ).
N
P
⇔ xi , j d i − xi , j wk xi, k = 0
i =1 k = 0
40
Capítulo 2. Preliminares Matemáticos
N N
P
(La sumatoria principal es
⇔ xi , j d i − xi , j wk xi, k = 0
i =1 i =1 k = 0 expresada como dos sumatorias)
N
N P
⇔ xi , j d i = xi , j wk xi, k (Ecuación 2.3.6)
i =1 i =1 k = 0
i , j k i , k 1, j k 1, k 2, j k 2, k 3, j k 3, k
i =1
x
k =0
w x
= x
k =0
w x + x
k =0
w x + x
k =0
w x + ... + x N , j wk x N , k
k =0
P P P P
= wk x1, j x1, k + 0 wk x2, j x2, k + 0 wk x3, j x3, k + ... + 0 w x k N, j xN ,k
k =0 k= k= k=
Es claro que los términos entre paréntesis, con factor común xi , j , corresponden al
P
desarrollo “horizontal” de cada suma xi , j wk xi, k . Pero nótense los recuadros punteados
k = 0
que hemos agregado. Los términos en cada uno de estos recuadros pueden ser vistos como
N
el desarrollo “vertical” de una sumatoria de la forma wk xi, j xi , k , donde evidentemente sus
i =1
términos cuentan con el factor común wk . Reagrupando los términos de las sumatorias en
forma “vertical” tenemos ahora:
N N N N
= w0 xi , j xi ,0 + w1 xi , j xi,1 + w2 xi, j xi,2 + ... + wP xi, j xi, P
i =1 i =1 i =1 i =1
P N
= wk xi , j xi , k
k =0 i =1
i , j wk xi , k =
i =1
x
k = 0
0 w 1 x , x ,
k=
k
i=
i j i k (Ecuación 2.3.7)
41
Una Introducción al Cómputo Neuronal Artificial
1 x , d = 0 w 1 x , x ,
i=
i j i
k=
k
i=
i j i k (Ecuación 2.3.8)
1 x , d 0 w 1 x , x ,
i=
i j i
k=
k
i=
i j i k
=
N N
1 P N
=
N k =0
w 1 x , x , k
i=
i j i k
P
1 N
= wk x, x, i j i k
k =0 N i =1
1 N P
1 N
⇔
N
1 i=
xi , j di = 0
k=
wk
N i =1
x, x, i j i k (Ecuación 2.3.9)
1 N
Rk , j =
N i =1
x, x, i j i k
k = 0,1,2,..., P
j = 0,1,2,..., P (Ecuación 2.3.10)
1 N
℘ j = x , d
N i =1
i j i j = 0,1,2,..., P (Ecuación 2.3.12)
42
Capítulo 3. La Neurona Adaline
xi ,0 = 1
x
i ,1
X i = xi ,2
xi , P
y d i es un escalar que corresponde a la salida que se espera proporcione la neurona cuando
X i le es enviado como entrada, i = 1, 2, 3, …, N .
w0
w
1
W = w2
wP
W1
Xi,1
s
a
d a
a P z d
i
r
t
n
E
z = w0 + 1 w x ,
k =
k i k
l
a
S
WP
Xi,P
53
Una Introducción al Cómputo Neuronal Artificial
A rtificial
Sea zi el escalar que produce la neurona como salida cuando se le envía como
entrada el vector X i. De hecho:
P
zi = 0 w x ,
k =
k ik (Ecuación 3.2.1)
Nótese que hemos incorporado al peso w0 a la sumatoria haciendo xi,0 = 1 para todo vector
de entrada.
1 N 2
2 N
J (W ) = ε i (Ecuación 3.2.3)
i =1
Es claro que el Costo de Entrenamiento no es más que la fórmula para el Promedio de los
Errores al Cuadrado originalmente presentada en la Sección 2.3 (Ecuación 2.3.4). Es
precisamente en este punto en que tenemos ya una conexión directa entre el objetivo de
ajustar los pesos de la neurona Adaline y el método de Mínimos Cuadrados.
℘ = RW
El vector W contiene,
contiene, una vez resuelta la ecuación, los pesos que deben ser aplicados a la
Sumatoria de Salida
P
zi = 0 w x ,
k =
k ik
54
Capítulo 3. La Neurona Adaline
Consideremos el caso del ajuste de pesos de manera que una neurona Adaline
modele a la función Booleana presentada en la Tabla 3.1. Recuérdese que se agrega un
0-ésimo componente a los vectores de entrada: xi,0. Su valor es siempre igual a 1 y tiene la
finalidad de incorporar al peso w0 en la Sumatoria de Salida. Tenemos entonces el conjunto
de entrenamiento:
1 1 1 1
• X 1 = 0 , X 2 = 1 , X 3 = 0 , X 4 = 1
0 0 1 1
• d1 = 1, d 2 = 0, d3 = 1, d 4 = 0
• N =
= 4
Tabla 3.1. Una compuerta lógica
a ser modelada por una neurona Adaline.
i xi,1 xi,2 d i
1 0 0 1
2 1 0 0
3 0 1 1
4 1 1 0
55
Una Introducción al Cómputo Neuronal Artificial
A rtificial
Por lo tanto:
1 1
1 2 2
1 1 1
R =
2 2 4
1 1 1
2 4 2
3 −2 −2
−1
R = −2 4 0
−2 0 4
Al aplicar la Ecuación 2.3.12 (Sección 2.3) tenemos que los elementos del vector
℘ están dados por:
1 4 1 4 1
• ℘0 = xi ,0 di = d i =
4 i =1 4 i =1 2
1 4
• ℘1 = xi ,1d i = 0
4 i =1
1 4 1
• ℘2 = xi ,2 d i =
4 i =1 4
Entonces:
1
2
℘= 0
1
4
Encontramos los valores del vector W mediante el producto matricial W = R-1℘
(Ecuación 2.3.16, Sección 2.3):
1
3 −2 −2 2 1
W = −2 4 0 0 = −1
−2 0 4 1 0
4
56
Capítulo 3. La Neurona Adaline
57
Una Introducción al Cómputo Neuronal Artificial
A rtificial
1 N 2 1 N
J (W ) =
2 N i =1
ε i =
2 N i =1
(di − ( w0 xi ,0 + w1xi ,1)) 2
Sabemos que la función J (W ) define un paraboloide ya que sólo depende de las variables w0
y w1, y por tanto sólo tiene un mínimo. También sabemos que este mínimo puede ser
determinado por el método de Mínimos Cuadrados.
J(W))
J(W ∇J(W
J(W))
Ahora bien, la teoría presentada en la Sección 2.1 nos dejó claro que un vector
gradiente de J (W ),
), es decir ∇ J (W ),
), es un vector que apunta a la dirección de máximo
crecimiento. Este vector nos indica la dirección hacia la cual el error se maximiza (Véase la
58
Capítulo 3. La Neurona Adaline
Figura 3.5 en la cual se presenta una sección transversal del paraboloide definido por
J (W )). Sin embargo, el vector gradiente ∇ J (W ) también puede ser usado para buscar el
mínimo de J (W ). ∇ J (W ) puede ser calculado de manera local al ubicarnos en un punto dado
(w0, w1). Dado que la meta es alcanzar al mínimo de J (W ) entonces partiendo de ( w0, w1), la
dirección a tomar para efectuar la búsqueda debe ser la opuesta al gradiente, es decir, usar
la dirección dada por - ∇ J (W ) (Véase la Figura 3.6).
-∇J(W)
∇J(W)
J(W)
Ahora conectaremos estos últimos puntos para definir de manera más precisa el
proceso iterativo que mencionamos al inicio de esta Sección y hacer uso de la Ecuación
3.3.1 para la actualización del vector de pesos de la neurona. Véase la Figura 3.7. Dado un
vector de pesos iniciales W 1, se calcula el gradiente de J (W ) en W 1: ∇ J (W 1). Nótese que la
función J (W ) está definida para cualquier punto, por lo tanto, W 1 podría ser inicializado con
valores aleatorios. Se inicia la búsqueda del mínimo en dirección opuesta a ∇ J (W 1). Para
ello, se requiere que nos desplacemos a otro punto. Entonces, modificamos
proporcionalmente al vector W 1 usando -∇ J (W 1) de tal forma que obtenemos un nuevo
vector de pesos W 2. Ya ubicados en el punto W 2, se calcula nuevamente el gradiente de
J (W ) en W 2, es decir, se obtiene ∇ J (W 2). Ahora debemos continuar la búsqueda en
dirección opuesta a ∇ J (W 2). Se modifica al vector W 2 de manera proporcional usando a
∇ J (W 2) de tal forma que se obtiene un nuevo vector de pesos W 3. Este proceso continúa de
manera iterativa de tal forma que en la m-ésima iteración estaremos ubicados en el punto
W m. Se calcula el gradiente de J (W ) en W m: ∇ J (W m). Se continúa la búsqueda en dirección
opuesta a ∇ J (W m). Se modifica al vector W m de manera proporcional usando - ∇ J (W m) de
donde se obtiene un nuevo vector de pesos W m+1. Este proceso terminará cuando el vector
59
Una Introducción al Cómputo Neuronal Artificial
gradiente en el punto actual sea el vector cero o esté tan cerca como sea posible al vector
cero. La idea es que en cada iteración nos acerquemos cada vez más al mínimo de la
función J (W ). El punto final ( w0, w1) es donde precisamente los valores de los pesos se
optimizan.
∇J(W1)
J(W)
W1
∇J(W3) ∇J(W2)
W2
W3
...
Wm+1 Wm
∇J(Wm)
60
Capítulo 3. La Neurona Adaline
Procedure FindMinimum
(Matrix x[1, …, N ][0,1], Array d [1, …, N ], Real δ, Real α, Integer maxIt )
// Se asignan valores aleatorios al vector de pesos iniciales.
W = new Array[0,1]
W[0] = Random( )
W[1] = Random( )
m=0
while (m < maxIt ) do
// Se calcula el vector gradiente en el punto dado por W.
∇J_W = GetGradientVector( x, d, W , N )
// Se obtiene la magnitud del vector gradiente.
Real mag = ∇J_W[0]2 + ∇J_W[1]2
// Si la magnitud del vector gradiente es menor o igual a δ
// entonces se retorna como salida el vector de pesos actual.
if (mag ≤ δ) then
return W
end-of-if
// Se obtiene la variación o cambio a aplicar al vector de pesos W.
∆wm = new Array[0,1]
∆wm[0] = α ∗ (−1) ∗ ∇ J_W[0]
∆wm[1] = α ∗ (−1) ∗ ∇ J_W[1]
// Se actualiza el vector de pesos.
W[0] = W[0] + ∆wm[0]
W[1] = W[1] + ∆wm[1]
m=m+1
end-of-while
// Si se alcanzó el número máximo de iteraciones entonces se retorna como
// salida al último vector de pesos calculado.
return W
end-of-procedure
61
Una Introducción al Cómputo Neuronal Artificial
gradiente en el punto dado por el vector de pesos. Ello implica que entonces implementa las
Ecuaciones 2.2.6 y 2.2.7 (Sección 2.2) que corresponden a las derivadas parciales de J (W ):
δ J (W ) N
x1,i N
d i
• = w1 + w0 −
δ w0 i =1 N i =1 N
2
δ J (W ) N
x1,i N
x1,i N
dx
• = w1 + w0 − i 1, i
δ w1 i =1 N i =1 N i =1 N
Nótese que las sumatorias dependen únicamente del conjunto de entrenamiento. Por lo que
éstas podrían ser precalculadas y pasadas también como entrada al Algoritmo 3.1 y en
consecuencia a la función GetGradientVector .
δ J (W ) 1 N
P
1 N N P
δ w j
=−
N
1
i=
xi , j d i −
0
k=
wk xi , k = −
N 1
i=
xi, j d i − 1 0 w x ,
i=
xi , j
k=
k i k , j = 0, 1, …, P
N
Es posible precalcular la sumatoria 1 x , d ya que únicamente depende del conjunto de
i=
i j i
N P
entrenamiento. Sin embargo no es así con la sumatoria doble 1 x , 0 w x ,
i=
i j
k =
k i k debido
a que
depende también de los pesos w0, w1, …, wP.
62
Capítulo 3. La Neurona Adaline
xm ,0
x
∇ J (W )m = −2ε m
m ,1
xm , P
se deben efectuar, por cada componente de ∇ J (W ) m , 2 multiplicaciones. Entonces tenemos
en total 2(P+1) operaciones. Cada componente de ∇ J (W ) m debe ser además multiplicado
por -1 y por la constante µ. Tenemos entonces que para calcular al Término de Variación o
Cambio ∆wm = µ(-∇ J (W )m) se requieren 2( P+1) operaciones. Finalmente, para la
actualización del vector de pesos
Se deberán realizar P+1 sumas. Agrupando los conteos anteriores tenemos, que para
obtener un vector de pesos actualizado, el número de operaciones requeridas en total es:
Dado que en una presentación se efectúan N actualizaciones del vector de pesos entonces
tenemos que se realizan N (7P + 8) operaciones. Por último, el conjunto de entrenamiento
completo es presentado en T ocasiones. Entonces el número total de operaciones efectuadas
por el Algoritmo 3.4 será representado por la función SDO(T , N, P) (Steepest Descent
Operations ) y la cual está dada por:
Ahora bien, tenemos pleno conocimiento de que el problema que estamos tratando
puede ser debidamente resuelto mediante el método de Mínimos Cuadrados. Recordemos
algunos puntos. Sea la matriz R de (P+1) × (P+1) dada por (Ecuación 2.3.11):
75
Una Introducción al Cómputo Neuronal Artificial
Donde cada uno de sus elementos está dado por ( Ecuación 2.3.10):
1 N
k = 0,1,2,..., P
Rk , j = x, x,
N 1
i=
i j i k
j = 0,1,2,..., P
℘0
℘
℘=
1
℘P
1 N
℘ j = x , d
N i =1
i j i j = 0,1,2,..., P
Por la Ecuación 2.3.15 tenemos que el método de Mínimos Cuadrados queda expresado
como el producto matricial:
℘ = RW
Donde W es precisamente nuestro vector de pesos. Dada la inversa de R, R-1, entonces la
Ecuación 2.3.16 nos dice que el vector de pesos óptimo esta dado por:
-1
R ℘ = W
76
Capítulo 3. La Neurona Adaline
1 N
Ahora bien, la segunda fase requiere encontrar la matriz inversa de R. Supongamos
que se aplica el bien conocido método de Eliminación de Gauss-Jordan. Es bien sabido que
se requieren un número de operaciones de orden cúbico, respecto al número de renglones
de la matriz, para encontrar su inversa. Tomemos tal cota justa. Por lo tanto, dado que R es
de tamaño (P + 1) × (P + 1) entonces el número total de operaciones a ejecutar para
encontrar su inversa es ( P + 1)3.
2 3
LSO( N , P) = (P + 1) (2 N + 1) + (P + 1)(2 N + 1) + (P + 1) + (P + 1)2 (Ecuación 3.3.10)
SDO(T , N, P) < LSO( N , P)
⇔ TN (7P + 8) < (P + 1)2(2 N + 1) + (P + 1)(2 N + 1) + (P + 1)3 + (P + 1)2
77
Una Introducción al Cómputo Neuronal Artificial
La idea ahora es acotar a T en función de N y P (lo cual en realidad será muy sencillo):
Nótese que el denominador 7 NP + 8 N nunca se hace cero ya que N > 0 y P > 0. De hecho,
el cociente, para cualquier valor de N y P, ambos positivos, proporciona siempre un valor
positivo (todos los términos que lo conforman son positivos). Lo interesante es que
contamos con una formulación tal que dados los valores de N y P determinaremos el
número máximo de presentaciones del conjunto de entrenamiento que se deben efectuar de
manera que el número de operaciones del método de Descenso Escalonado sea
estrictamente menor al número de operaciones requeridas por el método de Mínimos
Cuadrados. Por ejemplo, supongamos que se cuenta con un conjunto de entrenamiento de
tamaño N = 100 y dimensionalidad P = 20. Entonces al sustituir en la cota superior para T
tenemos que:
Ello implica que con el método de Descenso Escalonado se deben efectuar a lo más T = 6
presentaciones del conjunto de entrenamiento antes de que sea más conveniente utilizar el
método de Mínimos Cuadrados. Supongamos ahora que N = 1,000 y P continúa con su
valor 20. Nuevamente, al sustituir en la cota superior para T obtenemos:
Nuevamente determinamos que cómo máximo T = 6 presentaciones son las convenientes.
Surge entonces la observación de que quizás quien realmente determina el número máximo
de presentaciones del conjunto de entrenamiento es la dimensionalidad P de los vectores de
entrada. Veamos qué sucede cuando N → ∞ mientras P permanece constante. Para ello
calculamos el siguiente límite asumiendo por el momento a N y P como reales positivos:
78
Capítulo 3. La Neurona Adaline
3 2 2
P + 2 NP + 5P + 6 NP + 8P + 4 N + 4
lim
N →∞ 7 NP + 8 N
(2 NP 2 + 6 NP + 4 N ) + ( P 3 + 5P 2 + 8P + 4)
= lim
N →∞ 7 NP + 8 N
2 3 2
(2 NP + 6 NP + 4 N ) P + 5P + 8P + 4
= lim + lim
N →∞ N (7 P + 8) N →∞ N (7 P + 8)
2P 2 + 6P + 4 3 2
N P + 5P + 8P + 4 1
= lim + lim
7 P + 8 N→∞ N
7P + 8 N
N →∞
1 0
2P 2 + 6P + 4
=
7P + 8
2P 2 + 6P + 4
Ello quiere decir que la expresión nos proporciona el número máximo
7P + 8
de veces que el conjunto de entrenamiento puede ser presentado, bajo Descenso
Escalonado, suponiendo que su tamaño N es suficientemente grande. Entonces, sea T(P)
definido como el número máximo de presentaciones de un conjunto de entrenamiento,
de tamaño suficientemente grande, y con vectores de dimensionalidad P, de manera que el
método de Descenso Escalonado requiera efectuar un número de operaciones menor que el
método de Mínimos Cuadrados:
2P 2 + 6P + 4
T ( P) = (Ecuación 3.3.11)
7P + 8
Por lo tanto, retomando nuestro ejemplo con P = 20 y aplicando la Ecuación 3.3.11:
2(20)2 + 6(20) + 4
T (20) = =6
7(20) + 8
79
Una Introducción al Cómputo Neuronal Artificial
Supongamos, por ejemplo, que se requiere entrenar a una neurona Adaline usando
un conjunto de imágenes con resolución 320 × 240. Supongamos también, y de hecho en
ocasiones así se procede en la práctica, que tales imágenes son representadas como vectores
en P +1 de manera que P = 320⋅240 = 76,800. Entonces tenemos que, por la Ecuación
3.3.11, el número máximo de presentaciones a efectuar es:
2(1)2 + 6(1) + 4
T (1) = =0
7(1) + 8
El valor T (1) = 0 es indicativo de que de hecho, para este caso, el método de Descenso
Escalonado no es más eficiente que el método de Mínimos Cuadrados. Es más, este
comentario ya había sido hecho en su momento en la Sección anterior.
2(2) 2 + 6(2) + 4
T (2) = =1
7(2) + 8
80
Capítulo 3. La Neurona Adaline
Por último, y para concluir esta sección, debemos hacer notar que mientras que la
Ecuación 3.3.9 nos indica el número de operaciones requeridas por el método de Descenso
Escalonado y la Ecuación 3.3.11 nos proporciona el número máximo de presentaciones del
conjunto de entrenamiento a efectuar, es importante tener en cuenta que la diferencia entre
el vector de pesos final y el vector de pesos óptimo va también en función de µ, de que tan
representativos son los elementos del conjunto de entrenamiento y del vector inicial W 1.
Ello quiere decir que el efectuar T (P) presentaciones no garantiza de ninguna manera que el
vector de pesos final sea el vector óptimo o que incluso se encuentre sumamente cerca de
éste. Podemos encontrar situaciones en las cuales se requieren presentaciones adicionales
del conjunto de entrenamiento. Sin embargo, en la práctica se verá que el método de
Descenso Escalonado por nada deja de ser un muy buen mecanismo para una aproximación
rápida del vector de pesos. De hecho, es recurrente contar únicamente con un vector de
pesos lo suficientemente cercano al vector óptimo, pero que de igual manera produce una
solución bastante aceptable al problema que la correspondiente neurona Adaline esté
modelando. Por otro lado, debe ser claro que conforme la dimensionalidad P de los
vectores de entrada aumenta, la Ecuación 3.3.11 nos indica que el número de
presentaciones del conjunto de entrenamiento crece de manera significativa y satisfaciendo
el hecho de que se requieren menos operaciones que el método de Mínimos Cuadrados. En
conclusión, la eficiencia del método de Descenso Escalonado mejora conforme P → ∞.
81
Capítulo 4. El Perceptrón
X3
X2
X1
• La Región 2 contendrá a todos los puntos ( x1, …, xn) que están ubicados por debajo del
hiperplano z( x1, …, xn) = 0:
R2 = {( x1, …, xn): w1 x1 + … + wn xn < 0}
n
o
95
Una Introducción al Cómputo Neuronal Artificial
Ahora analizaremos la relación que existe entre las particiones del espacio n
inducidas por el umbral z( x1, …, xn) = 0 (Ecuación 4.2.4) y el conjunto de problemas que
pueden ser representados por el Perceptrón. Precisamente la relación se establece de
manera textual mediante el planteamiento del Problema de Representación:
El Perceptrón únicamente puede resolver aquellos problemas que pueden ser
reducidos a un Problema de Separación (Clasificación) Lineal .
x2
(0,1) (1,1)
(0,0)
x1
(1,0)
96
Capítulo 4. El Perceptrón
x2
(0,1) (1,1)
(0,0)
x1
(1,0)
Figura 4.11. Una recta que separa los estados con salida 0
del estado con salida 1 en la compuerta lógica AND.
97
Una Introducción al Cómputo Neuronal Artificial
x2
(0,1) (1,1)
(0,0)
x1
(1,0)
Es claro, en términos visuales, que cualquier recta en el plano no podrá separar a los
puntos blancos de los puntos negros en la Figura 4.12. Si bien es posible hacer que los
puntos blancos (negros) queden por encima o inmersos en la recta, siempre estará un punto
negro (blanco) en esa misma región (véase la Figura 4.13). Por lo tanto, concluimos que no
existe una recta o umbral z( x1, x2) = 0 tal que los estados A y D queden separados de los
estados C y B. En consecuencia se tiene que el problema del modelado, mediante un
Perceptrón, de la función XOR no es linealmente separable.
La situación con el XOR nos conduce entonces a aceptar que existirán problemas
para los cuales el Perceptrón no proporciona una solución o modelo. El siguiente
cuestionamiento que surge es entonces aquel relacionado a determinar cuantos problemas
linealmente separables existen, o bien, de manera complementaria, determinar la cantidad
de problemas no linealmente separables. Para ello, nos concentraremos en un particular tipo
de problemas: el Modelado de Funciones Booleanas. Sabemos que una función Booleana f
es aquella para la que formalmente se tiene:
98
Capítulo 4. El Perceptrón
Los pesos identificados a '1 a a '7 se utilizan para generar la señal correspondiente.
Para este fin se utilizará la siguiente fórmula:
Nótese la similitud de ésta con la Ecuación 4.3.1, la cual fue utilizada para generar la serie
de tiempo original (Figura 4.18). En el caso actual, las M muestras, para obtener al
estimado x 'n , son tomadas del conjunto de entrenamiento. Ello implica que de hecho la
115
Una Introducción al Cómputo Neuronal Artificial
sumatoria usada para generar a x 'n es la sumatoria de salida del Perceptrón. Por esa misma
razón hemos omitido el término de ruido o perturbación ya que la neurona fue entrenada
con muestras a las cuales ya se les había aplicado la función noise(n). Finalmente,
agregamos el hecho de que la Función de Activación utilizada fue la Función Identidad. Por
tanto, el caso cuando N ≥ n > M en la Ecuación 4.3.11 no hace más que enviar como
entrada al Perceptrón el vector [ xn-1 xn-2 xn-3 … xn- M ]T y obtener la salida
correspondiente x 'n . La Figura 4.22 muestra la señal generada al aplicar el Perceptrón bajo
la Ecuación 4.3.11. En la Figura 4.23 se presenta la señal generada por el Perceptrón (en
gris) sobrepuesta con la señal original (en negro). Debido a que los parámetros
autorregresivos identificados cuentan con errores respecto a los originales, es que es fácil
detectar pequeñas diferencias entre las señales. Sin embargo, es también claro que el error
es en realidad pequeño.
MSE
28
26
24
22
20
20 40 60 80 100 T
Figura 4.20. Evolución del valor MSE (Ecuación 4.3.4) a lo largo de las T = 100
presentaciones del conjunto de entrenamiento para un Perceptrón entrenado mediante
el Algoritmo 4.1 (Véase el texto para detalles).
116
Capítulo 4. El Perceptrón
µ
0.0003
0.00025
0.0002
0.00015
0.0001
0.00005
20 40 60 80 100
T
Figura 4.21. Evolución del Coeficiente de Aprendizaje µ a lo largo de las T = 100
presentaciones del conjunto de entrenamiento para un Perceptrón entrenado mediante
el Algoritmo 4.1 (Véase el texto para detalles).
117
Una Introducción al Cómputo Neuronal Artificial
xn
118
Capítulo 4. El Perceptrón
xn
119
Una Introducción al Cómputo Neuronal Artificial
A rtificial
120
Una Introducción al Cómputo Neuronal Artificial
5. La Red Madaline
Una Introducción al Cómputo Neuronal Artificial
A rtificial
122
Capítulo 5. La Red Madaline
La Red Madaline ( Many Adaline) es una Red Neuronal Artificial formada por varias
Many Adaline
neuronas del tipo Adaline (Capítulo 3) las cuales se encuentran agrupadas en capas. En el
Capítulo 1 comentamos que fue propuesta por Bernard Widrow en 1960. Existen varios
mecanismos para el ajuste de los pesos de las neuronas que conforman a una red Madaline.
Uno de ellos es la Madaline Rule II, la cual fue originalmente propuesta por Widrow junto
con Rodney Winter en 1988. En la Sección 5.2 haremos mención de una metodología para
el ajuste de pesos que toma algunos elementos de la Madaline Rule II. Por lo mientras, en
la siguiente Sección describiremos las bases que forman el procesamiento de un vector de
entrada para producir la correspondiente salida.
Adaline 1 Adaline 3
z1 = w1,0 + z3 = w3,0
y1 = y3 =
x1 3 + w3,1 y1
1
i=
w1,i xi ig n( z1 )
s ig
+ w3,2 y2
ig n( z3 )
s ig
Adaline 5
z5 = w5,0
x2 y5 =
+ w5,1 y3 y5
ig n( z5 )
s ig
+ w5,2 y4
Adaline 2 Adaline 4
z2 = w2,0 + z4 = w4 ,0
x3 y2 = y4 =
3 + w4,1 y1
1
i=
w2,i xi ig n( z2 )
s ig
+ w4,2 y2
ig n( z4 )
s ig
El proceso que acabamos de describir, para la red de la Figura 5.1, puede ser visto
como una serie de mapeos de vectores que inicia desde la capa de entrada. Ésta recibe un
123
Una Introducción al Cómputo Neuronal Artificial
Esta secuencia de mapeos de vectores entre las capas también nos permite
determinar el número de conexiones existentes en la red. Dado que los n componentes del
vector de entrada se propagan todos a las p neuronas en la capa de entrada es que entonces
tenemos np conexiones. Sabemos que cada neurona en la capa de entrada contribuye con un
escalar de salida de manera que en esta capa se forma un vector de p componentes. Este
vector es propagado hacia todas las n1 neuronas que forman a la primera capa oculta. Por lo
tanto se tienen pn1 conexiones entre la capa de entrada y la primera capa oculta. La -ésima
capa oculta se forma por n neuronas. Las salidas de estas neuronas forman un vector de n
componentes el cual a su vez es propagado a la siguiente capa oculta la cual se forma por
n +1 neuronas. El número de conexiones entre estas dos capas ocultas estará dado por n ⋅n +1.
Por último, se tiene que la última capa oculta se formará por nm neuronas. Sus salidas
forman un vector de nm componentes los cuales son todos propagados hacia las q neuronas
en la capa de salida. Se tienen entonces nmq conexiones. Sea CM (n, p, m, q, n1, …, nm) el
número de conexiones presentes en una red Madaline. De acuerdo a la descripción anterior
tendremos que:
m −1
CM ( n, p, m, q , n1 , …, nm ) = np + pn1 + 1 n
=
⋅n +1 + nmq (Ecuación 5.1.1)
Por ejemplo, para la red Madaline de la Figura 5.1 tenemos que la Ecuación 5.1.1
nos indica que existen 12 conexiones:
0
CM ( 3, 2,1,1, 2 ) = 3 ⋅ 2 + 2 ⋅ 2 + 1 n
=
⋅n +1 + 2 ⋅1 = 6 + 4 + 0 + 2 = 12
124
Capítulo 5. La Red Madaline
125
Una Introducción al Cómputo Neuronal Artificial
Adaline 1 Adaline 3
z1 = w1,0 z3 = w3,0
y1 = y3 =
x1 + w1,1 x1 + w3,1 y1
s ig n( z1 ) s ig n( z3 )
+ w1,2 x2 + w3,2 y2
Adaline 5
z5 = w5,0
y5 =
+ w5,1 y3 y5
s ig n( z5 )
+ w5,2 y4
Adaline 2 Adaline 4
z2 = w2,0 z4 = w4,0
x2 y2 = y4 =
+ w2 ,1 x1 + w4,1 y1
s ig n( z2 ) s ig n( z4 )
+ w2,2 x2 + w4,2 y2
Figura 5.2. Una red Madaline formada por 5 neuronas que efectúa
un mapeo de vectores en 2 a vectores (escalares) en .
Supongamos que las neuronas de la red de la Figura 5.2 cuentan con los pesos
iniciales mostrados en la Tabla 5.2. Veamos que sucede cuando enviamos como entrada al
primer vector en el conjunto de entrenamiento de la Tabla 5.1: x1 = -2, x2 = 0. Para éste se
espera que la red proporcione la salida final d = 1. Como sabemos, el vector es recibido
inicialmente por las neuronas en la capa de entrada, es decir, los Adalines 1 y 2.
Determinemos sus correspondientes salidas:
• Neurona 1:
o z1 = -2(-0.23) + 0(-0.3) + 0.5 = 0.96
o y1 = sign(0.96) = 1
• Neurona 2:
o z2 = -2(-0.46) + 0(-0.26) – 0.16 = 0.76
o y2 = sign(0.76) = 1
y 1
Esto da lugar a la generación del vector 1 = . Éste ahora es enviado como entrada a
y2 1
las neuronas 3 y 4 que forman la única capa oculta:
• Neurona 3:
o z3 = 1(0.22) + 1(0.78) + 0.75 = 1.75
o y3 = sign(1.75) = 1
• Neurona 4:
o z4 = 1(-0.59) + 1(-0.28) + 0.37 = -0.5
o y4 = sign(-0.5) = -1
126
Capítulo 5. La Red Madaline
y 1
Por ultimo, el vector generado por las salidas de la capa oculta, 3 = , se envía a la
y −14
única neurona en la capa de salida:
• Neurona 5:
o z5 = 1(-0.96) + -1(0.38) + 0.76 = -0.58
o y5 = sign(-0.58) = -1
En este punto nos es claro que la red proporciona una salida diferente a la esperada. Se
deberá efectuar un ajuste de pesos de manera que para el vector de entrada [-2 0]T se
obtenga la salida d = 1.
Veamos como es que nuestra metodología procede para ajustar los pesos de la red
de la Figura 5.2 de tal forma que para la entrada [-2 0]T se obtenga la salida d = 1. En
primer lugar debemos considerar que las neuronas a ajustar serán aquellas en las capas
ocultas y de salida, y en particular, se inicia con las neuronas en la capa oculta.
Considérense las neuronas 3 y 4 de la Figura 5.2, suponemos que sus pesos son los
presentados en la Tabla 5.2. Sea S el conjunto dado por:
2
S = w j ,0 + 1 w , y
ji i : j = 3, 4 (Ecuación 5.2.1)
i=
Es decir, S se forma por los valores absolutos de las Sumatorias de Salida, sin aplicar la
función sign, de las neuronas 3 y 4. El vector que se les envía es el vector generado por la
capa de entrada una vez que ha procesado al vector de entrada en cuestión, es decir, el
vector [-2 0]T . Por lo tanto, específicamente S tendrá los siguientes valores:
Ahora bien, se seleccionará aquella neurona, de la capa oculta, cuyo valor en S sea el más
pequeño. Tenemos que, para nuestro ejemplo, se trata de la neurona 4. La idea es ajustar
primero los pesos a las neuronas cuyos valores absolutos de sus Sumatorias de Salida sean
cercanos al cero. Debido a que las Sumatorias de Salida de estas neuronas son pequeñas en
comparación con las de las neuronas restantes en la capa, también será más sencillo
modificar sus pesos. De hecho, el objetivo es que la neurona seleccionada invierta su salida.
Si la neurona proporcionó una salida 1 (-1), entonces se espera que su contribución a la
solución del problema mejore, y en particular a obtener la salida final de la red correcta, al
hacer que su salida ahora sea -1 (1). Asignemos los siguientes nuevos pesos a la neurona 4:
• w4,0 = -0.39
• w4,1 = 0.58
• w4,2 = -0.60
Veamos en primer lugar si la salida de la neurona se invierte, para ello le enviamos el
vector generado por la capa de entrada al procesar al vector en el Conjunto de
Entrenamiento [-2 0]T :
127
Una Introducción al Cómputo Neuronal Artificial
128
Capítulo 5. La Red Madaline
la red y se obtiene la correspondiente salida final. Asumamos que la salida de la red con X i
es incorrecta. Se procede a recorrer cada una de las capas de la red comenzando desde la
primer capa oculta, h = 1, hasta la capa de salida, h = m+1. Para cada Adaline j en la
h-ésima capa de la red actualmente procesada se calcula:
Ahora, sea S el conjunto de valores A( j) ordenados de manera ascendente. Procesaremos a
cada elemento de S de manera secuencial. Consideremos a la neurona Adaline asociada al
elemento A( j) de S actualmente procesado. Se modifican los pesos de la neurona de manera
que su salida se invierta. Se recalcula nuevamente la salida de la red cuando X i le es
presentado:
• Si la salida final de la red es ahora correcta entonces se fijan los nuevos pesos a la
neurona de manera definitiva, las restantes neuronas de la capa actual y las restantes
capas de la red ya no son consideradas. Se procede a presentar al siguiente vector de
entrada: X i+1.
• Si la salida de la red sigue siendo incorrecta entonces a la neurona actual le son
reasignados sus pesos originales. Se analizan las restantes neuronas de la capa actual y
de las siguientes capas de la red hasta encontrar una neurona que al invertir su salida
permita que la red proporcione la salida correcta.
• Neurona 1:
o z1 = -1(-0.23) + 0(-0.3) + 0.5 = 0.73
o y1 = sign(0.73) = 1
• Neurona 2:
o z2 = -1(-0.46) + 0(-0.26) – 0.16 = 0.3
o y2 = sign(0.3) = 1
129
Una Introducción al Cómputo Neuronal Artificial
Consideremos en primer lugar a la función ¬ x1 ∧ ¬ x2 ∧ x3. Por la forma en la que
fue construida sabemos que el único estado con el cual proporciona la salida 1 es (-1, -1, 1).
En la Figura 5.9.a se presentan los estados de esta función caracterizados de manera que
un estado negro es un estado con salida -1 y un estado blanco (el único) es de salida 1. Esta
función es claramente linealmente separable. Requerimos un plano que separe al estado
(-1, -1, 1) de los restantes. Para ello determinaremos la ecuación del plano usando los tres
puntos no colineales (-1, -1, 0), (0, -1, 1) y (-1, 0, 1). Estos puntos, también en la Figura
5.9.a, forman un triángulo, presentado en gris, inmerso en el plano considerado. La
ecuación, por elementos bien conocidos de Álgebra Lineal, se obtiene al resolver el
siguiente determinante:
x1 x2 x3 1
−1 −1 0 1
=0
0 −1 1 1
−1 0 1 1
⇔ − x1 − x2 + x3 − 2 = 0 (Ecuación 5.3.10)
Verifiquemos si el plano está bien orientado. Al sustituir el estado (-1, -1, 1) en el lado
izquierdo de la Ecuación 5.3.10 tenemos que
Por lo tanto el vector normal del plano apunta en dirección del estado (-1, -1, 1) lo cual
indica que se cuenta con la orientación correcta. Recordemos que la orientación es
importante ya que el valor proporcionado por Z 1( x1, x2, x3) = − x1 − x2 + x3 − 2 será después
sometido a la función sign, de manera que se busca que la neurona proporcione valores tal
y como se presentan en la tabla de verdad de la función que se está modelando. Tenemos
entonces que los pesos de la neurona 1, que representa a la función ¬ x1 ∧ ¬ x2 ∧ x3, están
dados por: w1,1 = -1, w1,2 = -1, w1,3 = 1 y w1,0 = -2.
Para el caso de la función ¬ x1 ∧ x2 ∧ ¬ x3 se tiene que únicamente con el estado
(-1, 1, -1) ésta proporciona la salida 1. Véase la Figura 5.9.b. La función es evidentemente
linealmente separable. Se requiere un plano que separe al estado blanco (-1, 1, -1) de los
restantes estados negros. Usaremos de nueva cuenta tres puntos no colineales: (-1, 0, -1),
(0, 1, -1) y (-1, 1, 0):
144
Capítulo 5. La Red Madaline
x1 x2 x3 1
−1 0 −1 1
=0
0 1 −1 1
−1 1 0 1
⇔ x1 − x2 + x3 + 2 = 0 (Ecuación 5.3.11)
Veamos si el plano obtenido está correctamente orientado. Para ello sustituimos el lado
izquierdo de la Ecuación 5.3.11 con los valores (-1, 1, -1):
−1 −1 + ( −1) + 2 = −1 < 0
Tenemos entonces una neurona 2 tipo Adaline que modela correctamente a la función
Booleana ¬ x1 ∧ x2 ∧ ¬ x3 y cuyos pesos están dados por w2,1 = -1, w2,2 = 1, w2,3 = -1 y
w2,0 = -2.
Veamos ahora el caso de la función Booleana x1 ∧ x2 ∧ x3. La Figura 5.9.c permite
apreciar claramente que es linealmente separable. Los vértices del triángulo en gris, de la
Figura 5.9.c, muestran los puntos a utilizar para definir el plano que separará al estado
blanco (1, 1, 1) de los restantes estados negros. Los tres puntos a usar son: (0, 1, 1), (1, 1, 0)
y (1, 0, 1). Entonces tenemos:
x1 x2 1
x3
0 1 1 1
=0
1 1 0 1
1 0 1 1
⇔ − x1 − x2 − x3 + 2 = 0 (Ecuación 5.3.13)
−1 − 1 − 1 + 2 = −1 < 0
145
Una Introducción al Cómputo Neuronal Artificial
Por tanto, la neurona 3 que modela la función x1 ∧ x2 ∧ x3 tendrá por pesos: w2,1 = 1,
w2,2 = 1, w2,3 = 1 y w2,0 = -2.
y1 y2 y3 1
−1 0 −1 1
=0
−1 −1 0 1
0 −1 −1 1
⇔ y1 + y2 + y3 + 2 = 0 (Ecuación 5.3.15)
Recordemos que el estado (-1, -1, -1) es de salida -1. Por lo tanto la Ecuación 5.3.15 no
requiere modificación alguna. Tenemos que los pesos de la única neurona de salida de
nuestra red Madaline son: w2,1 = 1, w2,2 = 1, w2,3 = 1 y w2,0 = 2. En la Figura 5.10 se
presenta la red que precisamente nos permite modelar la función de la Ecuación 5.3.1.
146
Capítulo 5. La Red Madaline
x2 x2
x3 x3
(-1,1,-1) (1,1,-1) (-1,1,-1) (0,1,-1) (1,1,-1)
(-1,1,0)
(1,1,1) (1,1,1)
(-1,1,1) (-1,1,1)
(-1,0,-1)
x1 x1
(-1,0,1) (-1,-1,-1)
(1,-1,-1) (1,-1,-1)
(-1,-1,-1)
(-1,-1,0)
(-1,-1,1) (-1,-1,1)
(0,-1,1) (1,-1,1) (1,-1,1)
a) b)
x2 y2
x3 y3
(-1,1,-1) (1,1,-1) (-1,1,-1) (1,1,-1)
(1,1,0)
(1,1,1) (1,1,1)
(-1,1,1) (-1,1,1)
(0,1,1) (-1,0,-1)
x1 y1
(-1,-1,-1) (1,0,1) (-1,-1,-1)
(1,-1,-1) (1,-1,-1)
(0,-1,-1)
(-1,-1,0)
(-1,-1,1) (-1,-1,1)
(1,-1,1) (1,-1,1)
c) d)
Figura 5.9. Visualización en el espacio 3D de los estados y las salidas de las funciones Booleanas
a) ¬ x1 ∧ ¬ x2 ∧ x3, b) ¬ x1 ∧ x2 ∧ ¬ x3, c) x1 ∧ x2 ∧ x3, y d) y1 ∨ y2 ∨ y3. Los triángulos en gris están inmersos en
los planos que separan a los estados negros de los estados blancos. Sus vértices son utilizados para determinar
sus correspondientes ecuaciones y orientaciones (véase el texto para detalles).
147
Una Introducción al Cómputo Neuronal Artificial
Adaline 1
z1 = − x1 − x2 y1 =
x1
+ x3 − 2 sign( z1 )
Adaline 2 Adaline 4
Adaline 3
x3 z3 = x1 + x2
y3 =
+ x3 − 2 sign( z3 )
En esta Sección hemos descrito una serie de pasos a seguir a fin de que, en primer
lugar, una función Booleana, dada su tabla de verdad, sea descrita en términos de las
variables involucradas y los conectivos lógicos AND, OR y NOT. Posteriormente, en
segundo lugar, y basado en el hecho de que tales conectivos son linealmente separables, es
que hemos establecido una metodología para construir una red Madaline que dé solución al
problema del modelado de funciones Booleanas no linealmente separables como el XOR.
En la Sección 4.2 determinamos que una función Booleana de n variables tiene
exactamente 2n posibles estados. Un punto interesante es que si estos estados son
considerados puntos en el espacio n-Dimensional entonces es fácil apreciar que tales puntos
corresponden con los vértices de un Hipercubo n-Dimensional. Véase la Figura 5.11.
Cuando n = 1 se tienen funciones Booleanas de una variable con 2 estados: -1 y 1. Estos
dos puntos sobre la línea recta definen a un hipercubo unidimensional, es decir, un
segmento. Véase la Figura 5.11.a. Cuando n = 2 estamos considerando funciones Boolenas
de dos variables con 4 posibles estados: (-1, -1), (1, -1), (-1, 1) y (1, 1). Estos cuatro puntos
describen a un hipercubo bidimensional, o mejor dicho, un cuadrado centrado en el origen
(Figura 5.11.b). Si ahora consideramos a las funciones Booleanas de n = 3 variables
entonces tenemos que los estados corresponden a los 8 vértices de un cubo centrado en el
origen (Figura 5.11.c). Nótese que en párrafos anteriores utilizamos elementos visuales
para determinar de manera inmediata las rectas o planos requeridos para separar a los
estados con salida 1 de los estados con salida -1. O de manera equivalente, buscábamos
rectas o planos que nos permitieran particionar de manera adecuada a nuestros cuadrados o
cubos, respectivamente.
148
Capítulo 5. La Red Madaline
estados. Cuando n = 5 entonces lidiamos con una función con 5 variables y 25 = 32 estados.
El objetivo en esta instancia es encontrar un hiperplano tetradimensional inmerso en el
espacio de 5 dimensiones. La situación que claramente surge es el hecho de que el número
de estados crece de manera exponencial conforme consideramos más variables. Una
función Booleana de 10 variables cuenta con 210 = 1,024 estados que corresponden a los
vértices de un hipercubo de 10 dimensiones. Conceptualmente el problema es claro, dada
una función de n variables determinar el hiperplano (n-1)-Dimensional inmerso en n que
demuestre que la función es efectivamente linealmente separable. Es claro que el uso de
auxiliares visuales también se complica. Existen metodologías variadas para visualizar
espacios hiperdimensionales, sin embargo, debe entenderse que lo que se “ve” son
únicamente proyecciones, “sombras”, de los elementos inmersos en tales hiperespacios, por
lo que existirá pérdida de información. Ahora bien, es posible dejar a un lado la
visualización y concentrarnos en una búsqueda de hiperplanos basada en el hecho de que
los vértices de un hipercubo serán siempre particionados en dos conjuntos: los vértices que
corresponden a estados con salida 1 y los vértices que corresponden a estados con salida -1.
Esto en un momento puede original un problema de índole combinatoria. En 2 se
requieren dos puntos para definir una recta (un hiperplano unidimensional), en 3 se
requieren tres puntos para definir un plano (un hiperplano bidimensional), en 4 se
requieren cuatro puntos para determinar la ecuación de un hiperplano tridimensional. Es
claro que, en general, en n se requieren exactamente n puntos para definir un hiperplano
(n-1)-Dimensional. Considerando que en nuestro caso los puntos se tomarían de los 2 n
vértices de nuestros hipercubos, entonces tendríamos que el número de posibilidades
analizar es a lo más
2n (2n )!
= n (Ecuación 5.3.16)
n (2 − n)!n !
149
Una Introducción al Cómputo Neuronal Artificial
Procedure RosenblattRule
(Matrix E [1, …, N ][1, …, n], Array T [1, …, N ], Real α, Integer L)
// Se asignan valores aleatorios en (-1, 1) al vector de pesos.
W = new Array[1,…,n]
for j = 1 until n do
W[j] = Random( )
end-of-for
// Se lleva a efecto la t-ésima época.
for t = 1 until L do
for k = 1 until N do
// El k-ésimo vector de entrada es enviado a la neurona.
Real ent = 0
for j = 1 until n do
ent = ent + W[j] * E [k][j]
end-of-for
// Se aplica la función de activación
// y se obtiene la salida de la neurona.
Real O = g(ent)
// Se calcula el error entre la salida esperada
// y la salida de la neurona.
Real Err = T [k] – O
// Se actualiza el vector de pesos.
for j = 1 until n do
W[j] = W[j] + α * Err * E [k][j]
end-of-for
end-of-for
end-of-for
// Se retorna como salida el vector de pesos obtenido.
return W
end-of-procedure
158
Capítulo 6. Redes de Perceptrones
Teorema:
Si existe un vector de pesos W* tal que para todo vector de entrada E y su correspondiente
salida T, en el conjunto de entrenamiento, se tiene que g(W* ⋅
E) = T
entonces
para cualquier vector inicial de pesos se tiene que la regla de aprendizaje del Perceptrón
convergerá a un vector de pesos (no necesariamente W*) tal que la neurona proporcionará
la salida correcta para todo vector de entrada en el conjunto de entrenamiento. Además, la
convergencia se tendrá en un número finito de pasos.
159
Una Introducción al Cómputo Neuronal Artificial
En primer lugar asumamos que los vectores de entrada para la neurona fueron
originados por dos clases linealmente separables. Llamemos a estas clases C 1 y C 2. Sea χ1
el subconjunto de los vectores de entrada que pertenecen a la clase C 1 y sea χ2 el
subconjunto de los vectores de entrada que pertenecen a la clase C 2. Es claro que el
conjunto de entrenamiento estará dado por χ1 ∪ χ2.
Se espera que, una vez finalizado el entrenamiento, el vector de pesos W , para todo
vector de entrada E , satisfaga las siguientes dos condiciones:
• Si E ∈ C 1 entonces W ⋅ E
> 0.
• Si E ∈ C 2 entonces W ⋅ E
< 0.
Es decir, que los vectores en la clase C 1 serán aquellos hacia los cuales apunte el vector
normal del hiperplano definido por la sumatoria de salida del Perceptrón. O bien, los
vectores de entrada en C 1 estarán por encima del hiperplano, y en consecuencia, los
vectores en C 2 estarán por debajo de tal hiperplano.
Nótese que hemos establecido las propiedades que deberá cumplir el vector de
pesos W una vez finalizado el entrenamiento. Ahora se debe establecer una metodología
para su construcción. Considérese el siguiente procedimiento:
a) Sea W k el
vector de pesos que actualmente tiene la neurona.
b) Considérese al k -ésimo vector de entrada, E k, en el conjunto de entrenamiento. Si E k es
correctamente clasificado ello implica que la neurona determinó acertadamente que
E k ∈ χ1 o bien que E k ∈ χ2. Por lo tanto, se aplicará una “corrección” a W k y
se obtendrá
el vector de pesos “actualizado” W k+ 1:
b.1) W k+1 = W k
c) De lo contrario, si E k fue
clasificado de manera incorrecta por el Perceptrón, entonces el
vector de pesos W k debe ser apropiadamente corregido y se obtiene por lo tanto el
nuevo vector de pesos W k+1. Debemos manejar dos posibilidades de acuerdo al signo de
la sumatoria de salida W k⋅ E k:
c.1) E k ∈ χ2 pero W k⋅ E k > 0, lo que implica que el vector fue incorrectamente
ubicado en χ1. Entonces aplicamos la corrección:
W k+1 = W k –
E k
c.2) E k ∈ χ1 pero W k ⋅ E k < 0, lo que implica que el vector fue incorrectamente
ubicado en χ2. Entonces:
W k+1 = W k +
E k
160
Capítulo 6. Redes de Perceptrones
Asúmase, sin pérdida de generalidad, que se tiene el vector inicial de pesos W 1 = 0,
es decir, el vector cero. Es claro que para todo vector de entrada E k,
k = 1, 2, 3, …, Card (χ1), contenido precisamente en la clase χ1, se tiene que el Perceptrón,
equipado con los pesos en W 1, clasifica incorrectamente a los vectores en χ1 ya que para
todos éstos se esperaría que W 1⋅ E k > 0, lo cual evidentemente no se cumple (lo mismo
sucede con los vectores en la clase χ2). Nótese que de hecho W 1⋅ E 1 = 0, pero sabemos en
que clase E 1 debe ser ubicado. Usaremos entonces la regla de corrección W k+1 = W k + E k.
Lo que haremos es que a partir del vector de pesos inicial W 1 = 0 obtendremos, usando los
vectores de entrada en χ1, un vector W k+ 1 que permita que la neurona los clasifique
correctamente. El vector W k+ 1 se obtiene de manera iterativa:
Recordemos que se presupone la existencia del vector de pesos W* el cual garantiza
que la neurona clasificará correctamente a todos los vectores de entrada y que se asume que
las clases C 1 y C 2 son linealmente separables. Entonces, se tiene que para todo vector E k en
el conjunto de entrenamiento el vector W * efectivamente satisface las siguientes dos
condiciones:
En un problema linealmente separable tenemos que las salidas del Perceptrón deben
permitir inferir a cual de las dos clases, C 1 o C 2, pertenece un vector de entrada. Por ello
mismo, la salida de la neurona nos dice si un vector E está en χ1 ⊂ C 1 o bien si está en
χ2 ⊂ C 2. En este punto cabe hacer la aclaración de que C 1 y C 2 son particiones del espacio
n-Dimensional de tal forma que cuentan con un número infinito de elementos. C 1 es el
conjunto de todos los puntos en n que están por encima del umbral definido por la
sumatoria de salida del Perceptrón, y por otro lado, C 2 es el conjunto de todos los puntos
que están por debajo del umbral. De allí que hemos establecido, incluso en párrafos
anteriores, que χ1 ⊂ C 1 y χ2 ⊂ C 2.
161
Una Introducción al Cómputo Neuronal Artificial
Es claro que χ'2 se conforma por todos los vectores en χ2 pero con dirección opuesta. Es
entonces evidente que los vectores en χ'2 están en C 1 (los vectores en χ2 están en C 2). Esto
tiene como consecuencia que el conjunto de entrenamiento del Perceptrón puede ser
redefinido como:
χ1 ∪ χ'2
Pero ahora, con la redefinición del conjunto de entrenamiento como χ1 ∪ χ'2 tenemos
entonces que las condiciones anteriores son equivalentes a la única condición:
• W *⋅ E k >
0 si E k ∈ χ1 ∪ χ'2
Se usará al vector de pesos W * para asegurar que la regla de actualización de pesos,
efectivamente permite encontrar un vector de pesos tal que la neurona clasifique
correctamente a todos los vectores de entrada del conjunto de entrenamiento. Sea γ 1
definido como:
Es decir, γ 1 es el mínimo escalar elegido a partir de todos los productos punto entre W * y
cada vector de entrada E k en
el conjunto de entrenamiento.
Previamente se verificó que dado el vector de pesos inicial W 1 = 0 el vector W k+ 1
estaba dado por:
Al efectuar un producto punto con el vector W* en ambos lados de la Ecuación 6.2.2 se
tiene:
162
Capítulo 6. Redes de Perceptrones
Ello se debe a que cada término del lado derecho de la Ecuación 6.2.4 es mayor o igual a
γ 1. Se tienen en total k términos y en consecuencia W *⋅W k+ 1 ≥ γ 1k . Si elevamos al cuadrado
ambos lados de la desigualdad tenemos que ésta claramente se preserva:
W * ⋅W k +1 ≥ γ 1k
2
⇔ (W * ⋅W k +1 ) ≥ γ 12 k 2
Entonces:
2 2 2
W * ⋅ W k +1 ≥ (W * ⋅W k +1 ) ≥ γ 12 k 2
Nótese que el vector de pesos W * es diferente del vector cero. De lo contrario, con
cualquier vector de entrada E se tendría que W *⋅ E = 0, lo que contradice los supuestos
establecidos respecto a W * en párrafos anteriores. De la desigualdad anterior multiplicamos
1
ambos lados por 2 y obtenemos:
W *
2 γ 12 k 2
W k +1 ≥ 2
W *
163
Una Introducción al Cómputo Neuronal Artificial
Esta desigualdad nos indica que la magnitud al cuadrado del vector de pesos que se está
calculando crece con un factor k 2, donde k es el número de veces que éste ha sido
actualizado. La misma desigualdad es también una Cota Inferior. Ésta nos dice que una vez
efectuadas k actualizaciones del vector de pesos, su magnitud al cuadrado será mayor o
γ 12 k 2
igual al cociente 2 .
W *
Ahora se debe establecer una Cota Superior para el vector de pesos a fin de verificar
que los valores de sus componentes no crecen indefinidamente. De la Ecuación 6.2.2
tenemos que, dado el vector de pesos inicial W 1 = 0, el vector W k+ 1 esta dado por:
Sabemos que W k+ 1 surge de aplicar una corrección al vector de pesos W k. Ello implica que
con el vector de entrada E k se obtuvo W k E
⋅ k < 0 (recuérdese que si el vector hubiese sido
clasificado correctamente se habría obtenido W k⋅ E k >
0). Tenemos entonces que:
Recordemos que el vector W k surge de la corrección aplicada al vector de pesos W k- 1 con el
vector de entrada E k- 1. Es más, W k- 1 surge de actualizar al vector W k -2 con el vector de
entrada E k- 2, y así sucesivamente hasta llegar a la actualización del vector de pesos inicial
164
Capítulo 6. Redes de Perceptrones
W 1 usando el vector de entrada E 1. Tomando esto en cuenta, desarrollemos el lado derecho
de la desigualdad anterior:
2 2
Wk + E k
2 2
= Wk −1 + Ek −1 + Ek (Wk = Wk −1 + Ek −1 )
2 2 2
= Wk −1 + 2Wk −1 ⋅ Ek −1 + Ek −1 + Ek
2 2 2
= Wk − 2 + Ek − 2 + 2Wk −1 ⋅ Ek −1 + Ek −1 + Ek (Wk −1 = Wk −2 + Ek −2 )
2 2 2 2
= Wk − 2 + 2Wk − 2 ⋅ Ek −2 + Ek −2 + 2Wk −1 ⋅ Ek −1 + Ek −1 + Ek
=
2
= W2 + E 2 + ... +
2 2 2 2
Wk − 2 + 2Wk − 2 ⋅ Ek −2 + Ek −2 + 2Wk −1 ⋅ Ek −1 + E
k −1 + Ek (W3 = W2 + E 2 )
2 2
= W2 + 2W2 ⋅ E2 + E2 + ... +
2 2 2 2
Wk − 2 + 2Wk − 2 ⋅ Ek −2 + Ek −2 + 2Wk −1 ⋅ Ek −1 + Ek −1 + Ek
2 2
= W1 + E1 + 2W2 ⋅ E2 + E2 + ... +
2 2 2 2
Wk − 2 + 2Wk − 2 ⋅ Ek −2 + Ek −2 + 2Wk −1 ⋅ Ek −1 + Ek −1 + Ek (W
2 = W1 + E1 )
2 2 2
= W1 + 2W1 ⋅ E1 + E1 + 2W2 ⋅ E2 + E 2 + ... +
2 2 2 2
W k − 2 + 2Wk − 2 ⋅ Ek − 2 + E k −2 + 2Wk −1 ⋅ Ek −1 + Ek −1 + Ek
k −1 k
2
= W1 + 2W j ⋅ E j + E j
2
j =1 j =1
k −1 k
2
= 2W j ⋅ E j + E j (Dado que W1 = 0)
j =1 j =1
Concretizando:
k −1 k
2
= 2W j ⋅ E j + E j
2 2
Wk + Ek (Ecuación 6.2.7)
j =1 j =1
Ahora bien, supongamos que para todo vector de pesos W j, j = 1, …, k , se obtuvo que éste
clasificaba incorrectamente al vector E j, es decir, en su momento se detectó que W j⋅ E j < 0
(si el vector hubiese sido clasificado correctamente se habría obtenido W j⋅ E j > 0). Ello
165
Una Introducción al Cómputo Neuronal Artificial
implica por un lado que tuvo que aplicarse una corrección a W j a fin de obtener su versión
actualizada W j+1. Pero por otro lado tenemos que entonces en la Ecuación 6.2.7 la suma
k −1
1 2W
j =
j ⋅ E j
k −1 k
2
≤ 2W j ⋅ E j + E j
2
⇔ Wk +1
j =1 j =1
Ahora bien, incorporando la observación de que W j⋅ E j < 0 para j = 1, 2, …, k , entonces
podemos establecer:
k −1 k k
2 2
2W j ⋅ E j + E j 1 E
2
Wk +1 ≤ ≤ j
j =1 j =1 j=
Es decir, γ 2 es la mayor magnitud al cuadrado presente en los vectores de entrada del
conjunto de entrenamiento.
166
Capítulo 6. Redes de Perceptrones
Tenemos entonces que la magnitud al cuadrado del vector de pesos W k+ 1 crece linealmente
2
con el número de iteraciones. Y en otras palabras, tenemos que W k +1 está acotada
superiormente por el producto k γ 2 . Dado que γ 2 depende directamente de los vectores de
entrada y k es el número de iteración, entonces hemos demostrado que la magnitud del
vector de pesos no diverge y en consecuencia sus componentes tampoco divergen.
Contamos ya con una Cota Superior y una Cota Inferior para el vector de pesos del
Perceptrón en la k -ésima iteración:
k 2γ 12 2
2 ≤ Wk +1 ≤ k γ 2
W *
La Cota Inferior nos dice el valor mínimo esperado para la magnitud al cuadrado del vector
k 2γ 12
de pesos. En este caso es 2 . Mientras que la Cota Superior nos dice que el vector de
W *
pesos no crece de manera indefinida y que de hecho su magnitud al cuadrado es a lo más
k γ 2 .
2
( )
k γ 1
2
Realmente sólo se requieren unas manipulaciones simples para encontrar el valor de k :
167
Una Introducción al Cómputo Neuronal Artificial
enti = 1 w , a
j =
ji j (Ecuación 6.3.1)
Nótese que esta neurona recibe como entrada un vector de n2 componentes que se forma
precisamente por las salidas de las neuronas en la capa oculta (Véase la Figura 6.2). Por lo
tanto, cada j-ésimo peso de nuestra i-ésima neurona en consideración, w j,i, se multiplicará
por el j-ésimo componente del vector de entrada, es decir, por la salida generada por la
j-ésima neurona en la capa oculta: a j. La salida final Oi está dada por la aplicación de la
función de activación g sobre el valor ent i de la Sumatoria de Salida:
Ahora bien, suponiendo que debemos aplicar una corrección a nuestro Perceptrón, tenemos
entonces que aplicar la siguiente regla a cada uno de sus n2 pesos. Es decir, la actualización
del j-ésimo peso, w j,i, j = 1, 2, …, n2, estará dada por:
Donde:
• w j,i: j-ésimo peso de la i-ésima neurona de la capa de salida.
• α: Coeficiente de aprendizaje.
• a j: Salida de la j-ésima neurona en la capa oculta.
A ∆i, llamado el Término de Variación o Cambio de la i-ésima neurona de la Capa de
Salida, se le define de la siguiente manera:
Err i es
la diferencia entre el i-ésimo componente del vector de salida esperada y la salida
proporcionada por la i-ésima neurona en la capa de salida. Es decir:
176
Capítulo 6. Redes de Perceptrones
Por otro lado, g’ no es más que la derivada de la función de activación. Dado que g se
asume continua y diferenciable en cualquier punto, es que g’ no tendrá problemas de
indefinición y por tanto el ajuste de pesos será posible para cualquier neurona de cualquier
capa. En particular, g’ será evaluada, en el caso de las neuronas en la capa de salida, tal
como lo indica la Ecuación 6.3.4, con el valor de la Ecuación 6.3.1:
n2
g '(enti ) = g ' w j ,i a j (Ecuación 6.3.6)
j =1
Ahora procedamos a describir la manera en que los pesos de las neuronas en la capa
oculta son actualizados. Consideremos a la j-ésima neurona en la capa oculta, 1 ≤ j ≤ n2.
Véase la Figura 6.2. Ahora bien, la actualización del k -ésimo peso en la j-ésima neurona,
wk , j, de la capa oculta se da mediante la aplicación de la regla:
Donde I k es
la salida de la k -ésima neurona en la capa de entrada y α es el Coeficiente de
aprendizaje (el mismo utilizado para actualizar a las neuronas en la capa de salida).
Recordemos que, en base a lo establecido en párrafos anteriores, el valor I k no es más que el
valor del k -ésimo componente del vector de entrada X . Es decir, I k = xk (véase la Figura
6.2). El término ∆ j, denominado Término de Variación o Cambio de la j-ésima neurona
en la Capa Oculta, está dado por:
n3
Se requiere la derivada de la Función de Activación g, es decir, g’. Está será evaluada con
el valor proporcionado por la sumatoria de salida de la neurona que se está actualizado:
n1
ent j = 1 w , I
k =
k j k (Ecuación 6.3.9)
Tomando como referencia a la Figura 6.2, la sumatoria se conforma por n1 términos debido
a que cada uno de éstos es la salida que proporciona cada una de las neuronas en la capa de
entrada. Es decir, cada neurona en la capa oculta recibe un vector de entrada en n1 . Ahora
bien, en Secciones y párrafos anteriores mencionábamos que uno de los principios del
Algoritmo de Retropropagación es el de distribuir el error de la red entre todas las neuronas
que la conforman y utilizarlo para el ajuste de sus pesos. Previamente vimos como tal error
era utilizado para actualizar los pesos de las neuronas en la capa de salida ( Ecuaciones
6.3.3 a 6.3.5). Ahora debemos ver como es que el error de la red es también utilizado para
actualizar los pesos de las neuronas en la capa oculta. Es claro que para toda neurona en la
capa oculta su salida, el escalar a j, es enviado a todas las neuronas en la capa de salida
177
Una Introducción al Cómputo Neuronal Artificial
n3
1 w , ∆
i=
j i i
Dado que las Ecuaciones 6.3.4 y 6.3.8 requieren que la Función de Activación sea
continua y diferenciable en (- ∞, ∞), resulta obvio que funciones como sign (Sección 3.1)
no pueden ser consideradas. En la Sección 4.1 comentamos que por lo regular se usan las
siguientes funciones y sus correspondientes derivadas:
1 e
− z
• Función Sigmoide: g ( z) = , g '( z ) =
1 + e− z (1 + e− z ) 2
2 z
1 + Tanh( z ) e 2e2 z
• Función : g ( z) = , g '( z ) =
2 1 + e2 z (1 + e2 z )2
2 2e− z
• Función Tanh( z/2): g ( z) = −1 , g '( z ) =
1 + e− z (1 + e− z ) 2
1 − e −2 z 4e2 z
• Función Tanh( z): g (z) = , g '( z ) =
1 + e−2 z (1 + e2 z )2
178
Capítulo 6. Redes de Perceptrones
• Tres enteros n1, n2 y n3 que denotan, respectivamente, el número de neuronas en la capa
de entrada, el número de neuronas en la capa oculta y el número de neuronas en la capa
de salida.
• Una matriz W_hidden de tamaño n2 × n1. Esta matriz contiene los pesos de las neuronas
en la capa oculta. Recordemos que tal capa se forma por n2 neuronas y cada una de
estas cuenta con n1 pesos. Por ello mismo, la información referente a la j-esima neurona
está contenida en el j-ésimo renglón de la matriz.
• Una matriz W_output de tamaño n3 × n2. Contiene la información referente a las n3
neuronas que forman la capa de salida. Los n2 pesos del i-ésimo Perceptrón están
localizados precisamente en el i-ésimo renglón de esta matriz.
• Un vector X en n1 . Es el vector de entrada que se presentará a la red.
• Cada componente del vector de entrada X es enviado a su respectiva neurona en la capa
de entrada. Dado que estamos considerando el hecho de que el rol de estas neuronas es
el de simplemente propagar a X hacia la capa oculta, entonces en consecuencia
tendremos que el vector I generado por la capa de salida no es más que una copia del
vector de entrada X .
• El vector I es presentado a las neuronas en la capa oculta. Para la j-ésima neurona en
esta capa, j = 1, …, n2:
n1
• Las salidas de las neuronas en la capa oculta forman un vector a de n2 componentes.
Ahora el vector a será enviado como entrada a las neuronas en la capa de salida. Para la
i-ésima neurona en la capa de salida, i = 1, …, n3:
n2
• Las salidas de las neuronas en la capa de salida forman un vector O de n3 componentes.
Este vector es precisamente la salida final que la red proporciona.
179
Una Introducción al Cómputo Neuronal Artificial
Procedure Propagation
(Integer n1, Integer n2, Integer n3, Matrix W_hidden [1,…,n2][1,…,n1],
Matrix W_output [1,…,n3][1,…,n2], Array X [1,…,n1])
I = new Array[1,…,n1]
a = new Array[1,…,n2]
O = new Array[1,…,n3]
// Cada componente del vector de entrada es enviado a su respectiva neurona
// en la capa de entrada.
for k = 1 until n1 do
I[k] = X [k]
end-of-for
// El vector I es enviado como entrada a cada neurona en la capa oculta.
for j = 1 until n2 do
n1
Real ent_j = 0
for k = 1 until n1 do
ent_j = ent_j + W_hidden [j][k] * I[k]
end-of-for
// Se obtiene, para la j-ésima neurona en la capa oculta,
// su salida a j = g(ent j).
a[j] = g(ent_j)
end-of-for
// El vector a es enviado como entrada a cada neurona en la capa de salida.
for i = 1 until n3 do
n2
Real ent_i = 0
for j = 1 until n2 do
ent_i = ent_i + W_output [i][j] * a[j]
end-of-for
// Se obtiene, para la i-ésima neurona en la capa de salida,
// su salida Oi = g(ent i).
O[i] = g(ent_i)
end-of-for
// Se retornan como salida el vector a generado por las salidas de las neuronas
// en la capa oculta y el vector O que corresponde a la salida final de la red.
return {a, O}
end-of-procedure
180
Capítulo 6. Redes de Perceptrones
181
Capítulo 6. Redes de Perceptrones
q
n δ m
q
n m
nm
(Regla de la Cadena)
δ
δ wk
1 w km , i ⋅ am,k m
m−1 , k m , m k m =
nm
La sumatoria w
k m =1
km , i ⋅ am ,k es precisamente la Sumatoria de Salida de cada una de las
m
neuronas en la capa de salida ( Ecuación 6.4.1). De sus nm términos realmente sólo nos
ocupa aquel que se relaciona con la neurona en la última capa oculta que contiene al peso
de interés wk 1 ,k ,m . Por lo tanto, todos los términos de la sumatoria son constantes respecto
m− m
q
n m
δ
wkm , i ⋅ am , km
δ wk m−1 , km , m
q
n m
wkm ,i
δ
⋅ am ,k respecto a wk −1 ,k ,m .
m m
δ wk m−1 , km ,m
m
q
n m
q
δ
= − Erri ⋅g ' ( enti ) wk m ,i
⋅ a m, k (Por la Ecuación 6.4.1)
i =1 δ wk m−1 ,km ,m
m
q
δ
= − ∆i ⋅wk m ,i
⋅ am , k (Por la Ecuación 6.4.10)
i =1 δ wk m−1 ,km ,m
m
209
Una Introducción al Cómputo Neuronal Artificial
A rtificial
= − ∆ i wk ,i ⋅
Por la Ecuación 6.4.4,
m
i =1
n −1 haciendo = m
δ m
g wk −1 ,k ,m ⋅ am −1, k −1
δ wk −1 ,k ,m k −1 =1
m m m
m m m
q
n −1 m
= − ∆ i wk ,i g ' wk −1 ,k ,m ⋅ am −1, k −1 ⋅
m m m m
i =1 k −1 =1 m (Regla de la Cadena)
nm−1
δ
δ wk
1 w
k m−1 =
km−1 , k m , m ⋅ am −1,k m−1
m−1 , k m , m
nm−1
La Sumatoria de Salida 1 w
k m−1 =
km−1 , km , m ⋅ am −1,k m−1
corresponde a la neurona en la última capa
oculta en la cual está contenido el peso que nos interesa: wk 1 ,k , m . Ello implica que m− m
q
n −1 m
= − ∆ i wk ,i g ' wk m m−1 ,km ,m ⋅ a m −1, k −1 ⋅
m
i =1 k −1 =1 m
δ
wkm−1 , km ,m ⋅ am−1, km−1
δ wk m−1 , km , m
q
n −1 m
= − ∆ i wk ,i g ' wk m m−1 , k m , m
⋅ am −1, k −1 am −1, k
m m−1
i =1 k −1 =1 m
q
Por la Ecuación 6.4.3,
= − ∆i wk ,i g ' ( ent k m ,m
) am −1, km−1 haciendo = m
m
i =1
Resumiendo:
q
δ E
= − ∆i wk ,i g ' ( ent k ,m )a m −1, km−1 (Ecuación 6.4.12)
δ wk m−1 ,km ,m i =1
m m
∆k m ,m = ∆ i ⋅ wk ,i ⋅ g ' ( ent k , m )
m m
(Ecuación 6.4.13)
i =1
El término ∆ k ,m hace explícito el hecho de que los cambios o correcciones aplicados a las
m
210
Capítulo 6. Redes de Perceptrones
δ E
= −∆ k ,m ⋅ am −1, k −1 (Ecuación 6.4.14)
δ wk m−1 ,km ,m
m m
x2 I2 O2
a1,k1 a -1,k -1
a ,k
a +1,k +1
am,k m
xk Ik Oi
xp Ip a1,n1 a -1,n -1
a ,n
a +1,n +1
am,nm Oq
Figura 6.11. En color gris se presentan a las neuronas involucradas en la actualización del peso wk 1 ,k , . −
Las actualizaciones aplicadas sobre las neuronas en las capas ocultas +1,
+1, +2,
+2, …, m y la capa de
salida influyen sobre la actualización de wk 1 ,k , . −
Suponemos que este peso corresponde a una neurona ubicada en cualquier capa oculta
excepto la primera y la última: 1 < < m. Véase la Figura 6.11. Como en los casos
anteriores, partimos de la Ecuación 6.4.7:
δ E δ 1 q
2
= (Ti − Oi )
δ wk−1 ,k , δ wk−1 ,k , 2 i =1
211
Una Introducción al Cómputo Neuronal Artificial
A rtificial
1 (T − O )
2
neurona. Por lo tanto, tenemos que para la sumatoria i i , que considera a todas
i=
las neuronas en la capa de salida, ninguno de sus términos es constante respecto a wk −1 , k ,
,
por lo tanto éstos se preservan:
1 q δ
=
2
(Ti − Oi )
2 i =1 δ wk 1 ,k , −
q
δ
= (Ti − Oi ) (Ti − Oi ) (Regla de la Cadena)
i =1 δ wk−1 , k ,
q
δ T i es constante
= − (Ti − Oi ) Oi
i =1 δ wk−1 ,k , respecto a wk−1 ,k ,
q
n δ m
= − ( Ti − Oi ) g wk ,i ⋅ a m, k (Por la Ecuación 6.4.2)
i =1 δ wk−1 ,k , k =1 m
m m
q
n m
= − (Ti − Oi ) ⋅ g ' wk ,i ⋅ a m, k m m
⋅
i =1 k =1 m (Regla de la Cadena)
nm
δ
δ wk−1 ,k ,
w
k m =1
km , i ⋅ am ,k m
Nótese que los pesos de las neuronas en la capa de salida, wk ,i , son constantes respecto al m
peso que nos ocupa, wk 1 ,k , y además éste último forma parte de las salidas, am,k , de las
− m
q nm
δ
= − ∆i wk m ,i
am, km
i =1 k m =1 δ wk−1 ,k ,
212
Capítulo 6. Redes de Perceptrones
q nm
= − ∆i wk ,i ⋅
Por la Ecuación 6.4.4,
m
i =1 k m =1
haciendo = m
δ n −1 m
g wk −1 ,k ,m ⋅ am −1, k −1
δ wk−1 , k , k −1 =1 m
m m m
q n m n −1 m
= − ∆i wk ,i g ' wk −1 ,k ,m ⋅ am −1, k −1 ⋅
m m m m
i =1 k =1 m k −1 =1 m (Regla de la Cadena)
nm−1
δ
δ wk−1 ,k ,
w
k m−1 =1
km−1 , km , m ⋅ am −1,k m−1
q nm
= − ∆i wk ,i g ' ( ent k , m ) ⋅
Por la Ecuación 6.4.3,
m m
i =1 k m =1
nm−1 haciendo = m
δ
δ wk−1 ,k ,
w
k m−1 =1
km−1 , k m , m ⋅ am −1,k m−1
Supongamos que existe más de una capa entre la última capa oculta y la capa en donde la
neurona con el peso wk 1 ,k , reside. Por lo tanto, los pesos de todas las neuronas en la
−
última capa oculta son constantes respecto al peso en consideración wk 1 ,k , ya que no −
existen conexiones directas con la neurona que precisamente contiene a wk 1 ,k , . Pero el −
peso wk 1 ,k , está contenido en las salidas de las neuronas de la ( m-1)-ésima capa oculta. En
−
nm−1
q nm
= − ∆i wk ,i g ' ( ent k , m ) ⋅
m m
i =1 k m =1
nm−1
δ
1 w
k m−1 =
km−1 , k m , m ⋅
δ wk−1 ,k ,
am −1, km−1
nm nm−1
δ
= − ∆k m ,m 1 w k m−1 , k m , m ⋅ am−1, km−1 (Por la Ecuación 6.4.13)
km =1 k m−1 = δ wk−1 ,k ,
nm nm−1
= − ∆k ,m w k m−1 , k m , m ⋅
Por la Ecuación 6.4.4,
m
km =1 k m−1 =1
haciendo = m −1
δ n −2 m
g wk ,km −1 , m −1
⋅ am −2, k
−2
δ wk−1 ,k , k −2 =1
m
m −2 m
213
Una Introducción al Cómputo Neuronal Artificial
A rtificial
nm nm−1
= − ∆k m ,m 1 w k m−1 , k m , m ⋅
km =1 k m−1 =
n −2 m
g ' wk m−2 , k m−1 , m −1
⋅ am −2, km−2 ⋅ (Regla de la Cadena)
k −2 =1
m
nm−2
δ
δ wk−1 ,k ,
1 w
k m−2 =
km−2 , k m−1 , m −1 ⋅ am −2, k m−2
nm nm−1
nm−2 haciendo = m − 1
δ
δ wk−1 ,k ,
1 w
k m−2 =
km−2 , k m−1 , m −1 ⋅ am −2, k m−2
Los pesos de todas las neuronas en la (m-1)-ésima capa oculta son todos constantes
respecto al peso wk 1 ,k , ya que no existen conexiones directas con la neurona que
−
precisamente contiene a wk 1 , k , . Pero el peso wk 1 ,k , está contenido en las salidas de las
− −
neuronas de la (m-2)-ésima capa oculta. De nueva cuenta tenemos que todos los términos
nm−2
de la sumatoria 1 w
k m−2 =
km−2 , k m−1 , m −1 ⋅ am −2, k m−2
se
preservan:
nm nm−1
nm−2
δ
1 w
k m−2 =
km−2 , k m−1 , m −1 ⋅
δ wk−1 ,k ,
am −2, km−2
En ese punto haremos una pausa ya que conviene introducir nueva notación.
Reconsideremos al Término de Variación o Cambio asociado a la k m-ésima neurona en la
última capa oculta, presentado originalmente en la Ecuación 6.4.13:
q
∆k m ,m = ∆ i ⋅ wk ,i ⋅ g '(entk ,m )
m m
i =1
Este término representa parte de la corrección a aplicar a las neuronas en la última capa
oculta. Dado que las salidas de estas neuronas influyen sobre el error que tuvieron en su
momento las neuronas en la siguiente capa, en este caso la capa de salida, es que entonces
parte de la corrección que se les aplicó a éstas últimas también debe ser aplicada a la última
214
Capítulo 6. Redes de Perceptrones
capa oculta, de allí la presencia de los términos ∆i y wk ,i . Ahora bien, obsérvense los m
términos ∆ k m ,m , wk m−1 , km , m y g ' ( entk m−1 , m −1 ) en la última expresión que obtuvimos para la
derivada parcial de la Función de Error E respecto a wk −1 , k ,
:
nm nm−1 nm−2
δ E δ
= − ∆k ,m wkm−1 ,k m ,m ⋅ g ' ( entk m−1,m −1 ) ⋅ wk m−2 ,k m−1 ,m −1 ⋅ am −2, k m−2
δ wk−1 ,k , km =1
m
k m−1 =1 k m−2 =1 δ wk−1 ,k ,
Recordemos que en este punto estamos procesando a las neuronas que forman a la
(m-1)-ésima capa oculta. Las salidas de estas neuronas influyen en el error que en su
momento tuvieron las salidas de la siguiente capa, es decir, las salidas de las neuronas en la
m-ésima capa oculta, la última capa oculta de hecho. Las neuronas de la última capa fueron
corregidas en su momento al usar su correspondiente Término de Variación o Cambio:
∆ k ,m . Además de ∆ k ,m , debe ser claro que para corregir a las neuronas de la capa actual,
m m
capa) y de g ' ( entk 1,m−1 ) . Todos estos términos pueden ser agrupados bajo la sumatoria
m−
nm
1 ∆
k m =
km , m ⋅ wk −1 , k
m m ,m ⋅ g ' ( ent k −1 , m −1 )
m
Nótese la similitud de ésta con la sumatoria de la Ecuación 6.4.13. Así como la sumatoria
q
1 ∆ ⋅ w
i=
i km ,i ⋅ g '(ent k ,m ) se definió como el Término de Variación o Cambio ∆ k
m m ,m para la
k m-ésima neurona en la última capa oculta, ahora podemos definir a la sumatoria
nm
1 ∆
k m =
km , m ⋅ wk −1 ,k
m m ,m ⋅ g ' ( ent k −1 ,m −1 ) como el Término de Variación o Cambio ∆ k
m m−1 , m −1 para la
k m-1-ésima neurona en la penúltima capa oculta. Pero como veremos más adelante,
tendremos que definir para cada neurona en cada capa oculta su correspondiente Término
de Variación o Cambio. La buena noticia es que las expresiones que se obtienen serán
similares a las que hemos obtenido para ∆ k 1 ,m−1 y para ∆ k ,m . Por ello mismo, definiremos m− m
al Término de Variación o Cambio para la k -ésima Neurona en la - ésima Capa
n +1
215
Una Introducción al Cómputo Neuronal Artificial
El caso cuando = m ya está cubierto por la Ecuación 6.4.13. Teniendo ya a la mano esta
nueva definición, podemos proseguir con nuestra derivada parcial de la Función de Error E
respecto al peso wk 1 ,k , . Aplicaremos la Ecuación 6.4.15 cuando sea requerido:
−
nm nm−1
δ E
= − ∆k ,m w k m−1 , k m , m ⋅ g ' ( ent k −1 ,m −1 ) ⋅
δ wk−1 ,k , km =1
m
k m−1 =1
m
nm−2
δ
1 w
k m−2 =
km−2 , km−1 , m −1 ⋅
δ wk−1 ,k ,
am − 2, km−2
nm−1 nm−2
= − ∆k , m −1 w k m−2 , k m−1 , m −1 ⋅
km−1 =1
m−1
k m−2 =1 Por la Ecuación 6.4.15,
haciendo = m − 1
δ
am − 2, k m−2
δ wk−1 , k ,
nm−1 nm−2
n −3 m
g ' wk m−3 , km−2 , m − 2
⋅ am −3, k m
⋅
−3
(Regla de la Cadena)
k −3 =1
m
nm−3
δ
δ wk−1 ,k ,
1 w
k m−3 =
km−3 , k m−2 , m − 2 ⋅ am −3, k m−3
nm−1 nm−2
nm−3 haciendo = m − 2
δ
δ wk−1 , k ,
1 w
k m−3 =
km−3 , k m−2 , m − 2 ⋅ am −3, k m−3
Los pesos de todas las neuronas en la (m-2)-ésima capa oculta son todos constantes
respecto al peso wk 1 , k , ya que no existen conexiones directas con la neurona que
−
precisamente contiene a wk 1 ,k , . Pero el peso wk 1 ,k , está contenido en las salidas de las
− −
sumatoria 1 w
k m−3 =
km−3 , k m−2 , m − 2 ⋅ am −3, k m−3
se
preservan:
216
Capítulo 6. Redes de Perceptrones
nm−1 nm−2
nm−3
δ
1 w
k m−3 =
km−3 , k m−2 , m − 2
δ wk−1 ,k ,
am −3, km−3
nm−2 nm−3
=− 1 ∆
k m −2 =
k m −2 , m − 2 1 w
k m−3 =
k m−3 , k m−2 , m − 2 ⋅
Por la Ecuación 6.4.15,
haciendo = m − 2
δ
am −3, k m−3
δ wk−1 , k ,
nm−2 nm−3
nm−2 nm−3
=− 1 ∆
k m −2 =
k m −2 , m − 2 1 w
k m−3 =
k m−3 , k m−2 , m − 2 ⋅
n −4 m
g ' wk m −4 , k −3 , m − 3
k
⋅ am −4, k m
⋅
−4
(Regla de la Cadena)
k −4 =1
m
nm−4
δ
δ wk−1 ,k ,
w
k m−4 =1
km−4 , k k −3 , m − 3 ⋅ am −4, k m−4
nm−2 nm−3
=− ∆
km−2 =1
k m −2 , m − 2 w
k m−3 =1
k m−3 , k m−2 , m − 2 ⋅g ' ( entk −3 , m −3 ) ⋅
m
Por la Ecuación 6.4.3,
nm−4 haciendo = m − 3
δ
δ wk−1 ,k ,
1 w
k m−4 =
km−4 , k k −3 , m − 3 ⋅ am−4, k m−4
Los pesos de todas las neuronas en la (m-3)-ésima capa oculta son todos constantes
respecto al peso wk 1 ,k , ya que asumimos no existen conexiones directas con la neurona
−
que contiene a wk 1 , k , . Pero el peso wk 1 ,k , está contenido en las salidas de las neuronas de
− −
la (m-4)-ésima capa oculta. Tal como hemos procedido en párrafos anteriores, todos los
nm−4
términos de la sumatoria w
k m−4 =1
km−4 , k k −3 , m −3 ⋅ am −4, k m−4
se preservan:
217
Una Introducción al Cómputo Neuronal Artificial
nm−2 nm−3
=− ∆
km−2 =1
k m −2 , m − 2 w
k m−3 =1
k m−3 , k m−2 , m − 2 ⋅ g ' ( ent k −3 , m −3 ) ⋅
m
nm−4
δ
1 w
k m−4 =
km−4 , k k −3 , m − 3 ⋅
δ wk−1 , k ,
am −4, km−4
nm−3 nm−4
=− ∆
km−3 =1
km−3 , m − 3 w
k m−4 =1
k m−4 , k m−3 , m −3 ⋅
Por la Ecuación 6.4.15,
haciendo = m − 3
δ
am − 4, k m−4
δ wk−1 , k ,
En este punto de nuestro desarrollo debe ser claro que mientras la capa oculta que contiene
a la neurona en donde reside el peso wk 1 ,k , no haya sido alcanzada aún tendremos la−
alejada de la última capa oculta de la red. Por lo tanto, la secuencia de aplicaciones antes
descrita nos lleva a obtener una expresión que contiene los Términos de Variación o
Cambio asociados a la (m-4)-ésima capa oculta:
=
nm−4 nm−5
δ
=− 1 ∆
km−4 =
km−4 , m − 4 1 w
k m−5 =
k m−5 , k m−4 , m − 4 ⋅
δ wk−1 ,k ,
am −5, k m−5
=
nm−5 nm−6
δ
=− 1 ∆
km−5 =
k m −5 , m − 5 1 w
k m−6 =
km−6 , k m−5 , m −5 ⋅
δ wk−1 ,k ,
am −6, k m−6
218
Capítulo 6. Redes de Perceptrones
• Para los pesos de las neuronas en la -ésima capa oculta, 1 < < m:
• ∆ k , : al actualizar los pesos de las neuronas en las capas ocultas intermedias, 1 < < m.
Ya que, como se ha visto, éstos son requeridos para la actualización de los pesos en las
capas ocultas. Las 4 fases descritas se ejecutan por cada elemento del conjunto de
entrenamiento. A su vez, el conjunto de entrenamiento es presentado tantas veces se
requiera. Otra opción es establecer una Función de Error que permita medir el desempeño
de la red una vez que se ha efectuado una presentación del conjunto de entrenamiento y si
el error obtenido es menor o igual a un error mínimo aceptable entonces se finaliza el
entrenamiento.
225
Una Introducción al Cómputo Neuronal Artificial
• Inicializar los pesos de todas las neuronas de manera aleatoria con valores en (-1, 1).
• Repetir hasta que la red proporcione salidas con un error aceptable o bien hasta que el
número requerido de presentaciones del conjunto de entrenamiento haya sido
alcanzado:
Obtener ∆ k , .
• wk 1 , k , = wk 1 ,k , + α⋅ ∆ k , ⋅ a −1,k 1
− − −
226
Capítulo 6. Redes de Perceptrones
Sea K el número de muestras que conforman a nuestra señal. Cada muestra es de
hecho un número xn que es el valor de la señal en el momento n. Supondremos que el valor
de cualquier muestra xn tiene influencia de los valores de las muestras que le preceden y
tendrá influencia sobre los valores que le prosiguen. Sabemos que este razonamiento parte
de hecho de que los elementos de una serie de tiempo no son independientes entre sí. Por
ejemplo, el comportamiento actual de la Bolsa de Valores depende en gran medida de los
comportamientos de la misma en días previos. O bien, tenemos conocimiento que por lo
227
Una Introducción al Cómputo Neuronal Artificial
regular un sismo de gran magnitud en un día dado incide sobre la actividad sísmica en días
posteriores, de donde se tienen las llamadas Réplicas. En este sentido tenemos que las K
muestras, a fin de formar el conjunto de entrenamiento, serán usadas para formar
subsecuencias de la serie de tiempo. Tales subsecuencias serán de tamaño M ≥ 1 y cada una
dará lugar a un vector de entrada para nuestra red neuronal:
xn −1
x
n−2
xn −3
xn − M
La idea ahora es que dado un vector de entrada formado por la subsecuencia xn-M , …, xn-2,
xn-1, la Red Neuronal proporcione como salida un estimado para la muestra xn. A tal
estimado lo denotaremos por xn’. La idea, como siempre, es ajustar los pesos de la red de tal
forma que la diferencia entre xn y xn’ sea tan pequeña como sea posible.
Dado que tenemos K muestras entonces los vectores de entrada, en M , estarán
dados por:
x M xM +1 x M + 2 xK −1
x x x x
M −1 M M +1 K −2
x M − 2 , xM −1 , x M , , xK −3
x1 x2 x3 xK − M
La señal con la que trabajaremos se conforma por K = 2,000 muestras. Véase la
Figura 6.13. Dado que K = 2,000 entonces podemos formar K – M vectores de entrada. En
nuestro caso trabajaremos con M = 7. Ello implica que contaremos con 1,993 vectores de
entrada, pero nuestro conjunto de entrenamiento se conformará únicamente por los
primeros 1,000 vectores. Los restantes 993 vectores serán utilizados, una vez finalizado el
entrenamiento, como Conjunto de Evaluación. Un conjunto de evaluación es un conjunto
de vectores los cuales se “ ocultan ” a la red y que se utiliza para medir su desempeño
usando entradas que no fueron presentadas durante su entrenamiento. Para estas entradas
tenemos también identificadas las salidas esperadas. La idea es determinar la robustez de
nuestra red cuando información nueva le sea proporcionada. También sirve para establecer
si el ajuste pesos no se sesgó a favor de una simple “ memorización ” de los vectores en el
conjunto de entrenamiento. Véase entonces en la Figura 6.14 la sección de la señal que se
presentará a la red durante el entrenamiento y la sección que se utilizará para efectos de
evaluación.
228
Capítulo 6. Redes de Perceptrones
α
1.2
0.8
0.6
0.4
0.2
0 t
1 50 100 150 200 250 300 350 400 450 500
237
Una Introducción al Cómputo Neuronal Artificial
A rtificial
a1,1
x1 I1 a1,2
a2,1
x2 I2 a1,3
a2,2
x3 I3
a1,4
x4 a2,3 O1
I4
a1,5
x5 I5 a2,4
x6 a1,6
I6
a2,5
x7 I7 a1,7
a1,8
238
Capítulo 6. Redes de Perceptrones
1 1
Aprendizaje en estos dos casos fue de y , respectivamente. En la tercer presentación
2 3
(t = 3) del conjunto de entrenamiento se tuvo un error global de 0.0547. Al presentar al
conjunto por décima ocasión ( t = 10) se contó con un error 0.0496. En la presentación
t =
= 20 el error fue de 0.0488. En la presentación t =
= 50, con un Coeficiente de Aprendizaje
1
α = = ≈ 0.0196 , el error global obtenido fue de 0.0478. El error Global Final, una vez
51
efectuadas las 500 presentaciones del conjunto de entrenamiento, fue de 0.0458.
Recordemos que durante el entrenamiento, a la red le fue presentada únicamente
información referente a las primeras 1,000 muestras de 2,000 que forman la señal.
Tabla 6.1. Pesos asociados a la Red de Perceptrones de la Figura 6.16 una vez que se aplicó
el Algoritmo de Retropropagación con 500 presentaciones del conjunto de entrenamiento.
Pesos Neuronas Primer Capa Oculta
Neurona a1,1 Neurona a1,2 Neurona a1,3 Neurona a1,4
w1,1,1 = -0.4341 w1,2,1 = 0.0079 w1,3,1 = 0.8405 w1,4,1 = 0.9602
w2,1,1 = -0.2744 w2,2,1 = 0.9458 w2,3,1 = 0.5505 w2,4,1 = -0.6138
w3,1,1 = 0.5131 w3,2,1 = -0.3605 w3,3,1 = 0.8631 w3,4,1 = 0.943
w4,1,1 = -0.9535 w4,2,1 = 0.9001 w4,3,1 = -0.801 w4,4,1 = -0.2488
w5,1,1 = 0.9207 w5,2,1 = -0.5173 w5,3,1 = 0.8127 w5,4,1 = 0.8756
w6,1,1 = 0.5544 w6,2,1 = 0.7269 w6,3,1 = -0.2181 w6,4,1 = -0.6935
w7,1,1 = 0.2594 w7,2,1 = 0.9532 w7,3,1 = -0.8438 w7,4,1 = 0.6746
Neurona a1,5 Neurona a1,6 Neurona a1,7 Neurona a1,8
w1,5,1 = -0.5186 w1,6,1 = -0.5679 w1,7,1 = 0.2224 w1,8,1 = 0.1796
w2,5,1 = -0.1219 w2,6,1 = 0.7864 w2,7,1 = 0.8087 w2,8,1 = -0.771
w3,5,1 = -0.9797 w3,6,1 = 0.8 w3,7,1 = -0.5434 w3,8,1 = -0.0713
w4,5,1 = -0.8753 w4,6,1 = -0.2862 w4,7,1 = -0.7691 w4,8,1 = -0.7065
w5,5,1 = -0.7295 w5,6,1 = -0.1438 w5,7,1 = 0.8699 w5,8,1 = 0.3666
w6,5,1 = -0.7908 w6,6,1 = 0.9134 w6,7,1 = 0.0232 w6,8,1 = -0.3936
w7,5,1 = 0.42148 w7,6,1 = 0.051 w7,7,1 = -0.1974 w7,8,1 = 0.5881
239
Una Introducción al Cómputo Neuronal Artificial
A rtificial
Error
0.12
0.1
0.08
0.06
0.04
0.02
0 t
1 50 100 150 200 250 300 350 400 450 500
Figura 6.17. Evolución del Error Global de la Red de Perceptrones de la Figura 6.16
durante la aplicación del Algoritmo de Retropropagación. Se efectuaron 500 presentaciones
del conjunto de entrenamiento.
240
Capítulo 6. Redes de Perceptrones
xn
1.2
0.8
0.6
0.4
0.2
0 n
1 200 400 600 800 1000 1200 1400 1600 1800 2000
Figura 6.18. En color gris, serie de tiempo producida por la Red de Perceptrones de la Figura 6.16.
En color negro, la serie de tiempo original. La recta punteada separa las muestras que conformaron
al conjunto de entrenamiento ( n = 1, …, 1000) de las muestras que dieron lugar al conjunto
de evaluación (n = 1001, …, 2000).
241
Una Introducción al Cómputo Neuronal Artificial
A rtificial
242
Una Introducción al Cómputo Neuronal Artificial
7. Redes de Kohonen
Una Introducción al Cómputo Neuronal Artificial
244
Capítulo 7. Redes de Kohonen
245
Capítulo 7. Redes de Kohonen
Tabla 7.1. Distribución de los 100 elementos del conjunto de entrenamiento en las 10 clases obtenidas
mediante una Red de Kohonen 1D. Se muestran también las coordenadas finales de los centros
de gravedad de cada clase una vez efectuadas 100 presentaciones del conjunto de entrenamiento
(véase el texto para detalles).
Centro de Gravedad (Vector de Pesos)
Clase (Neurona) X 1 X 2 Miembros
1 0.48833 0.53633 2
2 0.42424 0.43497 3
3 0.62508 0.43863 8
4 0.56403 0.80818 10
5 0.20741 0.54386 12
6 0.60624 0.16832 12
7 0.86220 0.72777 12
8 0.17727 0.26008 13
9 0.16455 0.84476 14
10 0.91601 0.26776 14
X 2 (1,1)
(0,0) X 1
Figura 7.8. Partición de la región [0, 1] × [0, 1] inducida por los centros de gravedad
(vectores de pesos, triángulos en la figura) asociados a las 10 neuronas que conforman
a una Red de Kohonen 1D. La región ha sido subdividida en 10 clases después de 100 presentaciones
del conjunto de entrenamiento (véase el texto para detalles).
259
Una Introducción al Cómputo Neuronal Artificial
(1,1,1) (1,1,1)
X 3 X 3
(0,0,0) (0,0,0)
X 1 X 1
t = 0 (fase de inicialización de pesos) t = 2
(1,1,1) (1,1,1)
X 3 X 3
(0,0,0) (0,0,0)
X 1 X 1
t = 4 t = 6
(1,1,1) (1,1,1)
X 3 X 3
(0,0,0) (0,0,0)
X 1 X 1
t = 8 t = 10
Figura 7.9. Evolución del ajuste de pesos para una Red de Kohonen 1D en la primeras 10 presentaciones
de un conjunto de entrenamiento inmerso en un cubo unitario [0, 1] × [0, 1] × [0, 1]. Los círculos mayores
denotan las posiciones de los Centros de Gravedad (vectores de pesos) asociados a las neuronas que forman
la red (véase el texto para detalles).
260
Capítulo 7. Redes de Kohonen
(1,1,1) (1,1,1)
X 3 X 3
(0,0,0) (0,0,0)
X 1 X 1
t = 20 t = 30
(1,1,1) (1,1,1)
X 3 X 3
(0,0,0) (0,0,0)
X 1 X 1
t = 50 t = 60
(1,1,1) (1,1,1)
X 3 X 3
(0,0,0) (0,0,0)
X 1 X 1
t = 80 t = 100
Figura 7.10. Algunas fases de la evolución del ajuste de pesos para una Red de Kohonen 1D. Se mapea
un conjunto de entrenamiento inmerso en un cubo unitario [0, 1] × [0, 1] × [0, 1]. Los círculos mayores
denotan las posiciones de los Centros de Gravedad (vectores de pesos) asociados a las neuronas que forman
la red (véase el texto para detalles).
261
Capítulo 7. Redes de Kohonen
271
Una Introducción al Cómputo Neuronal Artificial
272
Capítulo 7. Redes de Kohonen
Contamos con una Red de Kohonen 1D que nos ha proporcionado una solución al
Problema de la Clasificación Automática de Imágenes. En este punto es conveniente
establecer, y como ya debe ser claro, que la clasificación es estructurada únicamente por la
Red de Kohonen durante el proceso de entrenamiento el cual es un mecanismo no
supervisado. Ello quiere decir, por un lado, que no existe un “ maestro ” u “orientador ” que
le indique a la red la existencia de un porcentaje de error o desacierto como sucede en, por
ejemplo, el Algoritmo de Retropropagación. Es la Red misma la que forma su propia
estructura de clasificación. Esta propiedad es sumamente atractiva, ya que hemos venido
mencionado que existen una gran variedad de aplicaciones en las cuales únicamente
contamos con el conjunto de vectores de entrada y nada más. Por lo tanto, modelos de
Redes No Supervisadas como el de Kohonen pueden llegar a ser muy útiles a fin de
determinar automáticamente una estructura o partición para tales conjuntos de vectores.
Pero por otro lado, debemos tomar en cuenta que la clasificación que nos proporciona una
Red de Kohonen puede llegar a ser puesta a prueba en términos de su utilidad. Las Tablas
7.4 y 7.5 nos proporcionan evidencia de una “ buena” clasificación por parte de la Red para
nuestras imágenes. Pero por lo regular, una vez que se cuenta con una clasificación, ésta es
evaluada por un experto quien decide si es útil o no o bien si ha ayudado a encontrar
patrones y propiedades que no eran visibles a simple vista. En el contexto de la aplicación
que estamos presentando, un Médico Especialista es quien debería juzgar si la clasificación
es apropiada o no. Por ejemplo, se podría requerir que la clasificación proporcione un
mecanismo para agrupar casos médicos con diagnósticos y procedimientos comunes. De
manera que cuando un nuevo caso se presente se recurra a la Red Neuronal a fin de
determinar la clase que le corresponde y utilizar a los casos miembros de esa clase, y que en
consecuencia son similares, como una guía a fin de proceder apropiadamente con el
tratamiento del paciente. Si el Médico Especialista determina que la clasificación no es
apropiada entonces es que se recurre a utilizar otros parámetros de entrenamiento: se
modifican la inicialización de pesos, el número de clases, el número de presentaciones, el
coeficiente de aprendizaje, etc. Esto con el fin de obtener una nueva clasificación y
determinar si es útil o no.
273
Una Introducción al Cómputo Neuronal Artificial
una relación directa entre los vectores de entrada y los vectores de pesos: ambos tienen el
mismo número de componentes y sus valores están en el intervalo [0, 1]. Existe una
relación uno a uno entre una imagen 2D y su correspondiente vector de entrada. Por lo
tanto, podemos pensar en que un vector de pesos es la representación de una imagen. Tal
imagen se forma poco a poco conforme el proceso de entrenamiento avanza y además
debería considerar las características que tienen en común las imágenes que se agrupan en
su correspondiente clase. Esta última aseveración tiene sustento en el hecho de que un
vector de pesos es actualizado utilizando a la imagen actualmente procesada. El punto
ahora es simplemente considerar que todo vector de pesos puede ser expresado como una
imagen en escala de grises. Visualizando todas las imágenes formadas, y asociadas a los
vectores de pesos, es que podremos apreciar que tan diferentes, o similares, son entre sí. De
esta manera podemos contar con un parámetro para inferir que tan bien distribuidos están
los pesos en el Espacio de la red. La Tabla 7.6 muestra precisamente las 20 imágenes
descritas por nuestros vectores de pesos. Mencionamos antes que la clase 20 no contaba
con miembros. Véase en la Tabla como es que su imagen correspondiente no contiene
información visual alguna. De hecho, todos sus componentes tienen valor 0.5, indicando
que durante el entrenamiento la neurona asociada nunca fue caracterizada como Ganadora.
Por otro lado, obsérvense las imágenes asociadas a los vectores de pesos para las clases 12
y 17. Este par de imágenes guardan una gran similitud con sus correspondientes imágenes
en el conjunto de entrenamiento ( Tablas 7.4 y 7.5).
Como hemos podido apreciar, las Redes de Kohonen usan como parte fundamental
de su proceso de entrenamiento y clasificación a la Distancia Euclidiana sobre el espacio
n-Dimensional. Debido a que cada uno de los vectores de pesos asociados a las clases son
precisamente vectores en n , entonces es que podemos determinar también la Distancia
Euclidiana entre cualquier par de vectores de pesos. La idea ahora es definir un Mapa de
Falso Color que representará la distribución de los vectores de pesos en el subespacio
[0,1] × [0,1] × ... × [0,1] . Es claro que la Distancia Euclidiana máxima entre dos vectores será
n
d max= n , mientras que la Distancia Euclidiana mínima será, obviamente, d min = 0. Toda
Distancia Euclidiana d entre dos vectores de pesos será asociada con una intensidad G en la
escala de grises mediante:
d
G
W
= ⋅ 255 (Ecuación 7.4.14)
d max
274
Una Introducción al Cómputo Neuronal Artificial
Referencias
Libros de Texto
• Inteligencia Artificial: Sistemas Inteligentes con C#.
Nicolás Arrioja Landa Cosio.
Gradi, 2007.
• Introduction to Algorithms.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein.
MIT Press, Segunda Edición, 2001.
• Neural Networks.
Eric Davalo y Patrick Naïm.
The Macmillan Press Ltd, 1992.
279
Una Introducción al Cómputo Neuronal Artificial
• La Mente Humana
C. Rayner
Ediciones Orbis, 1985.
• Calculus.
Michael Spivak.
Publish or Perish, Segunda Edición, 1980.
• Calculus.
James Stewart.
Brooks/Cole Publishing Company, Tercera Edición, 1995.
Artículos
280
Una Introducción al Cómputo Neuronal Artificial
281