Sie sind auf Seite 1von 66

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FÍSICAS Y


MATEMÁTICAS

ESCUELA ACADÉMICO PROFESIONAL DE


INGENIERÍA INFORMÁTICA

TRABAJO DE INVESTIGACION:
REDES NEURONALES ARTIFICIALES:
EL PERCEPTRÓN MULTICAPA

PRESENTADO PARA OBTENER EL GRADO DE


INGENIERO INFORMÁTICO

AUTOR: Br. FLOR YAMILET ALTAMIRANO GÁLVEZ

ASESOR: Ms. JORGE LUIS GUIERREZ GUTIERREZ

TRUJILLO – PERU
2011
ÍNDICE
AGRADECIMIENTO
DEDICATORIA
PRESENTACION
RESUMEN

1. INTRODUCCION 5
1.1. PROBLEMATIZACIÓN …………………………............................ 5
1.1.1. SISTEMAS EXPERTOS …………………………………….. 5
1.1.2. DEMOSTRACIÓN DE TEOREMAS …………………………… 6
1.1.3. JUEGOS AUTOMATIZADOS ………………………………….. 6
1.1.4. RECONOCIMIENTO DE VOZ …………………………………. 6
1.1.5. RECONOCIMIENTO DE PATRONES ………………………… 7
1.1.6. PROCESAMIENTO DEL LENGUAJE NATURAL ……………. 7
1.1.7. VISIÓN ARTIFICIAL ……………………………………………… 7
1.1.8. ROBÓTICA ………………………………………………………. 8
1.1.9. REDES NEURONALES ………………………………………… 8
1.1.10. ALGORITMOS GENÉTICOS ……………………………………. 9

2. PLANTEAMIENTO DEL PROBLEMA ………………………………………………. 9

3. HIPÓTESIS …………………………………………………………………………….. 9

4. JUSTIFICACIÓN DEL ESTUDIO …………………………………………………….. 10

5. OBJETIVOS ……………………………………………………………………………. 10
5.1. OBJETIVO GENERAL ……………………………………………………. 10
5.2. OBJETIVOS ESPECÍFICOS ………………………………………………. 10

6. ANTECEDENTES …………………………………………………………………….. 11
6.1. DEFINICIÓN DE REDES NEURONALES ……………………………… 11
6.1.1. MODELO BIOLÓGICO ………………………………………….. 11
6.1.2. MODELO COMPUTACIONAL ………………………………….. 13

6.2. FUNCIÓN DE ACTIVACIÓN O TRANSFERENCIA …………………….. 16


6.3. TOPOLOGÍAS …………………………………………………………..... 20

6.3.1. REDES NEUROLAES MONOCAPA ……………………………. 20


6.3.2. REDES NEURONALES MULTICAPA …………………………. 20
6.3.3. REDES CON CONEXIÓN HACIA ADELANTE (FEEDFORWARD)
6.3.4. REDES CON CONEXIÓN HACIA ATRÁS (FEEDBACK) …….. 22
6.3.5. REDES RECURRENTES ………………………………………. 23
6.4. TIPOS DE APRENDIZAJE ……………………………………………... 23
6.4.1. APRENDIZAJE SUPERVISADO ………………………………. 23
6.4.2. APRENDIZAJE NO SUPERVISADO ………………………….. 24
6.4.3. APRENDIZAJE HÍBRIDO……………………………………….. 24
6.4.4. APRENDIZAJE REFORZADO ………………………………….. 24

6.5. DISEÑO DE UNA RED NEURONAL ……………………………………. 26

6.6. FASES DE UNA RED NEURONAL …………………………………….. 26

6.7. MODELOS DE REDES NEURONALES ……………………………….. 26

6.8. APLICACIONES …………………………………………………………… 28


6.8.1. RECONOCIMIENTO DE PATRONES ………………………… 28
6.8.2. CATEGORIZACIÓN ……………………………………………… 29
6.8.3. APROXIMACIÓN DE FUNCIONES …………………………… 29
6.8.4. PREDICCIÓN …………………………………………………….. 30
6.8.5. OPTIMIZACIÓN …………………………………………………… 30

7. DETERMINACIÓN ESPECÍFICA …………………………………………………… 31


7.1. PERCEPTRÓN …………………………………………………………… 31
7.1.1. APRENDIZAJE DEL PERCEPTRÓN………………………….. 32
7.2. PERCEPTRÓN MULTICAPA ……………………………………………. 34
7.2.1. LA REGLA DELTA O REGLA DE WIDROW-HOFF …………… 36
7.2.2. APRENDIZAJE POR BACK PROPAGATION ………………… 40

7.3. IMPORTANCIA DEL ESTUDIO …………………………………………. 47

7.4. EJEMPLO DE APLICACIÓN DE UNA RED MULTICAPA ……………. 48


7.4.1. DISEÑO ……………………………………………………………. 48
7.4.2. ANÁLISIS Y DISCUSIÓN DE RESULTADOS …………………. 53

8. CONCLUSIONES Y RECOMENDACIONES ………………………………………. 57


9. REFERENCIAS BIBLIOGRÁFICAS …………………………………………………. 59
10. ANEXOS ………………………………………………………………………………… 61
AGRADECIMIENTO

Agradezco a todos mis profesores


De la Universidad Nacional de
Trujillo, por los conocimientos
Adquiridos en mis cinco años
De estudios,

A nuestro padre de amor


Que nos da la fortaleza y nos
Abre las puertas de un futuro
Prometedor.
DEDICATORIA

Al esfuerzo y al gran amor de mis


Padres: Margarita y Hernán
que me enseñan a mirar más
allá y me impulsan a esforzarme
por alcanzar mis
aspiraciones.

A mis hermanas Marley Y Yohana,


Quienes han mantenido su confianza
en mí y me impulsan cada día
para seguir adelante.

A mi tía Sabina por haberme dado el


apoyo incondicional y por mantenerme
constante en el largo camino para culminar
mi carrera,
PRESENTACIÓN

Señores miembros del Jurado:

De acuerdo a lo estipulado en el Reglamento de Grados y Títulos de la


Facultad de Ciencias Físicas y Matemáticas, presento a vuestra
consideración el informe de Investigación, que se da en la modalidad de
Examen de Capacidad Profesional, para su respectiva evaluación, con el
cual se optará el Título en Ingeniero Informático.

El presente trabajo de investigación ha sido elaborado aplicando los


conocimientos adquiridos durante mi formación profesional,
complementándolo con la información estudiada en el desarrollo del
informe.

FLOR YAMILET ALTAMIRANO GÁLVEZ


Bachiller en Ciencias de la Computación
RESUMEN

El trabajo presenta una de las principales herramientas utilizadas en la


Inteligencia Artificial, las Redes Neuronales Artificiales.

Para el desarrollo del informe se ha considerado primeramente hablar


acerca de la Inteligencia Artificial y las principales ramas que abarca.
Seguidamente nos enfocamos en el estudio de las redes neuronales, su
funcionamiento, características, aplicaciones y tipos; enfocándonos en el
Perceptrón Multicapa, cuya aplicación ha sido utilizada con éxito desde
sus primeros modelos.

Finalizo con una ejemplificación básica de la aplicación de este modelo.

Palabras claves: Inteligencia Artificial, Redes neuronales artificiales, Perceptrón Multicapa.


1. INTRODUCCIÓN

1.1. Problematización

El hombre a través de los años, y más aún con la invención de las


computadoras, ha buscado desafiar los diferentes problemas del día a día.
Uno de los desafíos de las últimas décadas fue el hecho de llegar a hacer
que las computadoras adquieran un conocimiento más allá de lo operativo,
pensante; puedan simular el comportamiento humano, y por ende,
desarrollar cosas que sólo los humanos podían hacer.
La Inteligencia Artificial es la parte de la Ciencia que se ocupa del diseño de
sistemas de computación inteligentes, es decir, sistemas que exhiben las
características que asociamos a la inteligencia en el comportamiento
humano que se refiere a la comprensión del lenguaje, el aprendizaje, el
razonamiento, la resolución de problemas, etc. Hoy en día, el campo de la
Inteligencia Artificia (IA) engloba varias sub áreas tales como los sistemas
expertos, la demostración automática de teoremas, el juego automático, el
reconocimiento de patrones, el procesamiento del lenguaje natural, la visión
artificial, la robótica, las redes neuronales, algoritmos genéticos, etc.[1]

1.1.1. Sistemas Expertos

Los sistemas expertos son máquinas que piensan y razonan como un


experto lo haría en una cierta especialidad o campo. Por ejemplo, un
sistema experto en diagnóstico médico requeriría como datos los
síntomas del paciente, los resultados de análisis clínicos y otros hechos
relevantes, y, utilizando éstos, buscaría en una base de datos la
información necesaria para poder identificar la correspondiente
enfermedad. Un Sistema Experto de verdad, no sólo realiza las
funciones tradicionales de manejar grandes cantidades de datos, sino
que también manipula esos datos de forma tal que el resultado sea
inteligible y tenga significado para responder a preguntas incluso no
completamente especificadas.
1.1.2. Demostración de Teoremas

La capacidad de hacer deducciones lógicas fue considerada durante


mucho tiempo como una posibilidad reservada a la mente humana. Las
investigaciones desarrolladas en los años 1960 en el área de la
demostración automática de teoremas han mostrado que esta tarea
puede ser realizada por máquinas programables. Tales máquinas son
capaces no sólo de modificar el conocimiento existente, sino también de
obtener conclusiones nuevas. En primer lugar, los demostradores de
teoremas han sido utilizados en varios campos de las matemáticas,
tales como la Lógica, la Geometría, etc. El campo de la Matemática
constituye un área natural para esta metodología por la existencia de
mecanismos de deducción y de una extensa base de conocimiento.

1.1.3. Juegos automatizados

Los juegos por computador (tales como el ajedrez, backgammon, y los


de cartas) han visto un desarrollo masivo en los últimos años. Por
ejemplo, los programas de juegos de ajedrez son capaces de competir e
incluso vencer a bien conocidos maestros. El juego automático requiere
un estudio teórico profundo y tiene varias aplicaciones en otras áreas
tales como: métodos de búsqueda, optimización, etc.

1.1.4. Reconocimiento de voz

La voz es el medio de comunicación más usado por el hombre. El


reconocimiento de voz trata del problema de procesar el lenguaje
hablado y capturar los diferentes elementos semánticos que forman la
conversación.
Los problemas asociados con las diferentes pronunciaciones y tonos de
voz son los principales obstáculos que esta disciplina tiene que afrontar.
1.1.5. Reconocimiento de patrones

El reconocimiento de patrones trata de diferentes técnicas de


clasificación para identificar los subgrupos, o conglomerados, con
características comunes en cada grupo. El grado de asociación de
cualquiera de los objetos con cada uno de los grupos suministra un
modo de sacar conclusiones.
Por ello, los algoritmos desarrollados en esta área son herramientas
útiles para tratar con varios problemas de muchos campos tales como:
reconocimiento de imágenes, reconocimiento de señales, diagnósticos
de fallos de equipos, control de procesos, etc.

1.1.6. Procesamiento del lenguaje natural

Un objetivo del procesamiento del lenguaje natural consiste en extraer


tanta información como sea posible de un texto escrito. Con el uso
creciente de los ordenadores en el tratamiento de la información, el
lenguaje escrito está jugando un papel muy importante como medio de
comunicación. Puesto que el reconocimiento de la voz es
inherentemente un problema más difícil, resulta necesario disponer de
un procesado eficiente del lenguaje escrito. El problema inverso del
procesamiento del lenguaje es el de la generación de lenguaje, es decir,
dotar a los computadores de capacidades para generar sentencias de
lenguaje natural en vez de mensajes de tipo telegráfico. La combinación
de estas dos tareas permitiría, por ejemplo, la posibilidad de traducir
textos escritos en diferentes idiomas, lo que se conoce como traducción
asistida por ordenador.

1.1.7. Visión Artificial

Uno de los objetivos de la visión artificial es la posibilidad de usar


ordenadores para localizar y reconocer automáticamente objetos en tres
dimensiones.
Muchas otras áreas de la IA tales como la representación del
conocimiento, el reconocimiento de patrones, y las redes neuronales
juegan un papel esencial en la visión artificial. Los significativos avances
técnicos producidos durante la última década han sido aplicados a
varios sistemas comerciales utilizados en fabricación, inspección, tareas
de guía, etc.

1.1.8. Robótica

La robótica es una de las áreas de la IA más populares. Los robots


combinan elementos mecánicos, sensores, y ordenadores que les
permiten tratar con objetos reales y realizar muchas tareas de forma
precisa, rápida y cómoda.
Por ello, se puede pensar en los robots como ordenadores que
interaccionan con el mundo real.

1.1.9. Redes Neuronales Artificiales

Las redes neuronales se crearon con el objetivo de reproducir de forma


básica las funciones elementales del cerebro humano. Las arquitecturas
en red con un gran número de conexiones entre varias capas de
procesadores fueron introducidas para reproducir la estructura del
cerebro humano. La información contenida en una red neuronal se
codifica en la estructura de la red y en los pesos de las conexiones. Por
tanto, en una situación particular, los pesos de las conexiones tienen
que modificarse para reproducir la salida deseada. Esta tarea de
aprendizaje se consigue mediante una técnica de aprender por
analogía, es decir, el modelo se entrena para reproducir las salidas de
un conjunto de señales de entrenamiento con el objetivo de codificar de
esta forma la estructura del fenómeno. La aparición de ordenadores
rápidos en los que pudieran simularse redes grandes y complejas, y el
descubrimiento de potentes algoritmos de aprendizaje han sido las
causas que han posibilitado el desarrollo rápido de esta área de
conocimiento.
1.1.10. Algoritmos Genéticos

Son llamados así porque se inspiran en la evolución biológica y su base


genético-molecular. Estos algoritmos hacen evolucionar una población
de individuos sometiéndola a acciones aleatorias semejantes a las que
actúan en la evolución biológica (mutaciones y recombinaciones
genéticas), así como también a una selección de acuerdo con algún
criterio, en función del cual se decide cuáles son los individuos más
adaptados, que sobreviven, y cuáles los menos aptos, que son
descartados. También es denominado algoritmos evolutivos, e incluye
las estrategias evolutiva, la programación evolutiva y la programación
genética. Dentro de esta última se han logrado avances curiosos:
Un algoritmo genético es un método de búsqueda dirigida basada en
probabilidad. Bajo una condición muy débil (que el algoritmo mantenga
elitismo, es decir, guarde siempre al mejor elemento de la población sin
hacerle ningún cambio) se puede demostrar que el algoritmo converge
en probabilidad al óptimo. En otras palabras, al aumentar el número de
iteraciones, la probabilidad de tener el óptimo en la población tiende a 1
(uno).

2. PLANTEAMIENTO DEL PROBLEMA

¿Es posible verificar el funcionamiento de una Red Neuronal MLP?

3. HIPÓTESIS

Sí, es posible verificar el funcionamiento de una Red Neuronal MLP a


través de una aplicación básica.
4. JUSTIFICACIÓN DEL ESTUDIO

El problema se justifica en la investigación porque:

 Es “importante” por ser una alternativa de solución a múltiples


problemas de alta complejidad, cuya implementación no requiere de
mayor esfuerzo.
 Es “novedosa” porque fomenta la investigación en el área de la
Inteligencia Artificial, ya que en nuestro país existen pocos estudios
al respecto.
 Es “verificable” porque si se logra implementar esta aplicación
sencilla, podemos constatar que para otras aplicaciones más
complejas obtendremos buenos resultados.

5. OBJETIVOS

5.1. Objetivo general

Describir y observar el funcionamiento de una red neuronal artificial


multicapa mediante una aplicación básica.

5.2. Objetivos específicos

- Explicar las principales características de las redes neuronales


artificiales.
- Explicar las aplicaciones más importantes en las que son usadas las
RNA.
- Explicar el funcionamiento de las redes neuronales multicapa, usando el
algoritmo de backpropagation para la detección de errores.
- Implementar el algoritmo de MLP en una aplicación básica.
6. ANTECEDENTES

6.1. Definición de Redes Neuronales.

El campo de las redes neuronales artificiales fue inspirado por los estudios
en redes neuronales reales que conforman el cerebro, en un intento por
resolver problemas mediante el empleo del conocimiento obtenido de casos
similares resueltos en el pasado. No por eso su conducta es igual a la del
cerebro, pero sí se busca emular ciertas cualidades destacables de este,
las cuales no se alcanzan con computadoras estándar.

La capacidad de procesamiento de la red es representada por las fuerzas


de conexión (pesos) entre los elementos, obtenidos por un proceso de
aprendizaje mediante un conjunto de patrones de entrenamiento.

6.1.1. Modelo Biológico

Para comprender mejor las redes neuronales artificiales y sus orígenes,


examinemos primero el modelo biológico (objeto de inspiración)

El elemento constructivo y unidad básica procesadora de una red


neuronal es la neurona. Su estructura, como se muestra en la Figura
N° 1, es básicamente un cuerpo celular, o soma, que alberga el núcleo
y del cual se extienden las dendritas (terminales receptoras) y el axón
(elemento transmisor). La unión entre el axón y la dendrita de dos
neuronas se llama sinapsis. La comunicación entre neuronas se basa
en la activación de terminales bio-química en el extremo del axón, que
liberan neurotransmisores que son captados por la dendrita. La
experiencia en cierta tarea o estímulo produce que las sinapsis
correspondientes se refuercen de forma exitatoria o inhibitoria [1].
Figura N° 1:
Representación de una neurona biológica.
Fuente: http://grupo2cuartobimestre.blogspot.com/2008/10/sistema-nervioso.html

Una neurona es una célula viva con la capacidad de comunicarse. Esta


célula consta principalmente de un cuerpo celular más o menos
esférico, del que sale una rama principal, el axón y varias ramas más
cortas, llamadas dendritas. A su vez, el axón puede producir ramas en
torno a su punto de arranque, a las que llamaremos terminales
axónicos.

En general, las dendritas y el cuerpo celular reciben señales de


entrada, y este último las combina e integra para emitir señales de
salida. El axón transporta esas señales a los terminales axónicos que
se encargan de distribuir información a un nuevo conjunto de neuronas.
Los terminales axónicos se enlazan con las dendritas de otras neuronas
mediante una estructura denominada sinapsis.

Las señales son transmitidas entre neuronas por impulsos eléctricos


que viajan a través del axón. Estos impulsos llegan a otras neuronas
conectándose a través de las dendritas (terminaciones) y terminales
axónicos (sinapsis). Cada pulso que ocurre en la sinapsis inicia la
liberación de una pequeña cantidad de sustancia química
(neurotransmisor). El neurotransmisor viaja por medio de la sinapsis
desde los terminales axónicos de la neurona emisora hacia las
dendritas de la neurona receptora. Una neurona receptora puede estar
conectada a muchas neuronas emisoras. Cada neurona emisora
provocará la liberación de cierta cantidad y tipo de neurotransmisor.
Entre algunos neurotransmisores tenemos: la acetilcolina, asociada a
la contracción de músculos; la dopamina relacionada con el sistema
motor y asociada al síndrome de Parkinson; noradrenalina que influye
en la emociones y ciertos humores, la serotonina relacionada con la
depresión; la endorfina, interviniente en la reducción de dolor, entre
otras.

Cada neurona, en su cuerpo celular, contiene una sustancia química en


su exterior y otra de composición distinta en su interior, lo que origina
una diferencia de potencial determinada. Cada neurona mantiene una
diferencia de potencia determinada, en la que se establece un potencial
en reposo. Los neurotransmisores que recibe una neurona pueden
originar que se altere tal diferencia de potencial (sinapsis excitadora) o
que esté en equilibrio - reposo (sinapsis inhibidora). Si, luego de
procesar todas las entradas en la neurona se obtiene cambio en la
diferencia de potencial, entonces se emite un tren de pulsos eléctricos
que se propaga a lo largo del axón y, a su vez provoca la emisión de los
neurotransmisores en los terminales axónicos.

6.1.2. Modelo computacional

Las redes neuronales artificiales son motivadas por ciertas cualidades


de su modelo real, por lo cual el desafío es producir un modelo que
tenga:
1. Una estructura de procesamiento distribuida y paralela
(opuestamente al CPU de una computadora).

2. Alto grado de conexión entre las unidades básicas.

3. Conexiones modificables en función de la experiencia.

4. Un proceso de aprendizaje constante y de ser posible uno no


supervisado

5. Aprendizaje basado en información local.

6. Robustez en la performance si algunas unidades son removidas.

Como el cerebro humano, una red neuronal se compone de neuronas y


conexiones entre ellas. Las neuronas van transportando información de
entrada sobre sus conexiones de salida a otras neuronas. En una red
neuronal artificial, dichas conexiones están representadas por pesos. La
información eléctrica es simulada con valores específicos en los pesos.

El cambio de la estructura de las conexiones se puede simular,


fácilmente, modificando los valores en los pesos.
La siguiente figura muestra una neurona artificial y sus componentes:
Figura N° 2:
Modelo de neurona artificial.
Fuente: Andrés Nacelle, Redes Neuronales Artificiales, Pág.4

La información, a la que llamamos Entrada, es enviada a la neurona


con sus respectivos pesos. Los valores de las entradas X son
sumarizadas multiplicadas con sus respectivos pesos, originando el
valor de activación.

Supongamos que tenemos “n” entradas: x1, x2, x3, . . . xn, cuyos pesos
respectivamente son: w1, w2, w3, . . . wn. El valor de activación, para una
neurona, se obtiene por:

 x w  x w  x w .... x w
1 1 2 2 3 3 n n

n
 x w
i 1
i i

El resultado “”, al que llamamos valor de activación, es comparado


con un cierto valor umbral (threshold), esto es realizado por la función
de activación o de transferencia de la neurona. En general, si el
resultado de la suma anterior “” excede el valor del umbral, la neurona
será activada, en otro caso será inhibida. Una función de activación “f”
devolverá el valor “y” de la salida de la neurona (impulsos eléctricos)

Si la neurona es activada, esta envía una salida a las demás neuronas


conectadas a ella, la salida de la neurona representa una entrada en la
otra neurona. El proceso continúa iterativamente.
Como hemos podido apreciar entonces, los componentes necesarios
para la implementación de una red neurona artificial serán los
siguientes:

 Un vector de entrada
 Un vector de pesos asociado a cada entrada
 Un umbral
 Un valor de activación (sumatoria) α
 Una función de activación f

6.2. Función de activación o transferencia

Entre las funciones de transferencia más utilizadas tenemos:

 Función Escalón
Cuando el conjunto de valores de activación es {0, 1}, entonces
tenemos:

y( )   10 si
si
 
 

Cuando el conjunto de valores de activación es {-1, 1}, entonces


tenemos:
y( )   11 si
si
 
 


-1

 Función Lineal

y( )    

 Función Sigmoidal
Se denomina Sigmoidal, pues su representación gráfica tiene la
forma de una “S”. Es una función continua, por lo tanto el espacio de
los valores de activación es un intervalo del eje real entre 0 y 1.

1
y ( ) 
1  e (  )
Figura N° 3:
Función Sigmoidal

 Función Tangente Sigmoidal

Es una función que, a diferencia de la sigmoidal tradicional que varía


entre 0 y 1, ésta varía entre -1 y 1.

2
y( )   2 (  )
1
1 e

Figura N° 4:
Función Tangente Sigmoidal
 Función Gaussiana

y( )  e  x*x ; x    

Figura N° 5:
Función Gaussiana

El umbral puede ser manejado como otra entrada x0 en la neurona


con valor unitario (1) y con peso w0 = - , aunque, realmente el signo
no interesa. Así tenemos:

n
  (x w )  x w
i 1
i i 0 0

Así, el valor del umbral también va modificándose, y las funciones de


activación serían, para el caso de la función escalón será:

y( )   10 si
si
 0
 0

Se sigue de igual modo par el resto de las funciones.


6.3. Topologías

La arquitectura de las redes neuronales consiste en la organización y


disposición de las neuronas formando capas más o menos alejadas de la
entrada y salida de la red. En este sentido, los parámetros fundamentales
de la red son: el número de capas, el número de neuronas por capa, el
grado de conectividad y el tipo de conexiones entre neuronas. [2]

6.3.1. Redes neuronales mono capa

Las redes mono capa son redes con una sola capa. Para unirse, las
neuronas crean conexiones laterales para conectar con otras neuronas
de su capa. Las redes más representativas son la red de Hopfield, la red
BRAIN-STATE-IN-A-BOX o memoria asociativa y las máquinas
estocásticas de Botzmann y Cauchy.
Entre las redes neuronales mono capa, existen algunas que permiten
que las neuronas tengan conexiones a sí mismas y se denominan auto
recurrentes.

Las redes mono capa han sido ampliamente utilizadas en circuitos


eléctricos ya que, debido a su topología, son adecuadas para ser
implementadas mediante hardware, usando matrices de diodos que
representan las conexiones de las neuronas

6.3.2. Redes Neuronales multicapa

Las redes multicapa están formadas por varias capas de neuronas


(2,3...). Estas redes a su vez se pueden clasificar atendiendo a la
manera en que se conexionan sus capas.
Usualmente, las capas están ordenadas por el orden en que reciben la
señal desde la entrada hasta la salida y están unidas en ese orden. Ese
tipo de conexiones se denominan conexiones feedforward o hacia
delante.
Figura N° 6:
Red Neuronal con tres capas

6.3.3. Redes con conexiones hacia adelante(Feedforward)

Como decíamos antes, este tipo de redes contienen sólo conexiones


entre capas hacia delante. Esto implica que una capa no puede tener
conexiones a una que reciba la señal antes que ella en la dinámica de la
computación.
Ejemplos de estas redes son Perceptron, Adaline, Madaline,
Backpropagation y los modelos LQV y TMP de Kohonen.
Figura N° 7:
Conexión Feedforward

6.3.4. Redes con conexiones hacia atrás (FeedBack)

Este tipo de redes se diferencia en las anteriores en que si pueden


existir conexiones de capas hacia atrás y por tanto la información puede
regresar a capas anteriores en la dinámica de la red. Este Tipo de redes
suelen ser bicapas.
Ejemplos de estas redes son las redes ART, Bidirectional Associative
Memory (BAM) y Cognitron.

Figura N° 8:
Conexión Feedback
6.3.5. Redes recurrentes

Este tipo de red se diferencia de las anteriores en la existencia de lazos


de realimentación en la red. Estos lazos pueden ser entre neuronas de
diferentes capas, neuronas de la misma capa o, entre una misma
neurona. Esta estructura la hace especialmente adecuada para estudiar
la dinámica de los sistemas no lineales.

Figura N° 9:
Conexión recurrente

6.4. Tipos de aprendizaje

Este concepto es sustancialmente la modificación de la respuesta


producida por la interacción con el medio y de esta forma establecer
nuevas respuestas que se adaptan a estímulos externos. En el caso del
cerebro, esta cualidad se alberga en las sinapsis. En el caso de las redes
neuronales, el conocimiento está en los pesos de las conexiones.
Por esto, todo mecanismo de aprendizaje demanda modificaciones en
dichos pesos.

El aprendizaje se realiza mediante entrenamiento. El entrenamiento de


una red neuronal origina una matriz que mantiene los valores de los pesos
entre las neuronas. Una vez que una red neuronal ha sido entrenada, bajo
un conjunto de patrones de entrenamiento, ésta, probablemente, será
capaz de encontrar la salida deseada para una entrada (patrón de entrada)
determinada, que ha sido aprendida, usando está matriz de valores de
pesos.
6.4.1. Aprendizaje supervisado

En el aprendizaje supervisado se presenta a la red un conjunto de


patrones, junto con la salida deseada u objetivo, e iterativamente esta
ajusta sus pesos hasta que la salida tiende a ser la deseada, utilizando
para ello información detallada del error que se comete en cada paso.
De este modo, la red es capaz de estimar relaciones entrada/salida sin
necesidad de proponer una cierta forma funcional de partida.

Durante el aprendizaje, cada patrón de entrada (patrón de


entrenamiento) es enviado a la red neuronal a través de su capa de
entrada. El patrón es propagado a través de la red hacia la capa de
salida. La capa de salida genera un patrón de salida, el cual es
comparado con la salida deseada. Dependiendo de la diferencia entre el
patrón de salida y la salida deseada, un error es calculado. El error
indica el esfuerzo de aprendizaje de la red, el cual puede ser controlado
por un supervisor o tutor imaginario. Mientras el error sea mayor, más
valores de los pesos serán modificados.

Algunos algoritmos de aprendizaje supervisado incluyen:

- Aprendizaje por corrección de error


- Aprendizaje por refuerzo.
- Aprendizaje estocástico.
- Least Mean Squared Error (LSM), concerniente con la
minimización del error global entra la salida obtenida y la
esperada.

6.4.2. Aprendizaje no supervisado o auto organizado.

Las redes neuronales que manejan aprendizaje no supervisado no


cuentan con salidas esperadas, por lo tanto no utilizan un tutor o
supervisor y se basa solamente en la información ingresada. Esto es
también referido como auto-organización en el sentido que organiza
automáticamente los datos presentado a la red y detecta sus
propiedades colectivas emergentes. Este tipo de aprendizaje es muy
utilizado para asociación y clasificación de patrones.

Algunos algoritmos de aprendizaje no supervisado son:

- Aprendizaje Hebbiano
- Aprendizaje Competitivo y Corporativo

6.4.3. Aprendizaje híbrido

En este caso existen en la red los dos tipos de aprendizaje básicos,


supervisado y auto organizado, normalmente en distintas capas de
neuronas.

6.4.4. Aprendizaje reforzado

Se sitúa a medio camino entre al aprendizaje supervisado y el auto


organizado. Como en el primero, se emplea información sobre el error
cometido, pero en este caso existe una única señal de error, que
representa un índice global del rendimiento de la red (solamente le
indicamos lo bien o lo mal que está actuando). Como en el caso del no
supervisado, no se suministra explícitamente la salida deseada.

6.5. Diseño de una Red Neuronal Artificial

El diseño de una red neuronal consiste en:

- Determinar el número de capas de la red neuronal.


- Determinar el número de neuronas por capa.
- Determinar la función de transferencia de cada neurona.
- Determinar los algoritmos de aprendizaje de la red neuronal.
6.6. Fases de una Red Neuronal

- Fase de Aprendizaje o Entrenamiento, en esta fase se presentan a la


red neuronal una serie de patrones de entrada de modo que la red
ajuste los pesos de las conexiones entre neuronas apropiadamente,
según las salidas esperadas.

- Fase de Operatividad o Ejecución, en esta fase la red neuronal se


pone en uso, y se espera resultados adecuados bajo los pesos
establecidos.

6.7. Modelos de Redes Neuronales

Existen muchos modelos de redes neuronales, estas se distinguen por:

o Estructura
o Tipo de Conexión
o Algoritmo de Aprendizaje
Aprendizaje Supervisado

Feedforward Perceptron - Rosenblatt (1958)


Multilayer Perceptron - Minsky and
Papert (1969/1988)
Adaline - Widrow and Hoff (1960)

Feedback Recurrent backpropagation - Pineda


(1989)
Boltzman Machine - Ackley et al.
(1985)

Aprendizaje No Supervisado

Feedforward LVQ: Learning Vector Quantization


- Kohonen (1988)

Feedback Hopfield Net – Hopfield (1982)


Kohonen Feature Map –Teuvo
Kohonen (1982)
ART 1 - Carpenter and Grossberg
(1987a), Moore (1988),
ART 2 - Carpenter and Grossberg
(1987b),
ART 3 - Carpenter and Grossberg
(1990)
Fuzzy ART - Carpenter, Grossberg
and Rosen (1991b)
Cognitron/Neocognitron –
Fukushima (75-80)
6.8. Aplicaciones

La mayoría de problemas para los cuales se aplica RNA se divide en dos


grandes grupos, y existen también dos grandes tipos de redes neuronales:
redes de clasificación y redes de evaluación. Las redes del primer tipo
asociacian una determinada configuración de entrada, o patrón de entrada,
con una salida. Se denomina a estas redes, redes asociativas,
clasificadoras o reconocedoras de patrones. El segundo tipo de redes,
maneja problemas en los que lo que se pide es un ”juicio”, por lo que se les
denominan redes evaluadoras. Otro tipo de RNA lo constituyen modelos
específicos para tareas especiales como: restauración de patrones,
predicción, etc.

6.8.1. Reconocimiento de Patrones

La tarea del reconocimiento de patrones es asignar a un patrón de


entrada (como un cardiograma, o la señal de la voz) representado por
un vector de características, una de varias clases predefinidas. Entre
las aplicaciones más populares tenemos, reconocimiento de caracteres,
reconocimiento del habla, del rostro, clasificación de células de la
sangre, etc.

Figura N° 10:
Clasificación de Patrones.
6.8.2. Categorización

En la categorización o clusterización, o también conocido como


clasificación de patrones no supervisados, no existen clases
previamente definidas para los datos de entrenamiento. Un algoritmo de
clusterización explora la similaridad entre patrones y ubica patrones
similares en una misma clase o cluster. Aplicaciones incluyen minería de
datos, compresión de datos y análisis exploratorio.

6.8.3. Aproximación de Funciones

Supongamos un conjunto de n patrones de entrenamiento etiquetados

(pares de entrada-salida),
x1 , y1 , x2 , y2 ,, xn , yn  han sido
generados desde una función desconocida f (x) . La tarea de la
ˆ
aproximación de funciones es encontrar una función estimada f ( x) de
la función desconocida. En muchas aplicaciones de ingeniería y
problemas de modelación se requiere aproximación de funciones.

Figura N° 11:
Aproximación de Funciones.
6.8.4. Predicción

Dada una secuencia de n muestras


yt1 , yt 2 ,, yt n  en una

secuencia de tiempos t1 , t 2 ,, t n , la tarea es predecir la muestra y(t n1 )

para algún tiempo futuro t n 1 . La predicción tiene un impacto muy


importante en la toma de decisiones en los negocios, ciencia e
ingeniería. Aplicaciones típicas está relacionadas a la predicción de
demanda en el mercado y la predicción del clima.

y
?

t1 t2 t3 tn tn+1
Figura N° 12:
Predicción.

6.8.5. Optimización

Una amplia variedad de problemas en matemática, estadística,


medicina, economía pueden ser representados como problemas de
optimización. El objetivo de un algoritmo de optimización es encontrar
una solución satisfactoria a un conjunto de restricciones de modo que
una función objetivo es maximizada o minimizada. El problema del
agente viajero, un problema NP-Completo, es un ejemplo clásico.
7. DETERMINACIÓN ESPECÍFICA

7.1. Perceptrón

El perceptrón es una red de alimentación directa, esto es la información


fluye desde la capa de entrada hacia la capa de salida. Fue desarrollado
por F. Rosenblatt hacia final de la década de los cincuenta basándose
en la regla de aprendizaje de Hebb y de los modelos de neuronas
biológicas de McCulloch y Pitts.

El Perceptrón era inicialmente un dispositivo de aprendizaje, en su


configuración inicial no estaba en capacidad de distinguir patrones de
entrada muy complejos, sin embargo mediante un proceso de
aprendizaje era capaz de adquirir esta capacidad.

El perceptrón simple es una red que consta de dos capas de neuronas.


Esta red admite valores binarios o bipolares como entrada para los
sensores y los valores de su salida están en el mismo rango que los de
entrada.

La función de la primera capa es hacer de sensor, por ella entran las


señales a la red .

La segunda capa realiza todo el procesamiento. La manera de


interconexión en ambas capas es todas con todas, esto es, cada
neurona de la primera capa está unida con todas las de la segunda
capa.

La función de activación para este tipo de RNA es la siguiente:

( ) ( )
X0=1
X1 Umbral
W0
W1
X2
W2
Y
f
Wn-1
Xn-
1
Wn
Xn

Figura N° 13:
Modelo de Perceptrón Simple.

7.1.1. Aprendizaje del Perceptrón

Se pueden utilizar diferentes algoritmos de aprendizaje, en nuestro caso


vamos a utilizar el algoritmo de corrección de error.

Aprendizaje por Corrección de error

En este caso los pesos son ajustados en base a la diferencia entre


los valores de salida deseados y los obtenidos en la salida de la red
(error).
La regla del algoritmo es la siguiente:

wij   yi (d j  y j )

así, el peso wij se puede ajustar de la siguiente manera:

wij (t  1)  wij (t )  wij

donde:
wij
: Diferencia en el valor del peso de la conexión
entre la neurona i y la neurona j.

yj
: Valor de la salida de la neurona j.
dj
: Valor esperado de la neurona j.

 : Factor de aprendizaje 0<   1, controla la


velocidad de aprendizaje.

0 i  M 1j N

M: número de neuronas en la capa anterior


N: número de neuronas en la capa sucesora.

Proceso de Aprendizaje del Perceptrón

Dado un conjunto de n entradas x1,. . ., xn.

Inicializar aleatoriamente los pesos de las conexiones entre las


neuronas y establecer, de igual modo, el valor del umbral (-w0).

ENTRENAMIENTO

Para cada patrón del conjunto de patrones

Se ingresa el nuevo patrón de entrenamiento en la capa de entrada,


que se propagará por la red, hasta obtener la salida. No olvide, que -
la salida en cada neurona de entrada es igual al valor de la entrada.

[ x1 , x 2 ,...,x n ]

Se calcula el valor de activación en cada neurona de la capa de


salida, para un tiempo t.
 j (t )  w ij (t ) y i (t )  wo (t ) x o (t )
i ,
donde, yi es la salida de la neurona i de la capa de entrada, y x0 = 1.

Se calcula la salida de cada neurona en la capa de salida, con la


función de activación.

y j  f ( j )
,

donde, f es la función de escalón, cuyas salidas pueden ser {0,1}


Se ajustan los pesos de acuerdo con el algoritmo de corrección de
error.

wij (t  1)  wij (t )   y i (t )( d j  y j )

 error
patron
2

Se suman los errores parciales ErrorTotal=

Si ErrorTotal>e, entonces volver al paso 2, en caso contrario


finalizar el entrenamiento.

7.2. Perceptrón Multicapa (MLP)

Una manera de solventar las limitaciones del Perceptrón Simple es por


medio de la inclusión de capas ocultas, obteniendo de esta forma una red
neuronal que se denomina Perceptrón multicapa.
La figura muestra las regiones de decisión que se obtienen para distintas
arquitecturas de redes neuronales considerando dos neuronas en la capa
inicial. Así por ejemplo para una arquitectura de perceptrón simple la región
de decisión es una recta, mientras que el perceptrón multicapa con una
única capa de neuronas ocultas puede discriminar regiones convexas. [6]
El perceptrón multicapa o MLP (Multi-Layer Perceptron) se suele entrenar
por medio de un algoritmo de retropropagación de errores o BP (Back
Propagation) de ahí que dicha arquitectura se conozca también bajo el
nombre de red de retropropagación.
El desarrollo del algoritmo BP resulta una curiosa historia de
redescubrimientos y olvidos. Si bien fue Werboz (1974) quien en su tesis
doctoral lo introdujo por vez primera, el hecho no tuvo repercusión en su
época hasta que Rumelhart y col. (1986) lo redescubrieron de manera
independiente y comenzaron a popularizarlo ayudados por los avances en
computación existentes en la época, los cuales permitan satisfacer los
requisitos de computación que el algoritmo BP requiere.
La estructura del MLP con una única capa oculta se muestra en la Figura N°
16:

Figura N° 14:
Arquitectura del Perceptrón con una Capa Oculta.
Fuente: http://es.wikipedia.org/wiki/Red_neuronal_artificial.
7.2.1. La Regla Delta o Regla de Widrow-Hoff

Esta regla es utilizada por primera vez por Widrow y Hoff en el


modelo que ellos idearon denominado “Adaptive Linear Element”
(ADALINE-1960). La Red ADALINE era similar al modelo Perceptrón,
pero con diferente algoritmo de aprendizaje <regla delta>.
La Regla Delta consiste, en encontrar un conjunto de pesos que
minimicen el error, error calculado en base a los pesos y a las salidas
esperadas.
Matemáticamente hablando, se trata de encontrar el mínimo de una
función, para ellos se utiliza el método del gradiente decreciente
(DESCENT GRADIENT). [2]

Encontrar el mínimo de una función por medio del GRADIENTE


DECRECIENTE.

Un algoritmo para encontrar el mínimo local más cercano de una


función desconocida, en la que el gradiente de la función puede ser
calculado, es el método del gradiente descendente. Este método
comienza en un punto y, tantas veces como sea necesario,
mueve el punto a minimizándolo en la dirección de
Suponemos una función y = f(x), la cual depende de x, pero no
sabemos la forma exacta de la función. Además, suponemos que
deseamos encontrar la coordenada” x”, en donde el valor mínimo de
y es alcanzado, conociendo, para cualquier punto de la función, la
pendiente respectiva. En otras palabras, la función debe ser
derivable en todos sus puntos.
Cuando aplicamos a una función de una dimensión , el método
toma la forma iterativa de

Empezando desde un punto de inicio , para un , hasta que un


punto fijo sea alcanzado. En las figuras anteriores se muestra
con y en primer lugar con y luego
0.01, como se observa en las imágenes.

y

x

La regla del gradiente indica que:

x   * pendiente
  0 es suficientemente pequeño, para asegurar que y  y , se alcance
el mínimo sin saltarlo.

Aplicación del Gradiente Decreciente sobre el error (E) y los


pesos(W)

La idea es calcular un error cada vez que la red recibe un patrón de


entrada de entrenamiento, conociendo, además, la salida esperada, y
ejecutar el gradiente decreciente sobre el error considerado en función
de los pesos. Habrá un gradiente o pendiente para cada peso. Por lo
tanto, nosotros encontramos los pesos en el cual se obtiene un error
(global) mínimo. Esta situación se ejemplifica a continuación:

Figura N° 17:
Error vs. Pesos

Formalmente, para cada patrón de entrada p, se asocia un error Ep, el


cual está en función de los pesos dados en ese momento; esto es
Ep  f (w1, w2,...,wn) . Típicamente es definido por la diferencia cuadrada
entre la salida obtenida y la salida esperada. Así (en el caso del
perceptrón), tenemos:

1
Ep  (d  y ) 2
2
Donde: y está en función de los pesos. El error total E, es tan solo la
suma de los errores por cada patrón.

E  Ep
p

La actualización de pesos se realiza siguiendo el método del gradiente


descendiente:

W  W  f (W )

7.2.2. El aprendizaje por Back propagation

El aprendizaje de Backpropagation (Retropropagación) es uno de


los algoritmos más utilizados en redes como Perceptrón Multicapa. El
trabajo tuvo su base en el algoritmo de la regla delta, y fue extendido
por Rumelhartm Hinton en 1986.
Como se mencionó, este algoritmo de propagación hacia atrás
(backopropagation), es una regla de aprendizaje que se puede
aplicar en modelos de redes con más de dos capas de neuronas, por
ejemplo, puede ser utilizada para solucionar el problema de la
operación lógica XOR.
Se denomina de propagación hacia atrás o retropropagación,
porque, durante el aprendizaje, el error generado, se propaga hacia
atrás con el fin de ajustar los pesos.
Los modelos de red que utilizan este tipo de aprendizaje, necesitan
tener como función de activación, una función continua, la función
más utilizada es la función sigmoidal.
El backpropagation consiste en la aplicación repetida de las
siguientes fases:

- Fase Hacia adelante (Forward): En esta fase la red es activada


sobre un patrón de entrada y el error de cada neurona de la capa
de salida es calculado.
- Fase Hacia atrás (Backward): En esta fase el error de la red es
usado para actualizar los pesos. Este proceso es más complejo
que el algoritmo (Regla Delta) usado en ADALINE, puesto que,
ahora existen neuronas ocultas que no están asociados
indirectamente al error producido en la red, sino que se influyen
en el error por medio de las neuronas de las capas siguientes.
Por lo tanto, iniciando en la capa de salida, el error es propagado
hacia atrás, a través de la red, capa tras capa. Esto es hecho
recursivamente, calculando el gradiente local en cada neurona.

Objetivo de Aprendizaje: Minimizar el error producido por la


red
Network activation
Forward Step

Error propagation
Backward Step

a. Backpropagation (Regla Delta Generalizada)

- Se tienen una red neuronal de una capa de entrada, L capas


oculta y una capa de salida, en cada capa puede haber más de
una neurona.
- Cada neurona utiliza como función de activación una función
continua, generalmente, la función sigmoidal.

1
y ( x) 
1  e ( x )
y ' ( x)  y ( x)(1  y ( x))
- El error epj producido por una red neuronal, en la neurona j de su
capa de salida, bajo un patrón de entrada p, es:
epj = (dj-yj)

donde: dj, es la salida esperada en la neurona j,


yj, es la salida obtenida en la neurona j.

- El error Ep producido por una red neuronal, bajo un patrón de


entrada p, es:

Ep = ½ (ep21 + ep22+ep23+….+ep2m)

Para m nodos de salida.

- Además conocemos que, para una neurona j:

K K
 j   x j wkj   ykj wkj
k 1 k 1

Donde K es el número de neuronas conectadas a la neurona j

- Además sea el peso wij, que va desde la neurona i hasta al


neurona j de una capa siguiente:

i j
wij

wij = -(E/wij) ........................ según regla delta


E/wij = (E/j) (i/wij) ........... derivación por cadena
E/wij = (E/j) (xij)
j =-(E/j); delta (gradiente local) en la neurona j.
Así: wij = jxij

 : es el factor de aprendizaje
xij: es la entrada respecto al peso wij
j : delta de la neurona j
A diferencia del perceptrón, existen capas ocultas y una capa de
salida, cuyas neuronas influencian en distinto nivel al error de la red,
lo que origina diferencia en la actualización de pesos.

(1)Veamos cómo cambian los pesos para neuronas de la capa


de salida:

j = -(E/j ) =-(E/yj )* (yj/j ) =-(E/yj )* y’j(j)

E/yj = - [( ½(d1-y1)2 + ½(d2-y2)2 +. . .+ ½(dj-yj)2)+. .+


½(dn-yn)2 )/ yj
= -( ½ (dj-yj)2 )/ yj
= - (-(dj-yj)) = (dj-yj)

wij =  (dj-yj)*y’j(j)xij
y’j(j) = yj(1-yj)

wij =  (dj-yj)*yj(1-yj)xij

(2)Veamos cómo cambian los pesos para neuronas de capas


ocultas:

j = -(E/j ) =-(E/yj )* (yj/j ) =-(E/yj )* y’j(j)


E = E1 + E2 + EK
E/yj = (E1 + .. + EK) /yj ()
Ek/yj = (E/k )*( k/yj)
= (E/k )*(wjk)
= - k*wjk
E/yj = - (1*wj1 + 2*wi2 + ... +K*wjK)
j = (1*wj1 + 2*wi2 + ... +K*wjK) * y’j(j)

wij =  (1*wj1 + 2*wi2 + ... +K*wjK) * y’j(j)xij

Para toda neurona k, de la capa siguiente, conectada a la


neurona j de una capa oculta:
y’j(j) = yj(1-yj)

wij =  (1*wj1 + 2*wi2 + ... +K*wjK) * yj(1-yj)xij

El factor , debe ser lo suficientemente pequeño, para no causar


inestabilidad.
El proceso se repite por cada neurona, desde las neuronas de
salida, hasta que se llegue a un estado estacionario, o el error
para cada patrón sea lo suficientemente pequeño.

b. Incrementar la velocidad de aprendizaje (Término MOMENTO)

La velocidad de aprendizaje está gobernada por el factor de


aprendizaje  . Si éste llega a ser muy alto, es posible que el
aprendizaje llegue a ser inestable, oscilando alrededor de un
mínimo local. Una manera de resolver este problema es alterando
la regla de aprendizaje “gradiente decreciente”, incluyendo un
término “momento” que incluye una proporción del último
cambio efectuado. Así la nueva regla es:

wij = jxij + wijanterior

Si los cambios anteriores son altos significa que estamos lejos del
mínimo y debemos acelerar el aprendizaje. Por el contrario, si los
cambios son pequeños entonces estamos cerca al mínimo, por lo
que debemos modificar los pesos suavemente.
c. Algoritmo

1. Inicializar todos los pesos aleatoriamente.


2. Por cada patrón de entrada hacer

Propagar las entradas desde la capa de entrada hasta la capa


de salida, pasando por las capas ocultas. (Fase hacia
adelante)
Calcular el error de la red neuronal para el patrón ingresado.

Ep = ½ (ep21 + ep22+ep23+….+ep2n)

Donde n es el número de neuronas de salida.


(Fase hacia atrás)

Modificar los pesos asociados con las neuronas (j’s) de la


capa de salida
wij =  (dj-yj)*yj(1-yj)xij

Modificar los pesos asociados a las capas ocultas, desde la


última capa hacia la primera.

wij =  (1*wj1 + 2*wi2 + ... +K*wjK) * yj(1-yj)xij

Se puede agregar a cada cambio el término


“momento”.

3. Repetir el paso 2 hasta que la suma de los errores por


patrón (error total E) sea menor que un valor muy
pequeño, o se haya llegado a un estado estacionario.
d. Consideraciones

- Muchas veces, durante el aprendizaje, la red no llega al mínimo


global, estancándose en mínimos locales, mínimos que no son lo
suficientemente pequeños como para ser aceptados. En estos
casos, es aconsejable volver a empezar con otro conjunto de
pesos iniciales.
- No existen reglas que nos indiquen el número de capas que
debemos utilizar, así como tampoco existen reglas que
determinen el número de neuronas por capa.
- En general tres capas son suficientes (capa de entrada, capa
oculta y capa de salida), sin embargo dependiendo del problema
podemos tener redes con tres o cuatro capas. Es muy raro
encontrar aplicaciones que utilicen más de tres o cuatro capas.
- El número de neuronas de entrada y de salida se pueden
determinar fácilmente, dependiendo de la aplicación.
- En cada problema se debe ensayar con diferentes números de
neuronas, y así determinar el adecuado. Se debe tratar de utilizar
el mínimo número de neuronas.

7.3. Importancia del Estudio

La tecnología ahora presenta muchos avances, el ser humano se ha


preocupado por resolver día a día nuevos retos y paradigmas, problemas
que no se logran con modelos de programación simples. Ante la necesidad
de nuevos enfoques y técnicas para la resolución de estos problemas, nace
la idea de modelos que simulen el funcionamiento del cerebro humano, con
ellos las redes neuronales artificiales. Este nuevo enfoque, conforme ha ido
evolucionando ha proporcionado grandes resoluciones a problema, siendo
utilizado con mayor frecuencia en problemas de clasificación y asociación.
El modelo multicapa es una de las redes más utilizadas. Para el presente
trabajo se desarrolló un algoritmo que permita reconocer patrones (letras
del abecedario) utilizando este tipo de red, con el algoritmo de actualización
de pesos Back propagation. Este algoritmo aún puede ser mejorado y
utilizado a la vez para otras aplicaciones como reconocimiento de firmas,
huellas, etc.
7.4. Ejemplo de aplicación de una Red Neuronal Multicapa

Para poder explicar mejor el funcionamiento de una MLP, se procederá a


realizar un pequeño sistema que sea capaz de reconocer las vocales del
abecedario. Esta aplicación se hará con el algoritmo de backpropagation.

7.4.1. Diseño

a) ADQUISICION DE LA IMAGEN O PATRÓN

Es la etapa del reconocimiento de patrones, mediante la cual


se obtiene la imagen a ser procesada. En nuestro caso, la
aplicación solicita al usuario dibujar cada patrón en una matriz
de 7 X 5.

El programa utilizó una Tabla. La representación de la letra


está escrita como un arreglo en el que estén concatenadas
todas las filas de su representación matricial, junto con el valor
binario correspondiente.

01110100011000111111100011000110001

b) PRE-PROCESAMIENTO DE LA IMAGEN

Son las diferentes modificaciones que se hacen para mejorar


la calidad del patrón (Ejemplo: normalización, binarización,
filtrado, etc). En el estudio realizado este paso es obviado,
debido a que el patrón está bien determinado y es bastante
pequeño.
c) EXTRACCION DE CARACTERISTICAS

Es la etapa donde se recopila las características más


relevantes del patrón a reconocer, con el fin de acelerar el
proceso de reconocimiento.

d) CLASIFICACION

Es la etapa final del reconocimiento, donde los patrones


ingresados son clasificados mediante una red neuronal que ha
sido previamente entrenada.
En el ejemplo realizado, la red neuronal ha sido entrenada
para reconocer las vocales.

 Estructura de la RNA

o Para la elaboración de la red neuronal, se ha considerado


el modelo multicapa que cuenta con:

 una capa de entrada


 una capa oculta
 una capa de salida.

o La capa de entrada está compuesta por 35 neuronas (que


representan el código ASCCII de las vocales), obtenidas
luego de elaborar cada matriz.

o El número de neuronas de capa oculta han sido


consideradas iguales que las de la capa de entrada (35).

o Para el caso de la capa de salida, se ha considerado una


neurona.

o La salida esperada de la red neuronal, para cada uno de


los patrones entrenados es la siguiente:
 A (patrón 1) = 0.1
 E (patrón 2) = 0.2
 I (patrón 3) = 0.3
 O (patrón 4) = 0.4
 U (patrón 5) = 0.5

o Se ha considerado solamente un patrón de entrenamiento


por cada vocal, esto limita la eficiencia de la red y obliga a
que los patrones de testeo se asemejen más a los de
entrenamiento.

o Para el entrenamiento de la red neuronal, se ha utilizado el


algoritmo de backpropagation en el caso de la
actualización de pesos. Además, para mejorar la
minimización de error se utilizó la regla Delta.

o La red puede ser extendida para el reconocimiento de


todas las letras del abecedario, para ello será necesario
ampliar el número de patrones de entrenamiento.

 Patrones de entrenamiento

o Se han utilizado 5 patrones de entrenamiento, tal como se


indica, los cuales vienen a ser las vocales de abecedario.
 Patrones de Prueba

o Las pruebas han sido realizadas tomando 10 patrones de


prueba por cada patrón de entrenamiento.

 VOCAL “A”

 VOCAL “E”
 VOCAL “I”

 VOCAL “O”

 VOCAL “U”
7.4.2. Análisis y Discusión de resultados

- El factor de aprendizaje utilizado para el entrenamiento fue de


0.25.

- Para el número de iteraciones máximas se consideró 500 y para


el mínimo error: 0.0001.

- Después de realizadas las pruebas de reconocimiento, se


obtuvieron los resultados que se presentan en las tablas a
continuación:

Tabla N° 1:
Resultados obtenidos al ejecutar el reconocimiento de las vocales

N° Test A E I O U

1 0.08 0.16 0.43 0.29 0.43

2 0.05 0.16 0.29 0.37 0.42

3 0.29 0.33 0.42 0.27 0.47

4 0.07 0.18 0.34 0.37 0.46

5 0.32 0.16 0.31 0.37 0.48

6 0.09 0.25 0.32 0.28 0.53

7 0.13 0.25 0.39 0.49 0.46

8 0.08 0.19 0.27 0.37 0.54

9 0.17 0.34 0.18 0.39 0.22

10 0.08 0.22 0.41 0.38 0.54

Elaboración propia
Gráfico N° 1:
Resultados obtenidos al ejecutar el reconocimiento de las vocales
0.6

0.5

0.4 A
E
0.3
I
0.2 O
U
0.1

0
0 2 4 6 8 10 12

Elaboración propia

- Para poder clasificar la salida obtenida por cada patrón, se ha


procedido a separar por intervalos, de acuerdo a los valores
obtenidos, teniendo así:

 Vocal A (Intervalos de salida entre 0.5 y 0.15)


 Vocal E (Intervalos de salida entre 0.16 y 0.25)
 Vocal I (Intervalos de salida entre 0.26 y 0.35)
 Vocal O (Intervalos de salida entre 0.36 y 0.45)
 Vocal U (Intervalos de salida entre 0.46 y 0.56)

- Para resultados que se encuentren fuera de este rango, la red


reportará un mensaje indicando “Patrón desconocido”.
Tabla N° 2:
Tabla de rechazos y aciertos

Vocal Rechazos Aciertos

A 3 7

E 2 8

I 4 6

O 4 6

U 3 7

Elaboración propia

Gráfico N° 2
Rechazos y aciertos obtenidos en el programa
9
8
7
6
5
Rechazos
4
Aciertos
3
2
1
0
A E I O U

Elaboración propia

- Como podemos observar en el cuadro de resultados, el


reconocimiento más acertado está en el de la vocal E. Sin embargo,
existen muchas equivocaciones al momento de reconocer la vocal I
e O.
- Las posibles causas de los errores reportados en la red se debe a
la similitud entre los patrones de entrenamiento ingresados, los
parámetros de salida asignados a cada patrón, además de la
limitación que tiene el programa por haber sido entrenado con un
solo patrón por cada letra.

- La estructura de la red, por el hecho de tener una sola capa de


salida en la cual se trabajó las salidas obtenidas mediante
intervalos es otra de las causas de generación de error en la red.
Para tener una mejor respuesta en la salida, se recomendaría optar
por tener una salida por cada patrón a reconocer, en este caso,
cinco salidas.

- El tiempo de procesamiento del sistema es bastante corto. Para un


entrenamiento con 500 iteraciones, el tiempo de respuesta obtenido
fue de 16 milisegundos.
8. CONCLUSIONES Y RECOMENDACIONES

- El campo de las redes neuronales artificiales es un área todavía joven


del conocimiento científico. Sin duda es una herramienta sumamente
potente aplicada a resolver diferentes problemas tanto de clasificación
y evaluación. Aún así, no se ha encontrado la forma más eficiente de
explotarla puesto que, aún con las grandes computadoras de hoy en
día lleva bastante tiempo entrenar una red compleja, incluso
empleando los algoritmos más avanzados de backpropagation.

- El modelo MLP es utilizado con gran éxito actualmente. Las áreas


donde se aplica más este algoritmo es: reconocimiento de patrones,
clasificación de data.

- Un aspecto importante a tener en cuenta para la búsqueda de solución


mediante redes neuronales es la calidad de los datos de entrada
(patrones de entrenamiento).
Estos deben ser lo suficientemente adecuados, que cubran todos los
problemas que se puedan presentar a la red, dependiendo del tipo de
trabajo que tenga que realizar. En el presente trabajo la limitación de
obtener mejores resultados está en los patrones que se utilizaron para
el entrenamiento (un patrón por cada caracter).

- Otra observación que se puede hacer a la red neuronal es el parecido


de los patrones usados para el entrenamiento. Una alternativa sería
utilizar patrones cuyo parecido sea lo más alejado posible o también
ampliar el vector de características de la capa de entrada, otra
alternativa es incrementar el número de salidas de acuerdo al número
de patrones que reconoce la red. Esto permitirá una mejor obtención
de resultados.
- Se recomienda en trabajos futuros, para mejorar la presente
implementación, utilizar más de un patrón de entrenamiento para cada
carácter.

- El sistema puede ser ampliado para el reconocimiento de todas las


letras del abecedario, así como los números, símbolos, entre otros.

- Así mismo, al verificar cierto grado de certeza de las respuestas


obtenidas con esta simple aplicación, podemos concluir también que
en otros trabajos más complejos de reconocimientos de patrones, los
resultados se pueden mejorar, teniendo en cuenta las
recomendaciones antes mencionadas.
9. REFERENCIAS BIBLIOGRÁFICAS

[1] Isasi Viñuela, Pedro y Galván, Inés M., “Redes de Neuronas Artificiales:
Un Enfoque Práctico” Editorial: Pearson Educacion 2004

[2] Las redes neuronales artificiales y su importancia como herramienta en


la toma de decisiones. Villanueva Espinoza, María del Rosario. UNMSM
http://sisbib.unmsm.edu.pe/Bibvirtual/tesis/Basic/Villanueva_EM/Contenido.
htm
Consultado en Octubre, 2010

[3] Redes Neuronales Artificiales y principales tipos- Perceptrón,


Universidad Tecnológica de Pereira, Colombia,
http://ohm.utp.edu.co/neuronales/Download/Perceptron.pdf
Consultado en Octubre, 2010

[4] Redes Neuronales Artificiales, Andrés Nacelle, Universidad de la


República - Uruguay
http://www.nib.fmed.edu.uy/Seminario%202009/Monografias%20seminario
%202009/Nacell-Redes%20NeuronalesImplementacion.pdf
Consultado en Octubre, 2010

[5] Reconocimiento de patrones mediante Redes neuronales, Emiliano


Aldabas Rubira, UPC-Campus Terrassa-DEE-EUETIT, Barcelona
http://www.jcee.upc.es/JCEE2002/Aldabas.pdf
Consultado en Octubre, 2010

[6] Redes Neuronales, Pedro Larrañaga, Iñaki Inza, Abdelmalik Moujahid,


Universidad del País, Vasco – España
http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t8neuronales.pdf
Consultado en Octubre, 2010
[7] Introducción a las Redes Neuronales Artificiales, Marcos Gestal Pose,
Departamento de Tecnologías de la Información y Comunicaciones,
universidad de Coruña, España
http://sabia.tic.udc.es/mgestal/cv/%5BCV%5D%20-
%20Marcos%20Gestal.pdf
Consultado en Octubre, 2010

[8] Redes Neuronales – Perceptrón Multicapa, José Maria Valls


http://eva.evannai.inf.uc3m.es/et/docencia/rn-inf/documentacion/Tema3-
MLP.pdf
Consultado en Noviembre, 2010

[9] Redes Neuronales y Reconocimiento de Patrones, Luis Alonso Romero


y Teodoro Calonge Cano, Universidad de Salamanca – España
http://gredos.usal.es/jspui/bitstream/10366/55893/1/DIA_Redes%20neurona
les.pdf
Consultado en Octubre, 2010

[10] Redes Neuronales: Conceptos básicos y aplicaciones, Damián Jorge


Matich, Universidad Tecnológica Nacional, España
ftp://decsai.ugr.es/pub/usuarios/castro/Material-Redes-
Neuronales/Libros/matich-redesneuronales.pdf
Consultado en Octubre, 2010
10. ANEXOS

 Ingreso de patrones a la red


 Etapa de testeo
 Tiempo de entrenamiento

Das könnte Ihnen auch gefallen