1. Funci´on de Transferencia Compet.
1. J. Solano 2. E. Tuza
Docente: Ing. Henry Paz.
Abstract—In the field of engineering, there are many areas
in which you are applying neural networks. An artificial neural
system can be simulated by programs run on conventional
computers, which is always the first step in development.
However, implemented in hardware if you want to take your
ability to massively parallel computation, thus allowing its
application in real time.
An artificial neural network is a tool designed to emulate
the way the human brain works and those by a learning process
able to establish the correct levels of activation-inhibition of
neurons. The function activation is used to limit the range of
values of the response of the neuron, having different activation
functions and the decision between one or the other depends on
the application again or problem to solve.
Index Terms—Neurona, Red Neuronal, Funci´on de activaci´on,
Compet, Entradas, Salidas
I. INTRODUCCI ´ON
L as redes neuronales artificiales constituyen un campo
multidisciplinario muy activo en el que confluyen
investigaciones procedentes de muy diferentes ´areas. Sus
caracter´ısticas de procesamiento distribuido, paralelo y
adaptativo las convierten en las herramientas indicadas para
tratar problemas en los que la informaci´on sea masiva,
distorsionada, redundante e imprecisa.
Una red neuronal artificial est´a compuesta por un gran n´umero
de elementos de procesamiento altamente interconectados
(neuronas o nodos) trabajando al mismo tiempo para la
soluci´on de problemas espec´ıficos. Estas conexiones se
asemejan a las dendritas y los axones en los sistemas
nerviosos biol´ogicos en los cuales se inspiran [2]. Los nodos
o neuronas se agrupan por capas, pudiendo distinguirse entre
capa de entrada, capas ocultas y capa de salida. Cada una
de las conexiones entre neuronas est´a asociada a un valor
denominado peso sin´aptico.
De este modo, la red admite unos valores de entrada i
x proporcionando unos valores de salida i y , en funci´on de
las conexiones existentes entre neuronas, as´ı como de los
valores finales adoptados por los pesos. El funcionamiento
interno de cada neurona se puede apreciar en la figura 1.
Las entradas xj est´an relacionadas con los pesos sin´apticos
1. J. Solano, Universidad Nacional de Loja, Loja, Ecuador, jp-
solanoc@unl.edu.ec
2. E. Tuza, Universidad Nacional de Loja, Loja, Ecuador,
eituzac@unl.edu.ec
Figura 1. Modelo de Neurona Artificial.
wj a trav´es de la regla de propagaci´on H(t). Al valor obtenido
de la regla de propagaci´on se le aplica una funci´on de
activaci´on o transferencia f dando como resultado la salida yj
correspondiente a la neurona. La regla de propagaci´on m´as
habitual suele ser una suma ponderada de las entradas y los
pesos mientras que las funciones de transferencia pueden ser
de tipo lineal, escal´on o sigmoidea entre otras.
Sobre esta arquitectura de red neuronal artificial se distinguen
dos tipos de operaci´on: el modo de aprendizaje y el modo
de ejecuci´on o de recuerdo. El modo de aprendizaje consiste
en encontrar un conjunto de pesos sin´apticos adecuado que
permita a la red neuronal realizar el tipo de procesamiento
deseado. El proceso de aprendizaje es normalmente iterativo,
actualiz´andose los pesos de la manera anterior, una y otra vez,
hasta que la red neuronal alcanza el rendimiento deseado.
Una vez que el sistema ha sido entrenado, en la mayor parte
de los modelos el aprendizaje se desconecta, los pesos y la
estructura permanecen fijos, y la red neuronal queda dispuesta
para procesar informaci´on, proporcionando una respuesta ante
un patr´on o vector de entrada. Es ´este el modo recuerdo o de
ejecuci´on.
II. ESTADO DEL ARTE.
A. Funci´on de Transferencia Compet.
Historia.
A principios de 1959 Frank Rosenblatt cre´o su simple
clasificador espontaneo, una red de aprendizaje no supervisado
basado en el Perceptr´on, el cual aprend´ıa a clasificar vectores
de entrada en dos clases con igual n´umero de t´erminos.
A finales de los a˜nos 60s y principios de los 70s Stephen
Grossberg introdujo muchas redes competitivas que usaban
inhibici´on lateral obteniendo buenos resultados. Algunos
de los comportamientos ´utiles obtenidos por ´el, fueron la
supresi´on del ruido, aumento del contraste y normalizaci´on
de vectores[1].
En 1973 Christoph Von Der Malsburg introduce la regla de
2. mapa de organizaci´on propia, que permite a la red clasificar
entradas en las cuales las neuronas que estuviesen en un
vecindario cercano a la neurona ganadora respondieran a
entradas similares. La topolog´ıa de esta red imitaba de alguna
forma las estructuras encontradas en la certeza visual de los
gatos, estudiada por David Hubel y Torten Wiesel. Su regla de
aprendizaje genero gran inter´es, pero esta utilizaba un c´alculo
no local para garantizar que los pesos fueran normalizados,
este hecho hacia este modelo biol´ogicamente poco posible.
Grossberg extendi´o el trabajo de Von Der Malsburg,
redescubriendo la regla Instar. Grossberg mostro que la regla
instar removi´o la necesidad de renormalizar los pesos, por
que los vectores de pesos aprend´ıan a reconocer vectores de
entrada normalizados, autom´aticamente se normalizan ellos
mismos [1].
El trabajo de Grossberg y Von Der Malsburg enfatiz´o la
posibilidad biol´ogica de sus redes. Otro exitoso investigador,
Tuevo Kohonen ha sido tambi´en un fuerte proponente de
las redes competitivas, sin embargo su ´enfasis ha sido en
aplicaciones para ingeniera y en descripciones de eficiencia
matem´atica de las redes.
Durante la d´ecada de los 70s Kohonen desarrollo una
versi´on simplificada de la regla Instar, inspirada tambi´en en
la red de Von Der Malsburg y Groosberg, de esta forma
encontr´o una manera muy eficiente de incorporar topolog´ıa a
una red competitiva.
Otra forma de aplicar este tipo de aprendizaje fue propuesta
por Rumelhart y Zisper en 1958, quienes utilizaban redes
multicapa dividiendo cada capa en grupos de neuronas, de
tal forma que estas dispon´ıan de conexiones inhibitorias con
otras neuronas de su mismo grupo y conexiones excitadoras
con las neuronas de las siguientes capas; en una red de este
tipo, despu´es de recibir diferentes informaciones de entrada,
cada neurona en cada grupo se especializa en la respuesta a
determinadas caracter´ısticas de los datos de entrada [1].
B. Redes Competitivas.
En las redes con aprendizaje competitivo (y cooperativo),
suele decirse que las neuronas compiten (y cooperan) unas
con otras con el fin de llevar a cabo una tarea dada.
Con este tipo de aprendizaje se pretende que cuando se
presente a la red cierta informaci´on de entrada, s´olo una de
las neuronas de salida de la red, o una por cierto grupo de
neuronas, se active (alcance su valor de respuesta m´aximo).
Por tanto las neuronas compiten para activarse quedando
finalmente una, o una por grupo, como neurona vencedora y
el resto quedan anuladas y siendo forzadas a sus valores de
respuesta m´ınimos[4].
La competici´on entre neuronas se realiza en todas las capas
Figura 2. Capa Competitiva.
de la red, existiendo en estas redes neuronas con conexiones
de autoexitaci´on (signo positivo) y conexiones de inhibici´on
(signo negativo) por parte de neuronas vecinas.
El objetivo de este aprendizaje es categorizar (clusterizar)
los datos que se introducen en la red, de esta forma las
informaciones similares son clasificadas formando parte
de la misma categor´ıa y por tanto deben activar la misma
neurona de salida. Las clases o categor´ıas deben ser creadas
por la propia red, puesto que se trata de un aprendizaje
no supervisado a trav´es de las correlaciones entre los
datos de entrada. Este tipo de redes fue desarrollado por
Rumelhart y Zipser en 1985 aunque a partir de ´el se han
diversicado sus aplicaciones y modicaciones dando lugar
a redes tan interesantes como las redes de kohonen y otras [4].
Figura 3. F´ormula de la red Competitiva.
Este es el ejemplo de red competitiva m´as simple que
podemos encontrar ya que no introduce ninguna mejora.
La funci´on de transferencia competitiva asigna una salida de
1 a la neurona cuyo vector de pesos apunte en la direcci´on
m´as cercana al vector de entrada [3].
Figura 4. Vector prototipo.
Un ejemplo de funci´on compet simple es como la siguiente:
3. Figura 5. Red Competitiva Simple.
C. Estructura General de una red Competitiva.
En las redes asociativas, se vio como la regla instar puede
aprender a responder a un cierto grupo de vectores de entrada
que est´an concentrados en una regi´on del espacio. Sup´ongase
que se tienen varias Instar agrupadas en una capa, tal como
se muestra en la figura 6, cada una de las cuales responde en
forma m´axima a un cierto grupo de vectores de entrada de
una regi´on distinta del espacio [7].
Figura 6. Instar agrupadas en una capa.
Se puede decir que esta capa de Instars clasifica cualquier
vector de entrada, porque la Instar con la mayor respuesta
para alguna entrada dada es la que identifica a la regi´on del
espacio en la cual yace el vector de entrada. En lugar de
examinar la respuesta de cada instar para determinar cual es
la mayor, la labor de clasificaci´on ser´ıa m´as f´acil si la Instar
de mayor respuesta fuera la ´unica unidad que tuviese una
salida no nula; esto se puede conseguir si las instar compiten
unas con otras por el privilegio de la activaci´on, este es el
principio de las redes competitivas.
Las neuronas de la segunda capa de la red de Hamming,
est´an en competici´on porque cada neurona se excita a s´ı
misma e inhibe a todas las otras neuronas, para simplificar la
discusi´on se definir´a una nueva funci´on de transferencia que
hace el trabajo de una capa recurrente competitiva [2].
D. Aprendizaje competitivo.
Se trata de un proceso en donde las neuronas compiten unas
con otras para levar a cabo una tarea dada, la competici´on
de neuronas se realiza en todas las capas de la red y estas
tienen conexiones recurrentes de autoexitaci´on y de inibici´on
por parte de neuronas vecinas.
Este aprendizaje, realiza la categorizaci´on de los datos
introducidos en la red, y estas clases o categor´ıas deben ser
creadas por la propia red.
Estas neuronas tienen asignados un peso total, que es la suma
de todos los pesos que tienen a su entrada.
E. Elementos b´asicos de una regla de aprendizaje competi-
tivo.
Los elementos b´asicos de una regla de aprendizaje compet-
itivo son:
• Un conjunto de neuronas (unidades de proceso) que se
activan o no en respuesta a un conjunto de patrones de
entrada (est´ımulos) y que dieren en los valores de un
conjunto de pesos sin´apticos espec´ıfico de cada neurona.
• Un l´ımite impuesto sobre la fuerza de cada neurona.
• Un mecanismo que permite competir a las neuronas para
responder a un subconjunto de entradas de tal manera que
una y s´olo una neurona por grupo se activa [5].
F. M´etodos de entrenamiento de la funci´on de transferencia
competitiva.
1) Redes Neuronales Competitivas supervisadas.
Las redes de entrenamiento supervisado han sido los
modelos de redes m´as desarrolladas desde inicios
de estos dise˜nos. Los datos para el entrenamiento
est´an constituidos por varios pares de patrones de
entrenamiento de entrada y de salida. El hecho de
conocer la salida implica que el entrenamiento se
benecia la supervisi´on de un maestro [1].
2) Redes Neuronales Competitivas no supervisadas.
Para los modelos de entrenamiento No Supervisado, el
conjunto de datos de entrenamiento consiste s´olo en los
patrones de entrada. Por lo tanto, la red es entrenada sin
el benecio de un maestro. La red aprende a adaptarse
basada en las experiencias recogidas de los patrones de
entrenamiento anteriores [1].
G. Red de Hamming.
La red de Hamming ilustrada en la figura 7 es uno de
los ejemplos m´as simples de aprendizaje competitivo, a
pesar de ello su estructura es un poco compleja ya que
emplea el concepto de capas recurrentes en su segunda capa
y aunque hoy en d´ıa en redes de aprendizaje competitivo
se ha simplificado este concepto con el uso de funciones
de activaci´on m´as sencillas, la red de haming representa
uno de los primeros avances en este tipo de aprendizaje,
convirti´endola en un modelo obligado de referencia dentro de
las redes de aprendizaje competitivo.
Las neuronas en la capa de la capa de salida de esta
4. red compiten unas con las otras para determinar la ganadora,
la cual indica el patr´on prototipo m´as representativo en
la entrada de la red, la competici´on es implementada por
inhibici´on lateral (un conjunto de conexiones negativas entre
las neuronas en la capa de salida).
Esta red consiste en dos capas; la primera capa, la cual
es una red Instar; realiza la correlaci´on entre el valor de
entrada y los vectores prototipo, la segunda capa realiza la
competici´on para determinar cu´al de los vectores prototipo
est´a m´as cercano al vector entrada [4].
Figura 7. Red de Hamming.
H. Aplicaciones de la funci´on de transferencia Compet.
• Sirve para categorizar los datos que se introducen en
la red, de esta forma las informaci´on ingresadas son
clasicadas formando parte de una misma categor´ıa y por
lo tanto deben activar la misma neurona de salida.
• Reconocimiento de im´agenes.
• Transmisi´on de se˜nales.
• Reconocimiento de patrones [1].
I. Problemas de las Redes Competitivas.
Las redes competitivas, son bastante eficientes para resolver
problemas de clasificaci´on, sin embargo presentan algunos
problemas.
El primero es la elecci´on de una ruta de aprendizaje que
permita hallar un punto de equilibrio entre velocidad de
convergencia y la estabilidad final de los vectores de peso.
Una ruta de aprendizaje cercana a cero, toma el aprendizaje
muy lento pero garantiza que cuando un vector haya
alcanzado el centro de la clase objetivo, se mantendr´a all´ı
indefinidamente.
En contraste, una ruta de aprendizaje cercana a uno genera un
aprendizaje muy r´apido, pero los vectores de peso continuar´an
oscilando a´un despu´es de que se haya alcanzado convergencia.
La indecisi´on que se presenta al escoger la ruta de
aprendizaje puede ser empleada como una ventaja si se
inicia el entrenamiento con una ruta de aprendizaje alta y se
decrementa en el transcurso del proceso de entrenamiento
cuando sea necesario, desafortunadamente esta t´ecnica no
funciona si la red necesita continuamente ser adaptada a
nuevos argumentos de los vectores de entrada (caso en que
la red se trabaja On-Line). Un ejemplo de este problema se
visualiza en la figura 8.
Figura 8. Variaci´on de la ruta de aprendizaje.
Un problema de estabilidad m´as serio, ocurre cuando las
clases est´an muy juntas; en ciertos casos, un vector de pesos
tratando de apuntar hacia una clase determinada, pude entrar
al territorio de otro vector de pesos.
En la figura 9 puede observarse con c´ırculos azules, como
dos vectores de entrada son presentados repetidas veces a la
red; el resultado, es que los vectores de pesos que representan
la clase de la mitad y de la derecha se encuentran a la derecha.
Con seguridad, se presentara el caso en que una de las
clases de la derecha ser´a clasificada por el vector de pesos
del centro.
Figura 9. Aprendizaje inestable.
Un tercer problema con redes competitivas, es que es posible
que el vector de pesos inicial de una neurona se encuentre
muy lejos de cualquiera de los vectores de entrada y por lo
tanto nunca gane la competici´on.
La consecuencia ser´a la muerte de la neurona, lo que
por supuesto no es recomendable.
Figura 10. Causa de la muerte de una neurona.
En la figura 10 el vector de peso W3 nunca ganar´a la
competici´on, sin importar cu´al sea el orden que se le
presenten los vectores de entrada. Una soluci´on a este
5. problema, consiste en adicionar una ganancia negativa a la
entrada neta de cada neurona y decrementar as´ı la ganancia
total cada vez que la neurona gane la competici´on; esto har´a
que difcilmente una neurona gane varias veces la competici´on,
a este mecanismo se llama conciencia [1].
III. LABORATORIO PR ´ACTICO DE REDES
COMPETITIVAS EN MATLAB
Para la realizaci´on del laboratorio pr´actico, se ha utilizado
el lenguaje de programaci´on MATLAB 2013b, a continuaci´on
se realizar´a una descripci´on de las principales sentencias para
crear una red competitiva, cabe aclarar que la realizaci´on de
este taller se lo realiz´o mediante interfaz gr´afica:
1) Pasos para crear una red competitiva en MatLab:
- Creamos el vector de entradas de la neurona, por
Ej.:
p = [0.1 0.8 0.1 0.9; 0.2 0.9 0.1 0.8];
- Definimos el n´umero de neuronas.
- Definimos el rango o el l´ımite por cada entrada.
Por Ej. [1 3;1 2].
- Definimos el n´umero de interacciones.
- Definimos la funci´on de entrenamiento para nuestra
red.
2) Sentencias en MatLab para crear una red Competi-
tiva.
- Creamos las interface gr´aficas ingresando el comando
guide, y se mostrar´a la siguiente pantalla.
Figura 11. Crear Interfaces en MatLab.
- Presionamos OK y nos levar´a a la siguiente interfaz, en
donde se debe elegir cada uno de los componentes que
se necesite para su aplicaci´on.
Figura 12. ´Area de trabajo.
- Una vez que se ha elegido los componentes necesarios,
al guardar el documento se nos crear´a un archivo con
extensi´on .m, el mismo que contendr´a el c´odigo de
la aplicaci´on en donde se podr´a agregar eventos a los
componentes. Otro archivo que se crea es el archivo
.fig, el mismo que contiene los componentes que se ha
creado.
Para el desarrollo de nuestra aplicaci´on nosotros hemos
desarrollado la siguiente interfaz:
Figura 13. Componentes de aplicaci´on.
- Una vez que se ha creado la interfaz nos ubicamos
en el archivo .m para agregar eventos a cada uno de
los componentes creados, el c´odigo que se agrego al
componente newff para crear las redes competitivas
feedforward es:
cadena=get(handles.txtMatriz,’String’);
entrada = strcat(’[’,cadena,’]’);
6. ventrada = str2num(entrada);
A = compet(ventrada);
r=get(handles.popFuncion,’Value’);
global t;
switch r
case 1
t =’trainbfg’;
case 2
t=’trainbr’;
case 3
t= ’traincgb’;
case 4
t =’traincgf’;
case 5
t = ’trainc’;
case 6
t = ’trainb’;
case 7
t = ’trainr’;
case 7
t = ’traingdx’;
end
net1 = newff(str2num(get(handles.txtLimites,’String’)),
str2num(get(handles.txtNeurona,’String’)), ’compet’
’compet’ ’compet’ ’compet’,t);
net1.b1;
wpinicial=net1.IW1,1;
set(handles.txtInicial,’String’,num2str(wpinicial));
net1.trainParam.epochs =
str2num(get(handles.txtInteraccion,’String’));
net1 = train(net1, ventrada);
a1 = sim(net1, ventrada);
ac1 = vec2ind(a1);
a = sim(net1, ventrada);
handles.g1=bar(handles.axes1,ventrada,’group’);
handles.g2=bar(handles.axes2,ac1);
plot(handles.axes3,ventrada,’+r’);
hold on, plot(handles.axes3,ac1, ’ob’);
wpesos= net1.IW1,1;
set(handles.txtFinal,’String’,num2str(wpesos));
- Una vez que se ha agregado el evento al componente
Newff, se ejecuta la aplicaci´on y en nuestro caso hemos
obtenido las siguientes salidas con redes feedforward.
Figura 14. Entrenamiento de la red.
7. Figura 15. Resultado feedforward.
• En caso de crear redes competitivas con el componente
newc debemos asegurarnos de ingresar un solo elemento
en el componente Num Neuronas, en caso de no ser as´ı
nos lanzar´a el siguiente error.
Figura 16. Error newc.
- Pa crear redes competitivas con el componente newc
el proceso praticamente es el mismo que newff, con la
diferencia de que aqui debemos segurarnos de ingresar
un ´unico valor en el componente NumNeuronas.
IV. CONCLUSIONES.
Luego de haber investigado sobre las redes competitivas, y
de haber realizado los laboratorios necesarios para su com-
prensi´on, se ha llegado a las siguientes conclusiones.
• Las redes neronales competitivas son de vital importancia
en procesos industriales, ya que estas son especializadas
en clasificaciones.
• Para el estudio de redes neuronales de manera general
demanda de grandes conocimientos de matemticas avan-
zadas, ya que estas se construyen en base a estas.
• Las redes competitivas son de vital importancia en apli-
caciones que demanda un reconocimeinto de patrones
exacto, de alli la importancia de su estudio.
• Las redes neuronales de manera general, son una parte
importante de la ciencia y la tecnolog´ıa moderna, ya que
estas cubren cada uno de los campos de la misma.
REFERENCES
[1] Universidad Tecnolgica de Pereira. Redes Competitivas. En Linea.
Disponible en: http://medicinaycomplejidad.org/pdf/redes/Competitivas.
pdf. Fecha de consulta: 04-05-2014
[2] Edmundo. R. Duran. C. Redes Competitivas. En
Linea. Disponible en: http://www.slideshare.net/mentelibre/
redes-neuronales-competitivas-hamming#. Fecha de consulta: 04-
05-2014
[3] Jos´e Luis Calder´on. O. Aprendizaje Competitivo y Coopera-
tivo. En Linea. Disponible en: http://www.slideshare.net/mentelibre/
redes-neuronales-aprendizaje-competitivo-cooperativo. Fecha de con-
sulta: 04-05-2014
[4] Sistemas Autoorganizativos. En Linea.
Disponible en: http://www.slideshare.net/mentelibre/
redes-neuronales-aprendizaje-competitivo-cooperativo. Fecha de
consulta: 04-05-2014
[5] El Perceptr´on. Redes neuronales Artificiales. En Linea. Disponible en:
http://disi.unal.edu.co/∼lctorress/RedNeu/LiRna004.pdf. Fecha de con-
sulta: 04-05-2014
[6] Redes competitivas. En Linea. Disponible en: http://proton.ucting.udg.
mx/posgrado/cursos/idc/neuronales2/EstructuraC.htm. Fecha de con-
sulta: 04-05-2014
[7] Introducci´on a las Redes Neuronales. En Linea. Disponible en: http:
//prof.usb.ve/mvillasa/redes/Introduccion-vl.pdf.. Fecha de consulta: 04-
05-2014
8. BIOGRAF´IA
Jhon Patricio Solano Cabrera ,estudiante de la
Carrera de Ingenier´ıa en Sistemas de la Universidad
Nacional de Loja, Conocedor de Software Libre,
desarrollo WEB (FrontEnd-BackEnd).
Provincia de Loja, Ciudad Loja - Ecuador, 2013.
Edgar Ivan Tuza Cuenca ,estudiante de la Car-
rera de Ingenier´ıa en Sistemas de la Universidad
Nacional de Loja, Conocedor de An´alisis y Dise˜no
de Sistemas, Gesti´on de Redes, Dise˜no y Gesti´on de
Base de Datos, Mantenimiento de Hardware.
Provincia de Loja, Ciudad Loja - Ecuador, 2013.