|
VII.2. CONCEPTOS Y MECANISMOS BÁSICOS PARA EL PROCESAMIENTO EN LAS REDES CONEXIONISTAS
VII.2.1. Notación utilizada para representar los
elementos y mecanismos de las redes conexionistas
VII.2.2.
La entrada (input) total.
La regla de propagación
VII.2.3.
El estado de activación
VII.2.4.
La regla o función de activación
VII.2.4.a. Concepto y fórmula general
VII.2.4.b. Tipos de funciones de activación
VII.2.5.
La salida de las unidades.
La función de transferencia
VII.2.5.a. Concepto y fórmula general de la función de
transferencia
VII.2.5.b. Tipos de función de salida o de transferencia
VII.2.6.
Reglas de aprendizaje
VII.2.6.a. Concepto y modelos de aprendizaje
VII.2.6.b. Regla de Hebb (o regla del producto)
VII.2.6.c. Regla de Widrow-Hoff o regla delta o
regla del menor error cuadrático
VII.2.6.d. Regla Delta generalizada (o regla de
propagación hacia atrás)
VII.2.1. Notación utilizada para representar los elementos y mecanismos de
las redes conexionistas
La tarea de
cada neurona o unidad es simple: recibir las entradas de las células
vecinas y calcular un valor de salida, el cual es enviado a todas las
células restantes. Toda la información que la red recibe, almacena,
transforma y envía se expresa en términos matemáticos, en la forma de
cantidades y de fórmulas aplicadas a cantidades.
La
representación interna de la información se genera en las sinapsis o
conexiones y en la actividad de las neuronas, particularmente en las de la
capa oculta. Dado que las redes modifican sus estados a través del tiempo
como consecuencia de las distintas entradas de información, es
imprescindible también introducir en la descripción de los estados de
activación la referencia al tiempo:
1. a
cada neurona (unidad i, ui) le corresponde en cualquier
instante un valor numérico denominado valor o estado de activación
ai(t);
2. cada
unidad utiliza una función de salida, fi, que calcula la señal
de salida (“oi”, del inglés output o salida) a partir del estado de
activación que en ese momento tiene la neurona;
3. la
señal de salida se trasmite a otras unidades con las que dicha neurona está
conectada;
4. una
neurona recibe la señal de todas las unidades con las que está conectada,
pero lo hace teniendo en cuenta:
-
el peso
asociado a cada una de las conexiones, wij (del inglés “wheit”,
peso)
-
y la
intensidad o señal que se transmite por la sinapsis;
a la suma de todas las
señales ponderadas por el peso de las correspondientes conexiones se le
llama NETi
5. el
nuevo estado de activación ai(t+1) de la neurona i se calcula
mediante una función de activación Fa, teniendo en cuenta la entrada
total calculada o NET y su anterior estado de activación, ai(t)

(Tomado de "Redes neuronales artificiales", J. R. Hilera y V. J.
Martínez, Editorial Ra-ma; p. 51.)
La notación empleada
en las redes neuronales no es unánime:
-
las unidades o
neuronas se representan como “u” o como “n”
-
la función de
activación se suele representar por Fa, pero también, simplemente, por F; dado que es preciso referirse a dos funciones, la de activación y
la de transferencia, conviene utilizar una notación distinta para cada una
de ellas, por ejemplo para la función de activación la F mayúscula
(Fa) y para la de transferencia la f minúscula (fi);
-
la referencia a la
activación actual se suele representar como a(t) y la siguiente
como a(t+1); pero en la literatura sobre el tema también podemos encontrar
la referencia a la activación actual como a(t-1) y el estado de
activación siguiente como a(t) (y tanto en negrita como en caracteres
normales);
-
para distinguir la
parte de la fórmula que corresponde al nombre de las unidades de la
parte de la fórmula correspondiente a los otros elementos, se pueden
emplear varias estrategias:
-
para referirse al
peso de cada conexión se puede emplear tanto la O mayúscula como la o
minúscula, lo mismo que para el peso (W o w) y para la entrada total
en cada unidad (Net o NET O NET o net).
Volver a al índice
Una neurona
recibe señales desde múltiples neuronas por lo que es necesario calcular el
efecto global que tendrá ese conjunto de señales o inputs. El input total se
denomina NET, y para el caso de las entradas que le llega a la
neurona i en el tiempo t, NETi(t). Llamamos regla de propagación
a la fórmula que nos indica cómo calcular dicha entrada total o NET; existen
varias reglas de propagación, pero la más sencilla y habitual es la que se
representa del siguiente modo:
NETi(t+1) =
∑j
wij * oj(t)
NETi es la suma de todas las señales que llegan a la
neurona i (señales representadas como oj), ponderada cada una
de ellas por el peso de conexión asociado, (wij). Cuando una
determinada señal oj llega a la neurona i por una sinapsis
inhibidora, el peso wij asociado a dicha sinapsis será negativo, por
lo que el resultado del producto, wij*oj, aportará un elemento
negativo a la suma.

Los valores que
transmite una neurona a las neuronas con las que está conectada se
representan como “o” (oj sería el valor que transmite la
neurona j). Pongamos que los valores que transmite las neuronas de
la capa de entrada, y los pesos correspondientes a sus conexiones con la
neurona i son los siguientes:
valores: O(t)
oj: 0.5 ok: 0.3 ot: 0.5
ou: -1
pesos: (Wij)
wil: -0.5 wik: 1 wit: 0.5
wiu: -0.3
En ocasiones los pesos de todas las conexiones o
sinapsis correspondientes a una neurona se suelen representar mediante una
matriz: la matriz Wij incluiría todos los pesos de las conexiones
con la neurona i (wi1, wi2, wi3, ...wij); si un elemento de la
matriz es positivo indica que la conexión es excitatoria, si es negativo,
la conexión es inhibitoria y si es 0 no existe conexión entre neuronas; en
el caso anterior la matriz sería:
Wij = [–0.5, 1, 0.5, –0.3]
También es habitual referirse al conjunto de valores de
entrada de una unidad como el vector O(t) (de “output”, salida,
puesto que normalmente estos valores que le llegan a una unidad son la
salida que produce otra unidad). En el caso anterior, el vector de valores
que le llegan desde otras neuronas y correspondiente al instante anterior
a la modificación de la neurona i (instante que se suele
representar como (t)) sería:
O(t) = [0.5, 0.3, 0.5, -1].
Si utilizamos
la regla de propagación antes señalada, la entrada total que le llega a la
neurona i o NETi será la suma de las entradas parciales
ponderadas por los pesos correspondientes:
(0.5 x
-0.5) + (0.3 x 1) + (0.5 x 0.5) + (-1 x -0.3) = -2.5 + 0.3 + 2.5 + 0.3 =
0.6
La entrada
total se calcula para después averiguar el estado de activación que la va
a corresponder a la unidad, pero, dado que la regla de propagación citada
es muy sencilla, la función de activación que ha de calcular su activación
no se suele referir a NETi, sino simplemente al sumatorio de los productos
del peso por el valor de las entradas (Wij * Oj).
Volver a al índice
VII.2.3.
El estado de activación
La
activación (o excitación, o actividad) de una neurona es
muy importante para el procesamiento puesto que la salida que la neurona
provoca depende de ella. La activación es el grado o nivel de
excitación de una neurona, y, generalmente, cambia en función de
cuatro factores:
-
el anterior estado de
activación de la unidad;
-
las entradas que la
neurona recibe;
-
los pesos de las
conexiones por las que recibe las señales;
-
la función de
activación utilizada para calcular la activación a partir de dichas
entradas.
Se llama
ciclo a cada una de las veces que la red toma los vectores de entrada
(conjunto de valores de entrada) para realizar los cómputos
correspondientes; pues bien, dado que en cada ciclo la activación de las
neuronas puede ser distinta, es preciso caracterizar dicha activación en
cada pasada de la información o ciclo, por ello es necesario referirse al
tiempo; así, es habitual representar como Ai(t) (o también, con
minúscula, como ai(t)), el nivel de activación de la neurona i en
el tiempo t.
Lo que la red
representa en cada momento depende del conjunto o patrón de activación
de la totalidad de las unidades que la componen, por ello es conveniente
también especificar dicho patrón. Para reflejar el patrón de activación se
suele utilizar un vector de N números reales a(t), vector que
representa el estado de activación de todas las unidades de la red en el
tiempo t; en el vector, cada uno de los elementos representa la activación
de cada unidad en el tiempo t:
A(t) = (a1(t), a2(t), ..., ai(t), ...., an(t))
De este modo, cabe caracterizar el procesamiento que
realiza la red como la evolución que sufren a través del tiempo los
patrones de activación de las unidades.
Hay muchos
modelos de redes conexionistas y los valores de activación
que pueden tomar las unidades no son los mismos en todos ellos. Los
valores utilizados con más frecuencia son los siguientes:
I.
continuos
a) abiertos;
los modelos que utilizan
este tipo reciben el nombre de modelos no acotados (o modelos sin
límite): el valor de activación de una neurona i puede ser
cualquier número real;
b)
o cerrados;
los modelos que utilizan este tipo reciben el nombre de modelos acotados
(o modelos con límites): pueden tomar cualquier valor real comprendido en
un intervalo con un valor mínimo y un valor máximo, por ejemplo, el
intervalo {0,1}, o el intervalo {-1,1}, generalmente siguiendo una función
sigmoidal.
II. discretos:
estos valores se utilizan en los modelos más sencillos.
a)
los más frecuentes son los valores binarios: la neurona sólo puede
tener dos estados: activada o desactivada, estados que se suelen
identificar mediante el par de valores {0,1}, representado el 1 el estado de
activado y el 0 el estado de desactivado o en reposo, o bien {-1,+1}; o,
simplemente, {–,+}, representado el 1 (o el +) el estado de activado y el
-1 (o el –) el estado de desactivado.
b)
en otros casos son valores discretos no binarios, valores que
están entre cualquiera de un pequeño conjunto: por ejemplo, pueden estar
restringidos al conjunto de valores {-1, 0, +1}, o a un pequeño conjunto
finito de valores tales como {1, 2, 3, 4, 5, 6, 7, 8, 9}.
Naturalmente,
el comportamiento y las utilidades de las redes con distintos tipos de
valores de activación son también distintos; por ejemplo, si las entradas
responden a información analógica y no a señales discretas, entonces los
valores más adecuados son los continuos, no los discretos.
Volver a al índice
VII.2.4. La regla de activación
VII.2.4.a. Concepto y fórmula general
El estado de
activación de una unidad depende de la función de activación, que no
es otra cosa que una función matemática utilizada para calcular el
siguiente estado de activación; dicha función calcula la nueva actividad
de la unidad o neurona a partir de:
-
el anterior estado de activación
de la unidad (aunque esta cantidad no siempre se tiene en cuenta);
-
todas las entradas que recibe
dicha unidad de las otras unidades;
-
los pesos de las conexiones que
la unidad en cuestión tiene con las unidades de las que recibe las entradas.
Si tenemos la
unidad i, su actividad en el tiempo t+1 dependerá de la función de
activación (Fa) aplicada a:
-
el estado de
activación de la neurona i en el tiempo t;
-
todas las entradas
oj recibidas por la unidad i desde las neuronas j de la
capa anterior en el tiempo t;
-
los pesos de conexión
wij correspondientes a las distintas sinapsis por los que cada señal
oj llega a la neurona i en el tiempo t.
De este modo, podemos representar la función de
activación para el cálculo del nuevo estado de activación de la unidad i en
el tiempo t+1 utilizando la siguiente notación:
ai(t+1) =
Fa [ai(t), oj(t), wij]
Dado que la
entrada total o NET correspondiente a dicha unidad es igual a la suma de
todas las entradas ponderadas por sus correspondientes pesos, la anterior
fórmula también se puede expresar del siguiente modo:
ai(t+1)
= Fa [ai(t), NETi(t)]
Como más arriba se ha indicado, la notación utilizada
no es la misma en todos los autores, así en la fórmula algunos utilizan F,
otros Fa, y para referirse al tiempo algunos utilizan la notación t y
t-1 y otros t+1 y t, pero son fórmulas equivalentes.
Como ocurría
para los valores de activación de cada neurona, existen múltiples funciones
de activación, y es el diseñador de la red quien debe establecer la que se
ha de utilizar en función de las peculiaridades de la tarea para la que se
diseña la red.
Volver a al índice
VII.
2. 4. b. Tipos de funciones de activación
Se trata de una
función muy simple que no tiene en cuenta el anterior estado de activación
de la unidad. Se puede expresar con la siguiente fórmula:
ai(t+1) =
∑j
wij oj(t)
Según esta
función de activación, el estado de activación que le corresponde a la
unidad i (ai(t+1)) tras recibir las señales desde las unidades
a las que está conectada es el resultado de sumar todas las señales
recibidas (oj), ponderadas cada una de ellas por el peso sináptico (wij)
asociado a la sinapsis por la que se transmite la señal.
Podemos
representar el conjunto de estímulos de entrada que le llegan a una unidad
desde la capa anterior como un vector, y los pesos sinápticos
correspondientes mediante una matriz; en esta circunstancia, el cálculo del
nuevo estado de activación de todas las neuronas se obtiene simplemente
mediante el producto de matrices.
En algunas
redes se incluye en la función de activación un factor que representa una
fracción del valor de activación anterior, por ejemplo:
ai(t+1) = ½ ai(t) +
∑j
wij oj(t)
Con esta
variante conseguimos que la unidad o neurona mantenga cierto estado de
activación durante varios ciclos, incluso en el caso de que las entradas
sean cero, en esta última circunstancia en cada período de tiempo su estado
de activación corresponderá a la mitad del valor de activación anterior. Con
este tipo de funciones de activación se garantiza que cada neurona no varíe
en su estado y en su respuesta demasiado bruscamente (recordamos que la
respuesta de la red depende en gran medida de los estados de activación de
las unidades que la componen).
Esta función es
algo más complicada que la anterior y se utiliza con frecuencia en las redes
conexionistas, en particular cuando cada unidad sólo puede tener dos
estados: activada o desactivada (1 ó 0, respectivamente). Se suele
representar la función tipo umbral del siguiente modo:
|
ai(t+1) =
|
1 si ∑j
wij oj(t) > umbral |
|
|
0 si ∑j
wij oj(t)
≤
umbral |
|
Estas fórmulas
quieren indicar, simplemente, que la neurona i se activará (tomará el
valor 1) si y sólo si la suma ponderada de sus entradas supera cierto
umbral, umbral que ha de ser decidido por el diseñador de la red.
Volver a al índice
VII.2.5. La salida de las
unidades. La función de transferencia
VII.2.5.a. Concepto y fórmula general de la
función de transferencia
Las unidades o
neuronas transmiten señales a otras con las que están conectadas. La
intensidad de estas señales y, por lo tanto, el grado en que influyen en las
unidades con las que están conectadas está determinado por dos factores:
Por lo tanto,
unidades con el mismo grado de activación pero distintas funciones de salida
producirán distintas señales (oi). A dicha función se le llama
habitualmente función de transferencia, y puede representarse del
siguiente modo:
oi(t+1)
= fi[ai(t+1)]
El valor de salida o respuesta de la unidad i
(representado por oi), en el tiempo t+1, será el resultado de aplicar
la función de transferencia (fi) a su estado de actividad (ai)
en el tiempo t+1.
Podemos
utilizar la notación vectorial para representar el conjunto de todos los
valores de salida en el tiempo t+1. Así, el vector O(t+1) contendrá
las salidas de todas las neuronas o unidades en el tiempo t+1:
O(t+1)
= (f1[a1(t+1)], f2[a2(t+1)],..., fi[ai(t+1)],...,
fn[an(t+1)])
VII.2.5.b. Tipos de
función de salida o de transferencia
Existen varios
tipos de funciones de transferencia. La función escalón o umbral únicamente
se utiliza cuando las salidas de la red son binarias (dos posibles valores):
la salida de una neurona se activa sólo cuando el estado de activación es
mayor o igual que cierto valor umbral. Las funciones mixta y sigmoidal son
las más apropiadas cuando queremos como salida información analógica.
Es la más
sencilla y la de menos uso. Se llama función de identidad porque la
salida correspondiente a la unidad es igual a su estado de activación.
En realidad esta función equivale a no aplicar función de salida. La fórmula
correspondiente a esta función es
fi[ai(t+1)]
= ai(t+1)
y la salida
correspondiente a dicha unidad se puede representar como
oi(t+1)
= ai(t+1)
y, en representación
gráfica:

La función de identidad
es adecuada cuando la función de activación que hemos utilizado para
calcular la activación de la unidad es de tipo umbral. En este caso la
activación de la unidad será 1 si está activa y 0 si está inactiva, y la
salida correspondiente será 1 en el primer caso y 0 en el segundo (o 1 y
-1 si hemos preferido esta notación).
O función
escalón. Su uso es más frecuente que la función identidad. Con la
función umbral la unidad envía señales de salida sólo cuando su activación
es mayor o igual que cierto valor umbral. La respuesta de salida será
binaria o discreta: sólo 1 ó 0 (o bien 1 y -1 si utilizamos esta otra
notación), y dependerá de si el valor de activación (que en este caso es
un valor continuo) supera cierto umbral.
|
oi(t+1)
= |
1 si ai(t+1)
≥
umbral
|
|
|
|
0 si ai(t+1) < umbral |
|
|
si el umbral es 0
tendríamos
|
oi(t+1)
=
|
1 si ai(t+1)
≥
0
0 si ai(t+1) < 0 |
oi(t+1)
=
|
1 si ai(t+1)
≥ 0
-1 si ai(t+1) < 0 |
| |
|
y, en representación
gráfica:
 
Si en lugar de 0 el
umbral fuese otro número, el escalón quedaría desplazado.
Con esta función, si la activación es menor que un límite inferior,
la salida es 0 (ó -1). Si la activación es mayor o igual que el límite
superior, entonces la salida es 1. Si la activación está entre los
límites, la salida es una función lineal de la activación
| |
0 si x < -C |
|
-1 si x < - C
|
|
f(x) =
|
1 si x
≥
C
x/ (2C) + ½ en otro caso
|
f(x) =
|
1 si x
≥
C
a.x en otro caso
|
y, en representación
gráfica
 
C es el límite superior
de la activación y -C el límite inferior
Son las
funciones en las que los incrementos o disminuciones de la intensidad de la
actividad de la unidad producen incrementos o disminuciones de los valores
de salida hasta llegar a unos límites de salida máxima o mínima a partir de
los cuales la salida se estabiliza y es la misma a pesar del incremento o
disminución de la intensidad de actividad de la unidad. Dicho de otro modo:
mediante las funciones de saturación conseguimos que el aumento de la
actividad de la unidad por encima de un límite no se traduzca en un
incremento de salida (y lo mismo para los valores mínimos). Las funciones de
saturación establecen límites máximos y mínimos para las salidas (por
ejemplo 1 y -1) y aunque la actividad de la unidad esté por encima de dichos
límites, la salida es siempre el valor máximo.
Hay varias
funciones de saturación, siendo la más utilizada la función sigmoide.
Es una de las funciones
de transferencia más utilizadas. Produce salidas continuas y proporcionales
al nivel de activación de la neurona dentro del rango [0,1]; sus niveles de
saturación son 0 y 1, por lo que su salida máxima será 1 y la mínima 0.
Cuando el nivel de activación supere al umbral de saturación máximo la
salida seguirá siendo 1 y cuando el nivel de activación sea inferior al
umbral de saturación mínimo la salida seguirá siendo 0.
Es similar a la anterior
pero en este caso la saturación es 1 para el valor máximo y -1 para el
mínimo.
 
Atendiendo a los tipos de
funciones que intervienen en el cómputo, las neuronas se pueden clasificar
en neuronas lineales y neuronas no lineales.
Tienen
funciones de activación y de transferencia lineales, por lo que la
composición de ambas funciones da lugar a otra función lineal. En estas
neuronas la salida oi es linealmente dependiente (es decir,
proporcional) de sus entradas Oj ponderadas cada una de ellas por el
peso asociado a las sinapsis (Wij) por las que le llega a la unidad
i las entradas señal. La respuesta de las neuronas lineales no está
acotada y puede tomar cualquier valor.
Está demostrado
que los cómputos que realizan redes con más de dos capas con unidades
lineales se pueden realizar también con redes de dos capas, con lo que se
hace superfluo construir redes de más de dos capas si las funciones
utilizadas son siempre lineales.
Las primeras
redes que aparecieron eran de este tipo y presentaban por esta característica dos grandes problemas:
1. Falta de persistencia en las respuestas:
todo cambio en las señales de entrada produce inevitablemente cambios en las
salidas; ello puede dar lugar a que cambios realmente muy pequeños en las
entradas provoquen fluctuaciones bastante grandes en la respuesta.
2.
Falta de adecuación simultánea a señales grandes y pequeñas:
si las funciones utilizadas amplifican mucho las señales de entrada,
entonces señales de entrada de pequeña intensidad no se perderán sino que
provocarán una respuesta de la neurona (señales de entrada moderada
provocarán respuestas elevadísimas). En el caso de que dichas funciones
amplifiquen poco las señales de entrada (si produce salidas moderadas ante
valores medios), entonces las señales de entrada débiles producirán señales
poco significativas.
En estas
neuronas su respuesta no es una función lineal o proporcional de sus
entradas pues o bien la función de activación o bien la de transferencia o
bien ambas son funciones no lineales. Este es el caso cuando la unidad o
neurona utiliza las funciones no lineales Umbral, Sigmoide o Hiperbólica
Tangente.
Estas neuronas
son más interesantes que las anteriores pues producen respuestas acotadas y
con ello resuelven en gran medida los problemas anteriores; por ejemplo en
el caso del uso de la función umbral, la neurona produce una salida discreta
(0 o 1 por ejemplo) con lo que no se da el problema de la fluctuación de la
respuesta. En el caso de neuronas con función sigmoide o hiperbólica
tangente las repuestas sólo varíen significativamente ante los cambios de
las entradas cuando el valor de la actividad de la neurona está a medio
camino entre los dos niveles de saturación, mientras que cuando se alcanza
los niveles de saturación pequeñas fluctuaciones en los datos de entrada no
producen cambios en la respuesta; con ello se consigue el efecto de que la
neurona no produce salidas con cambios significativos cuando las nuevas
señales de entrada no son muy diferentes de los actuales.
Volver a al índice
VII.2.6. Reglas de
aprendizaje
VII.2.6.a. Conceptos y modelos de aprendizaje
En las redes
neuronales se dice que la red aprende cuando es capaz de ofrecer ante un
determinado patrón de entrada el correspondiente patrón de salida. Esta
capacidad para emparejar adecuadamente los vectores de entrada y los
vectores de salida lo consigue la red mediante la modificación de los
patrones de interconexión. Las redes neuronales biológicas realizan estas
modificaciones mediante, al menos, los siguientes procedimientos:
1. el desarrollo de
nuevas conexiones;
2. la pérdida de las
conexiones existentes;
3. la modificación de la
fuerza de las conexiones que ya existen.
Los aspectos 1
y 2 han sido poco tratados en el marco de las redes neuronales conexionistas.
De todos modos, pueden considerarse como un caso especial de 3, puesto que
el cambio de la fuerza de conexión de cero a algún otro valor, sea positivo
o negativo, tiene un efecto similar al hecho de desarrollarse una nueva
conexión; y, a la inversa, siempre que se modifique la fuerza de conexión
situándola en cero es como si se perdiese una conexión existente. En
definitiva, el aprendizaje en las redes conexionistas consiste en la
modificación de las intensidades de las conexiones; las reglas de
aprendizaje no son otra cosa que las reglas o procedimientos para
cambiar los pesos sinápticos o pesos de las conexiones.
En la vida de
la red se suelen distinguir dos periodos o fases: durante la fase de
aprendizaje se la entrena para que modifique sus pesos sinápticos hasta
que su respuesta ante los patrones de entrada sea correcta. En la fase de
funcionamiento real o fase de ejecución la red ya es operativa y sus
pesos sinápticos no volverán a ser modificados; la red ya se puede utilizar
en la tarea para la que ha sido diseñada.
Existen varios
modelos de aprendizaje, siendo los principales el supervisado, el no
supervisado y el reforzado.
-
aprendizaje supervisado: en este modelo
existe un agente externo (supervisor o maestro) que controla el proceso de
aprendizaje de la red. La red debe relacionar dos fenómenos (X e Y) mediante
la presentación de un conjunto de ejemplos (x1, y1), (x2, y2), ..., (xn, yn).
En la formulación anterior, "X" representa las entradas e "Y" las salidas
requeridas Se llama “juego de ensayo” al conjunto formado por las
parejas anteriores, “patrón de estímulos-respuesta deseada”. En algunos casos
no hay ninguna duda en cuanto a los elementos que deben componer dicho juego
de ensayo puesto que se conocen perfectamente todos los patrones que la red
debe reconocer y sus salidas correspondientes (este ocurre, por ejemplo con
el uso del Perceptrón para el cómputo de las funciones lógicas); pero en la
mayoría de los casos esto no es así y es preciso tener mucho cuidado en la
elección del juego de ensayo y tratar de incluir en él los patrones más
representativos del problema o fenómeno que se intenta computar. El maestro
presenta a la red una entrada x y la red produce una salida oi.
Normalmente esta salida no coincide con la salida requerida, por lo que el
maestro debe calcular el error de salida, ei = e(oi, yi) y
proceder a la modificación de los pesos utilizando alguna regla de
aprendizaje con la intención de aproximar la salida obtenida a la salida
deseada. Tras esta modificación se presenta el siguiente patrón del juego de
ensayo y se procede de la misma manera. Cuando se termina con el último
patrón del juego de ensayo, se tiene que volver a empezar de nuevo pues los
pesos se han modificado y es preciso comprobar que la red responde
adecuadamente. A cada uno de los pasos completos del juego de ensayo se le
llama ciclo; dependiendo de la complejidad del problema, serán
precisos pocos o muchos ciclos para el aprendizaje. La fase de aprendizaje
termina cuando los pesos se estabilizan o convergen en unos valores
óptimos. En este caso la red consigue responder correctamente a todas las
presentaciones de los patrones estimulares del juego de ensayo. Aunque el
ideal de aprendizaje es el cien por cien de aciertos, se considera que
concluye cuando se minimizan razonablemente los errores ante el conjunto de
ejemplos presentados.
-
aprendizaje no supervisado: en este tipo de
aprendizaje no existe dicho agente externo que vaya modificando los pesos
sinápticos en función de la corrección de la salida de la red; la red no
compara su respuesta efectiva con la salida correcta puesto que no se le
especifica cuál ha de ser dicha salida correcta. Con este aprendizaje se
busca que la red se autoorganice y encuentre por sí misma
características, regularidades, correlaciones o categorías en los datos de
entrada. En el aprendizaje no supervisado es necesario presentar un mayor
número de patrones de entrada y utilizar reglas de aprendizaje distintas a
las que nos sirven para el caso anterior; además las arquitecturas de las
redes suelen ser distintas (por ejemplo muchas de ellas tienen dos capas),
destacando las redes de Kohonen y de Grossberg. El modelo que
comentamos tiene mucha importancia para los sistemas biológicos pues es
evidente que la cantidad de habilidades aprendidas con la ayuda de un
“profesor” es muy inferior a la que se aprende “espontáneamente”.
-
aprendizaje reforzado: en cierto modo es una
variante del aprendizaje supervisado pues también utiliza un supervisor que
examina las salidas del sistema; sin embargo en el aprendizaje reforzado no
se dispone de salidas deseadas precisas por lo que no es posible computar
el error para cada una de las unidades de salida; el supervisor valora el
comportamiento global de la red mediante un criterio y en función de él
modifica los pesos mediante un mecanismo de probabilidades. Para ilustrar la
diferencia entre este tipo de aprendizaje y el supervisado se suele indicar
que en el reforzado el supervisor se comporta como un crítico (que opina
sobre la respuesta de la red) y no como un maestro (que indica a la
red la respuesta concreta que debe generar), mientras que en el supervisado
el supervisor se comporta como un maestro. En el aprendizaje reforzado los
algoritmos son más complejos que en el supervisado y el tamaño de las
muestras superior. Uno de los algoritmos más conocidos para este tipo de
aprendizaje es el algoritmo asociativo con recompensa y penalización
presentado en 1985 por Barto y Anandan
Volver a al índice
VII.2.6.b. Regla de Hebb
(o regla del producto)
En La
organización de la conducta, escrito en 1949, Hebb defiende la idea de
que el aprendizaje y la memorización se basa en modificaciones de las
conexiones existentes entre las neuronas y en la creación de conexiones
nuevas; pero el cambio que le pareció más determinante para explicar el
aprendizaje y la memoria es el relativo a la modificación del potencial con
el que se transmiten las señales nerviosas entre las neuronas. Expresó esta
modificación del modo siguiente (regla de Hebb): cuando dos
neuronas tienden a estar activas o inactivas simultáneamente, la fuerza o
intensidad de sus conexiones aumenta, y disminuye en caso contrario.
Para dar cuenta
de esta modificación supuso que el incremento de la conexión se debe a un
aumento del área de unión sináptica. En la actualidad se considera que esta
explicación biológica no es adecuada puesto que se cree más bien que la
causa está en un incremento de la velocidad con que se libera el
neurotransmisor en la célula presináptica. Sin embargo, no interesa su
explicación biológica sino la formulación general antes citada, que como se
observa no se expresa en términos matemáticos precisos; por esta razón,
existen muchas interpretaciones matemáticas de la regla de Hebb. Al
aprendizaje que sigue este modelo se le llama aprendizaje tipo Hebb.
Veamos algunas de dichas interpretaciones matemáticas:
∆wij
= ai(t) * aj(t)
∆wij
= µ(ai–ai)
* (aj–aj)
∆wij
= µ
* ai(t) *
aj(t)
∆wij
= µ
* ai(t) * oj(t)
∆wij :
es el incremento que se ha de sumar o restar al peso sináptico
µ :
es la tasa de aprendizaje
ai(t)
:
es la activación de la neurona i en el tiempo t
ai :
media de los valores de activación de i
aj
:
es la activación de la neurona j
aj :
media de los valores de activación de j
oj(t)
:
es la señal que emite la neurona j en el tiempo t
Se trata de
una regla de aprendizaje no supervisado, pues no existe ninguna
información externa que nos indique si los resultados de la red son
erróneos, ni que nos ayude a decidir cómo y en qué grado modificar las
conexiones.; la regla hace simplemente que las unidades vayan influyéndose
unas a otras, y se autoconfiguran la permeabilidad sináptica de la red a
partir de las reacciones a los estímulos recibidos.
Volver a al índice
VII.2.6.c. Regla de Windrow-Hoff o regla delta
o regla del menor error cuadrático
La utilizaron
por primera vez, en 1960, B. Widrow y M. Hoff para su red
ADALINE. Se trata de una regla de aprendizaje supervisado (es preciso
presentar a la red todos los casos de pares entrada-salida que se desea que
la red aprenda, y que el maestro modifique los pesos de las conexiones para
corregir los errores en las salidas). Se denomina “regla delta” porque en
esencia el procedimiento consiste en modificar los pesos de las conexiones
(por lo tanto, favorecer el aprendizaje de la red) a partir del cálculo de
la diferencia (o delta) entre las salidas efectivas de la red y las
salidas deseadas.
El maestro
presenta a la red un vector o patrón de entrada. Si la red produce el vector
de salida deseado no realiza ningún cambio en los pesos. Si existe
discrepancia entre ambos vectores, los pesos se cambian para reducir la
diferencia. Cuando existe diferencia entre las salidas efectivas y las
deseadas la modificación afecta a todos los pesos de las neuronas que
colaboran en el error, y se modifican en proporción a su influencia en el
error. Se sigue el procedimiento citado minimizar el error y, en los mejores
casos, convertirlo en cero. En la literatura sobre el tema existen varias
formulaciones; presentamos dos de las más sencillas:
∆wij
= µ
[Ti(t+1)
– ai(t+1)]
oj(t)
∆wij
: incremento o decremento del peso sináptico
µ :
tasa de aprendizaje
Ti(t+1)
: activación deseada en la neurona i
ai(t+1)
:
activación real de la neurona i
oj(t)
: señal emitida por la neurona j y enviada a la neurona i
En esta primera
fórmula intervienen los valores de los estados de activación (el que
realmente tiene la unidad y el deseado), por lo que para averiguar si la
salida final de la red es la correcta es preciso tener en cuenta la función
de transferencia.
Otra
formulación es la siguiente:
∆wij
= µ
[Ti(t+1)
– oi(t+1)]
aj(t)
∆wij
: incremento o decremento del peso sináptico
µ :
tasa de aprendizaje
ti : es la señal deseada de la
unidad i (la unidad de salida)
oi
:
es la señal producida por la unidad i (la unidad de salida)
aj(t) :
es la activación de la unidad j (la unidad de entrada)
La expresión
entre corchetes representa el error que se comete en |