Está en la página 1de 7

INFORME DE PRÁCTICA DE LABORATORIO Versión 1.

0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2018-2

Redes Neuronales
Beltran Cobos Luis Ernesto, Pérez Ospina Juan Luis Jesús
{u1802179, u1802649}@unimilitar.edu.co
Profesor: Andrés Mauricio Castro Pescador

Resumen: Este artículo muestra cómo se entrena una red Una neurona consta de un cuerpo celular (soma) de entre 10 y
neuronal por dos métodos, el primero a partir de Toolbox con 40 80 mm, del que surge un denso árbol de ramificaciones
patrones y 10 caracteres diferentes. El segundo método se (dendritas) y una fibra tubular (axón) de entre 100 mm y un
implementa por cogido haciendo uso del algoritmo Back- metro.
Propagation el cual tiene que cumplir con un mínimo de 2 capas
y reconocer los 10 caracteres. Para ambos casos las imágenes
patrones serán tomadas por una cámara digital.

Se comparará los resultados del algoritmo Back-Propagation con


los obtenidos mediante el toolbox de redes Neuronales de
MATLAB en una interfaz gráfica (GUI).

También se muestra el modelo de redes de Kohonen con el cual se


realizará la obtención de un trayecto que une puntos aleatorios.

Palabras clave: Redes Neuronales, Toolbox, Back-Propagation, Fig. 1. Neurona Biológica


Interfaz Gráfica (GUI), Matlab.
Una neurona se puede interpretar como un procesador de
información muy simple:
I. INTRODUCCIÓN
 Canal de entrada: dendritas.
Las Redes Neuronales son un campo muy importante dentro  Procesador: soma.
de la Inteligencia Artificial. Está inspirado en el  Canal de salida: axón.
comportamiento el cerebro humano, principalmente el referido
a las neuronas y sus conexiones. Esta aplicación trata de crear Una neurona cerebral puede recibir unas 10.000 entradas y
modelos artificiales que solucionen problemas que sean enviar a su vez su salida a varios cientos de neuronas.
complejos de resolver mediante técnicas algorítmicas
convencionales. En las redes Neuronales el conocimiento se La conexión entre neuronas se llama sinapsis. No es una
incorpora mediante el aprendizaje a partir de ejemplos. Se conexión física, sino que hay unos 2 mm de separación. Son
maneja un estilo de computación Paralelo, Distribuido y conexiones unidireccionales, en la que la transmisión de la
Adaptativo. información se hace de forma eléctrica en el interior de la
neurona y de forma química entre neuronas; gracias a unas
El modelo de Kohonen es uno de los más útiles en sustancias específicas llamadas neurotransmisores.
computación neuronal, a pesar de sus limitaciones en cuanto a
la duración del proceso de aprendizaje y a la imposibilidad de No todas las neuronas son iguales, existen muchos tipos
aprender nuevos datos sin tener que repetir completamente el diferentes según el número de ramificaciones de sus dendritas,
proceso de aprendizaje con todos los patrones. la longitud del axón y otros detalles estructurales. Sin
embargo, como hemos visto, todas ellas operan con los
mismos principios básicos.” [1]
II. MARCO TEÓRICO

A. Neurona Biológica: B. Neurona Artificial:

Ramón y Cajal (1888) descubrieron la estructura celular “El modelo de Rumelhart y McClelland (1986) define un
(neurona) del sistema nervioso. Defendió la teoría de que las elemento de proceso (EP), o neurona artificial, como un
neuronas se interconectaban entre sí de forma paralela, y no dispositivo que, a partir de un conjunto de entradas, xi (i=1...n)
formando un circuito cerrado como el sistema sanguíneo. o vector x, genera una única salida y.
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2018-2

Fig. 2. Modelo Neurona Artificial

Esta neurona artificial consta de los siguientes elementos:

 Conjunto de pesos sinápticos wij: Representan la


interacción entre la neurona presináptica j y la
postsináptica i.
Fig. 3. Funciones de Activación
 Regla de propagación d(wij,xj(t)): proporciona el
potencial postsináptico, hi(t).
La función de salida suele ser la identidad. En algunos casos
es un valor umbral (la neurona no se activa hasta que su estado
 Función de activación ai(t)=f(ai(t-1), hi(t)): supera un determinado valor).” [2]
proporciona el estado de activación de la neurona en
función del estado anterior y del valor postsináptico. Con todo esto, el modelo de neurona queda bastante
simplificado:
 Función de salida Fi(t): proporciona la salida yi (t),
en función del estado de activación.

 Conjunto de entradas o vector de entradas x, de n


componentes

Las señales de entrada y salida pueden ser señales binarias


(0,1 – neuronas de McCulloch y Pitts), bipolares (-1,1),
números enteros o continuos, variables borrosas, etc.

La regla de propagación suele ser una suma ponderada del


Fig. 4. Modelo de Neurona Simplificado
producto escalar del vector de entrada y el vector de pesos:

ℎ𝑖 (𝑡) = Ʃ 𝑤𝑖𝑗 𝑥𝑗
C. RED Neuronal Artificial:
También se usa a menudo la distancia euclídea entre ambos
vectores: Una red neuronal artificial (RNA) se puede definir como un
grafo dirigido con las siguientes restricciones:
ℎ𝑖 (𝑡) = Ʃ (𝑥𝑗 . 𝑤𝑖 )2
 Los nodos se llaman elementos de proceso (EP).
Existen otro tipo de reglas menos conocidas como la distancia
de Voronoi, de Mahalanobis, etc.  Los enlaces se llaman conexiones y funcionan como
caminos unidireccionales instantáneos
La función de activación no suele tener en cuenta el estado
anterior de la neurona, sino sólo el potencial h i(t). Suele ser  Cada EP puede tener cualquier número de
una función determinista y, casi siempre, continua y monótona conexiones.
creciente. Las más comunes son la función signo (+1 si  Todas las conexiones que salgan de un EP deben
hi(t)>0, -1 en caso contrario), la función semilineal y las tener la misma señal.
funciones sigmoides:
 Los EP pueden tener memoria local.
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2018-2

 Cada EP posee una función de transferencia que, en


función de las entradas y la memoria local produce
una señal de salida y / o altera la memoria local.

 Las entradas a la RNA llegan del mundo exterior,


mientras que sus salidas son conexiones que
abandonan la RNA.
Fig. 6. Res Recurrente Monocapa

D. Arquitectura de las RNA:


E. Aprendizaje de las RNA:
“La arquitectura de una RNA es la estructura o patrón de
conexiones de la red. Es conveniente recordar que las “Es el proceso por el que una RNA actualiza los pesos (y, en
conexiones sinápticas son direccionales, es decir, la algunos casos, la arquitectura) con el propósito de que la red
información sólo se transmite en un sentido. pueda llevar a cabo de forma efectiva una tarea determinada.
Hay tres conceptos fundamentales en el aprendizaje:
En general, las neuronas suelen agruparse en unidades
estructurales llamadas capas. Dentro de una capa, las neuronas  Paradigma de aprendizaje: Información de la que
suelen ser del mismo tipo. Se pueden distinguir tres tipos de dispone la red.
capas:
 Regla de aprendizaje: Principios que gobiernan el
 De entrada: reciben datos o señales procedentes del aprendizaje.
entorno.
 Algoritmo de aprendizaje: Procedimiento numérico
 De salida: proporcionan la respuesta de la red a los de ajuste de los pesos.
estímulos de la entrada.
Existen dos paradigmas fundamentales de aprendizaje:
 Ocultas: no reciben ni suministran información al
entorno (procesamiento interno de la red).  Supervisado: La red trata de minimizar un error
entre la salida que calcula y la salida deseada
Generalmente las conexiones se realizan entre neuronas de (conocida), de modo que la salida calculada termine
distintas capas, pero puede haber conexiones intracapas siendo la deseada.
o laterales y conexiones de realimentación que siguen un
sentido contrario al de entrada-salida.” [1]  No supervisado o autoorganizado: La red conoce
un conjunto de patrones sin conocer la respuesta
deseada. Debe extraer rasgos o agrupar patrones
similares.

En cuanto a los algoritmos de aprendizaje, tenemos cuatro


tipos:

 Minimización del error: Reducción del gradiente,


retro propagación, etc. La modificación de pesos está
orientada a que el error cometido sea mínimo.

 Boltzmann: Para redes estocásticas, donde se


contemplan parámetros aleatorios.

 Hebb: Cuando el disparo de una célula activa otra, el


peso de la conexión entre ambas tiende a reforzarse
(Ley de Hebb).

Fig. 5. Red Multicapa Unidireccional  Competitivo: Sólo aprenden las neuronas que se
acercan más a la salida deseada.”[1]
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2018-2

“La versión original (LVQ) consta de dos capas con N


neuronas de entrada y M de salida. Cada una de las N
neuronas de entrada se conecta a las M de salida a través de
F. Back - Propagation:
conexiones hacia adelante (feedforward).

“Es un método de cálculo del gradiente utilizado Entre las neuronas de la capa de salida existen conexiones
en algoritmos de aprendizaje supervisado utilizados para laterales de inhibición (peso negativo) implícitas. Cada una de
entrenar redes neuronales artificiales. El método emplea un estas neuronas va a tener cierta influencia sobre sus vecinas.
ciclo propagación – adaptación de dos fases. Una vez que se
ha aplicado un patrón a la entrada de la red como estímulo, El valor que se asigne a los pesos de las
este se propaga desde la primera capa a través de las capas conexiones feedforward entre las capas de entrada y salida
siguientes de la red, hasta generar una salida. La señal de durante el proceso de aprendizaje de la red va a depender
salida se compara con la salida deseada y se calcula una señal precisamente de esta interacción lateral.
de error para cada una de las salidas.
La influencia que una neurona ejerce sobre las demás es
Las salidas de error se propagan hacia atrás, partiendo de la función de la distancia entre ellas, siendo muy pequeña
capa de salida, hacia todas las neuronas de la capa oculta que cuando están muy alejadas.” [4]
contribuyen directamente a la salida. Sin embargo, las
neuronas de la capa oculta solo reciben una fracción de la
señal total del error, basándose aproximadamente en la
contribución relativa que haya aportado cada neurona a la
salida original. Este proceso se repite, capa por capa, hasta que
todas las neuronas de la red hayan recibido una señal de error
que describa su contribución relativa al error total.

La importancia de este proceso consiste en que, a medida que


se entrena la red, las neuronas de las capas intermedias se
organizan a sí mismas de tal modo que las distintas neuronas
aprenden a reconocer distintas características del espacio total
de entrada. Después del entrenamiento, cuando se les presente
un patrón arbitrario de entrada que contenga ruido o que esté
Fig. 6. Arquitectura red LVQ Kohonen
incompleto, las neuronas de la capa oculta de la red
responderán con una salida activa si la nueva entrada contiene
un patrón que se asemeje a aquella característica que las
I. Arquitectura de Kohonen:
neuronas individuales hayan aprendido a reconocer durante su
entrenamiento.” [3]
“El funcionamiento es relativamente simple. Cuando se
presenta a la entrada una información Ek, cada una de las M
neuronas de la capa de salida la recibe a través de la
G. Mapas de Kohonen: conexión feedforward con pesos wji. También estas neuronas
reciben las correspondientes entradas debidas a las conexiones
“Es un sistema con tipo de comportamiento semejante al del laterales con el resto de las neuronas de salida y cuya
cerebro. Este es un modelo de red neuronal con capacidad para influencia dependerá de la distancia a la que se encuentren.
formar mapas de características de manera similar a como
ocurre en el cerebro. En éste hay neuronas que se organizan en Se trata de una red de tipo competitivo, ya que al presentar una
muchas zonas, de forma que las informaciones captadas del entrada Ek la red evoluciona a una situación estable en la que
entorno a través de los órganos sensoriales se representan se activa una neurona de salida, la vencedora.
internamente en forma de mapas bidimensionales.
En la fase de funcionamiento, lo que se pretende es encontrar
Este modelo tiene dos variantes, denominadas LVQ (Learning el dato aprendido más parecido al de entrada para, en
Vector Quantization) y TPM (Topology-Preserving Map). consecuencia, averiguar qué neurona se activará y sobre todo,
Ambas forman mapas topológicos para establecer en qué zona del espacio bidimensional de salida se encuentra.
características comunes entre las informaciones de entrada.”
[4] Lo que hace la red en definitiva es realizar una tarea de
clasificación, ya que la neurona de salida activada ante una
entrada representa la clase a la que pertenece dicha
información de entrada. Además, como ante otra entrada
H. Arquitectura de Kohonen: parecida se activa la misma neurona de salida, u otra cercana,
debido a la semejanza entre las clases, se garantiza que las
neuronas topológicamente próximas sean sensibles a entradas
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2018-2

físicamente similares. Por tanto, esta red es especialmente útil


para establecer relaciones entre conjuntos de datos.” [4]

J. Arquitectura de Kohonen:

“Es de tipo OFF LINE, por lo que se distingue una etapa de


aprendizaje y otra de funcionamiento. También utiliza un
aprendizaje no supervisado de tipo competitivo. Sólo una
neurona de la capa de salida se activa ante la entrada,
ajustándose los pesos de las conexiones en función de la
neurona que ha resultado vencedora.

Durante la etapa de entrenamiento, se presenta a la red un


conjunto de informaciones de entrada para que ésta establezca,
en función de la semejanza entre los datos, las diferentes
categorías (una por neurona de salida) que servirán durante la
fase de funcionamiento para realizar clasificaciones de nuevos
datos que se presenten a la red. Los valores finales de los
pesos de las conexiones entre cada neurona de la capa de
salida con las de entrada se corresponderán con los valores de
los componentes del vector de aprendizaje que consigue
activar la neurona correspondiente.

El aprendizaje no concluye después de presentarle una vez


todos los patrones de entrada, sino que habrá que repetir el
proceso varias veces para refinar el mapa topológico de salida,
de tal forma que cuantas más veces se presenten los datos,
tanto más se reducirán las zonas de neuronas que se deben
activar ante entradas parecidas, consiguiendo que la red pueda Fig. 7. Resultados red entrenada por toolbox
realizar una clasificación más selectiva.” [4]
También se requirió implementar un algoritmo de Back-
propagation para entrenar una red neuronal que reconociera
los caracteres ingresados por una cámara.
III. SIMULACIONES
Inicialmente se realiza el entrenamiento de una red neuronal Para solucionar este problema se implementó una función, que
por medio del toolbox de Matlab, para dicho objetivo, es posteriormente se aplicó en una interfaz gráfica, la cual
necesario presentarle 40 patrones distintos de 10 caracteres de retornaba las tres matrices de pesos (para una red neuronal de
modo que esta red aprenda a identificar que patrón dos capas ocultas y una de salida) usando los parámetros:
corresponde a que letra. patrones de entrenamiento, numero de neuronas en ambas
Inicialmente se eligen las letras A, B, C, F, I, K, M, O, P y S, capas ocultas, las salidas objetivo y el número máximo de
las cuales se escribieron en Word de cuatro formas distintas épocas que se realizará el entrenamiento.
(mayúsculas, minúsculas y diferentes fuentes de texto),
obteniendo de ahí imágenes las cuales se almacenan. Esta función inicialmente define un factor de aprendizaje,
posteriormente, leyendo los patrones de entrenamiento,
Posteriormente estas imágenes fueron procesadas de la obtiene el número de entradas por patrón y la cantidad de
siguiente forma: se binarizaron, se cambió su tamaño a 20x15 patrones que se ingresaron, también obtiene el número de
pixeles (de forma que cada una tiene 300 pixeles), y se salidas según la matriz de objetivos que se ingresa, acto
cambiaron los ‘0’ en estas imágenes por ‘-1’, de forma que seguido, inicializa matrices de pesos aleatorios dentro de un
2.4 −2.4
procese mejor la red neuronal. rango definido entre y , realizado esto,
𝑒𝑛𝑡𝑟𝑎𝑑𝑎𝑠 𝑒𝑛𝑡𝑟𝑎𝑑𝑎𝑠
empieza el proceso iterativo, con un ciclo for que recorre el
Finalmente, por procesos iterativos, probando diferentes número de épocas ingresado, dentro del cual otro ciclo se
configuraciones de redes neuronales se llegó a una red de dos asegura que el orden de entrenamiento sea aleatorio.
capas ocultas con 70 y 30 neuronas respectivamente
Habiendo elegido un patrón de entrenamiento, se procede a
realizar la propagación hacia delante de la salida, donde la
entrada se multiplica por las matrices de pesos, aplicando la
función tangente hiperbólica, para llegar a la salida que tendría
la red usando los pesos actuales, se calcula el error respecto a
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2018-2

la salida objetivo de este patrón de entrenamiento y se realiza El algoritmo cuenta con un proceso iterativo general con
la propagación del error hacia atrás, de forma que se calculan funciones que se actualizan por iteración causando
sensibilidades, y cambios en las matrices para actualizarlas, convergencia a una posición final de las neuronas, estas
intentando que en la siguiente actualización, la red se acerque funciones son la función de aprendizaje y la función de
más al objetivo de entrenamiento. vecindad:
𝑐
Cada vez que se recorran todos los patrones de entrenamiento, 𝜎 = 𝜎0 ∗ 𝑒 −𝑡1
se habrá completado una época, con lo cual se calcula el error 𝑑^2
de época, siendo un error cuadrático medio de todos los ℎ = 𝑒 −2∗ 𝜎^2
𝑐
errores de iteración, el cual se convertirá en un criterio de 𝜇 = 𝜇0 ∗ 𝑒 −𝑡2
parada del proceso. Que corresponden a la función gaussiana, vecindad y
aprendizaje respectivamente, donde t1 es una constante de
Se obtuvieron resultados satisfactorios con la red neuronal tiempo definida por:
implementada por el algoritmo, usando dos capas ocultas con 1000
35 y 10 neuronas respectivamente. 𝑡1 =
log 𝜎0
T2 es una constante de tiempo definida por usuario, 𝜇0 y 𝜎0
Para la implementación de la interfaz, se tuvieron botones,
Son valores iniciales, siendo sigma igual al número de
cajas de texto y sliders que permitían controlar el coeficiente
neuronas de la red.
de aprendizaje, las épocas, y las neuronas por capas, de forma
que se realizaba el entrenamiento de la red y posteriormente se
Dentro de cada iteración, el algoritmo pasa por una etapa
usaba la cámara, la interfaz contaba con dos displays que
competitiva, en la cual se elige la neurona cuyos pesos sean
mostraban la imagen de la cámara y después la imagen
más similares a la entrada (o punto) elegido, posteriormente,
procesada junto con tablas que permitían ver la clasificación
siendo esta la neurona ganadora, pasa por un proceso
de cada letra que se mostraba a la cámara:
cooperativo, donde las neuronas que dentro del vector de
pesos estén más cercanas a la ganadora, se verán
recompensadas causando que la actualización de pesos las
acerque más a el punto al que se parece la neurona ganadora.

El algoritmo según la literatura debe detenerse por un criterio


de iteraciones, donde se asegura que termino después de 1000
+ (500*neuronas) iteraciones, el implementado, también para
por un botón start stop implementado en la interfaz, o si el
cambio en el vector de pesos llega a ser menor que 1e-50:

Fig. 8. Interfaz gráfica

Finalmente se realizó la implementación del algoritmo de


mapas auto organizativos de Kohonen.
Fig. 9. Interfaz gráfica
Para el algoritmo de Kohonen se debía hallar una trayectoria
que uniese todos los puntos ingresados por el usuario,
Se observa que la interfaz gráfica cuenta con dos gráficas, una
tomando en cuenta también puntos inicial y final, que debían
en la cual se ve la posición de los puntos y pesos, en la que el
permanecer inmutados.
usuario indica los puntos por pasar, y otra interfaz donde se
presenta el error cuadrático medio de cada iteración, también
Dichos objetivos se lograron obteniendo los puntos por parte
cuenta con las cajas de texto para definir los valores
del usuario en una interfaz, ensamblándolos en lo que sería
necesarios y una slider que define cada cuanta iteración se
una matriz de entrada y obteniendo cuantos puntos fueron, ya
actualizan las gráficas, permitiendo mayor velocidad de
que se recomienda que la cantidad de neuronas de la red sea 3
computación.
veces la cantidad de puntos ingresados, cada neurona va a
tener dos pesos que corresponderá a las coordenadas ‘X’ y ‘Y’
los cuales se inicializaran aleatoriamente entre los rangos de
IV. CONCLUSIONES
los puntos existentes, dejando como valores fijos los pesos de
las neuronas inicial y final, que corresponden a los puntos
inicial y final. - Las redes neuronales pueden realizarse de más de
tres capas, sin embargo, esto siempre consistirá en
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2018-2

un sobredimensionamiento del problema, lo que


puede llevar a una memorización de los datos, más
que un aprendizaje de estos.
- Las redes neuronales pueden sufrir de sobre
entrenamiento, mientras que las redes de kohonen,
gracias a su convergencia se benefician de esto.
- Se encuentra que el proceso de actualización de
pesos en una red de tipo perceptron y una red de
kohonen son similares, sin embargo, las diferencias
en interconexiones entre neuronas y entradas
justifican por qué la red de kohonen no implementa
un back- propagtion del error para actualizar sus
pesos.
- El toolbox de entrenamiento neuronal de Matlab
realiza más procesos que simplemente realizar un
algoritmo back-propagation para asegurar el
entrenamiento de la red neuronal, causando lentitud
en el procesamiento, por lo que, para los objetivos
del presente, se halló mayor beneficio en
implementar el algoritmo, ya que permitió el
entrenamiento de la red durante la interacción
usuario interfaz, en lugar de tener que entrenarla
con anterioridad para usarla.

V. REFERENCIAS

[1] http://avellano.fis.usal.es/~lalonso/RNA/index.htm
[2]Inteligencia%20Artificial/Teoria/Segundo%20Corte/Lab%202.1%20-
%20Identificaci%C3%B3n%20de%20caracteres.pdf
[3]https://elvex.ugr.es/decsai/computational-
intelligence/slides/N2%20Backpropagation.pdf
[4] http://thales.cica.es/rd/Recursos/rd98/TecInfo/07/capitulo6.html