Post on 11-Dec-2015
description
Investigación Redes Neuronales
Definición, fundamentos y aplicaciones.
Alumnos: Ignacio Jofré Valenzuela. Paula Castillo Jiménez Fecha entrega: 29/05/2015 Docente: Carlos Pulgar. Asignatura: Control Automático II
2
Índice
Contenido N° de página
-Índice 2
-Introducción 3
-Capitulo 1: Sistemas de control basado en redes neuronales. 4 1.1 Arquitectura básica redes neuronales. 5 1.1.1 Analogía con cerebro humano. 5-6 1.1.2 Redes neuronales artificiales. 7-8
1.2 Funcionamiento de las redes neuronales. 1.2.1 Composición de las redes neuronales. 9 1.2.1.1 Neurona artificial. 10-11 1.2.1.2 Función de activación. 11-14 1.2.1.3 Función de salida y pesos sinápticos. 14 1.2.1.4 Reglas de propagación. 15 1.3 Características de las redes neuronales 15 1.4 Clasificación de las redes neuronales. 16
1.4.1 Clasificación RNA según su arquitectura. 16 1.4.2 Redes neuronales estáticas y dinámicas. 17 1.4.2.1 Redes neuronales estáticas. 18-19 1.4.2.2 Redes neuronales dinámicas. 20 1.4.3 Clasificación de RNA según su aprendizaje. 21-22
-Capitulo 2: Aplicaciones de las redes neuronales artificiales. 23
2.1 Aplicación RNA al reconocimiento de patrones. 23-25 2.2 RNA Perceptrón y el avance. 26
2.2.1 Perceptrón multicapa. 27 2.2.2 Entrenamiento de una red perceptrón. 27-28 2.2.3 Inconvenientes de una red modelo perceptrón. 28 2.3 Algoritmo Backpropagation. 29 2.3.1 Método de entrenamiento del algoritmo. 30-32 2.3.2 Ventajas y desventajas del algoritmo backpropagation. 32 2.4 Metodología para modelar una RNA. 33 2.4.1 Imagen de muestra para análisis de patrones. 34 2.4.1.1 Selección de muestra. 34-35 2.4.1.2 Tomar imagen digital, a vector matricial. 38 2.4.1.3 Neuronas en capa de entrada y salida. 39 2.4.1.4 Generar datos de salida. 40 2.4.1.5 Entrenamiento de la red neuronal. 40-45 2.4.1.6 Reconocimiento real de una muestra. 45- 47 2.5 Ventajas y limitaciones de las RNA. 48
-Conclusión 49
3
Introducción
Los sistemas actuales que buscamos controlar se han vuelto muy complejos, la mayoría
de ellos presentan algún grado de no linealidad, y pueden ser variantes e invariantes en
el tiempo, presentan incertidumbres en sus entradas y en su estructura.
Uno de los métodos que más interés ha despertado en la teoría de control de sistemas no
lineales que pueden resolver los problemas mencionados anteriormente es el control a
través de la inteligencia artificial, el cuál incorpora técnicas como las redes neuronales
artificiales y los sistemas difusos.
Las redes neuronales artificiales son un tipo especial de estructura matemática las cuáles
se basan en el modelo biológico de las neuronas del cerebro. Una red neuronal tiene la
propiedad de ajustar automáticamente sus parámetros mediante una regla llamada
algoritmo de aprendizaje, generalmente este algoritmo se basa en la retro propagación del
error, así la red puede aproximar una función no lineal con una gran exactitud.
En esta investigación analizaremos el funcionamiento integral de las redes neuronales
artificiales en un sistema de control no lineal basado en el reconocimiento integral de
patrones, donde se analizaran métodos paso a paso de la configuración de una red
neuronal, como está conformada su arquitectura interna y cuáles son las diferentes
aplicaciones que podemos obtener basado en estar redes neuronales artificiales.
Al estar basado en el reconocimiento de patrones (o imagen), se generara el proceso de
la conformación de datos de entrada a valores vectoriales basado en una matriz de datos
binarios, para que posteriormente sean reconocidos por nuestra red neuronal y se aplique
un debido algoritmo de aprendizaje, para lograr comprender como se realiza el
aprendizaje y retención de la información que adquiere nuestra red.
Así finalmente lograr comprender la interpretación de los datos entregados por nuestra
red neuronal artificial (datos de salida), acompañados de un amplio marco teórico, y su
aplicación práctica.
4
Capitulo 1: Sistemas de Control Basado en redes
neuronales.
Las Redes Neuronales (ANN) son parte de la Inteligencia Artificial (AI) caracterizadas por
su capacidad de aprendizaje, su velocidad mediante el procesamiento masivo en paralelo
de datos y por la facilidad del modelado de sistemas o controladores altamente no
lineales.
Las Redes Neuronales Artificiales, ANN (Artificial Neural Networks) están inspiradas en
las redes neuronales biológicas del cerebro humano. Están constituidas por elementos
que se comportan de forma similar a la neurona biológica en sus funciones más comunes.
Estos elementos están organizados de una forma parecida a la que presenta el cerebro
humano.
Las ANN al margen de presentar similitudes al cerebro humano presentan una serie de
características propias del cerebro. Por ejemplo las ANN aprenden de la experiencia,
generalizan de ejemplos previos a ejemplos nuevos y abstraen las características
principales de una serie de datos.
Inteligencia Artificial: Capacidad de un artefacto de simular tipos de funciones que
caracterizan al pensamiento humano.
Aprender: Adquirir el conocimiento de una cosa por medio del estudio, ejercicio o
experiencia. Las ANN pueden cambiar su comportamiento en función del entorno. Se les
muestra un conjunto de entradas y ellas mismas se ajustan para producir unas salidas
consistentes.
Generalizar: Extender o ampliar una cosa. Las ANN generalizan automáticamente debido
a su propia estructura y naturaleza. Estas redes pueden ofrecer, dentro de un margen,
respuestas correctas a entradas que presentan pequeñas variaciones debido a los efectos
de ruido o distorsión.
Abstraer: Aislar mentalmente o considerar por separado las cualidades de un objeto.
Algunas ANN son capaces de abstraer la esencia de un conjunto de entradas que
aparentemente no presentan aspectos comunes o relativos.
5
1.1 Arquitectura Básica de las redes neuronales.
1.1.1 Analogía con el cerebro humano.
La neurona es la unidad fundamental del sistema nervioso y en particular del cerebro
humano. Cada neurona es una simple unidad procesadora que recibe y combina señales
desde y hacia otras neuronas. Si la combinación de entradas es suficientemente fuerte la
salida de la neurona se activa. La siguiente figura muestra las partes que constituyen una
neurona.
Figura (1.1) - Componentes de una Neurona biológica.
El cerebro consiste en uno o varios billones de neuronas densamente interconectadas.
El axón (salida) de la neurona se ramifica y está conectada a las dendritas (entradas) de
otras neuronas a través de uniones llamadas sinapsis. La eficacia de la sinapsis es
modificable durante el proceso de aprendizaje de la red.
Axón: Es una prolongación de las neuronas especializadas en conducir el impulso
nervioso desde el cuerpo celular o soma hacia otra célula. En la neurona adulta se trata
de una prolongación única.
Dendritas: Son prolongaciones ramificadas de la neurona dedicadas principalmente a la
recepción de estímulos y, secundariamente, a la alimentación celular. Sirven como
receptores de impulsos nerviosos provenientes desde un axón perteneciente a otra
neurona. Su principal función es recibir los impulsos de otras neuronas y enviarlas hasta
el soma de la neurona.
6
Una de las características principales de las neuronas, y que la distinguen del resto de las
células del cuerpo humano, es su capacidad de comunicarse entre las propias neuronas.
Existen dos (2) tipos de señales nerviosas, las que pueden ser eléctricas o químicas. La
transmisión química se da principalmente en la comunicación entre neuronas, mientras
que la eléctrica se produce dentro de una neurona.
La forma de comunicación entre las neuronas se inicia en el soma de las neuronas
transmisoras o pre sinápticas, donde se genera un pulso eléctrico llamado potencial de
acción. El pulso eléctrico se propaga a través del axón en dirección a las sinapsis. La
información se transmite a las neuronas vecinas utilizando un proceso químico, mediante
la liberación de neurotransmisores. Estos mismos neurotransmisores se transmiten a
través de la sinapsis hacia la neurona receptora, y a su vez, esta misma neurona
receptora o post sináptica toma la señal enviada por cientos de neuronas a través de las
dendritas y la transmite al cuerpo celular. Estas señales pueden ser excitadoras
(positivas) o inhibidoras (negativas).
Soma: es el encargado de integrar la información proveniente de las distintas neuronas, y
si la señal resultante supera un determinado umbral (umbral de disparo) el soma emite un
pulso que se transmite a lo largo del axón dando lugar a la transmisión eléctrica a lo largo
de la neurona. Al llegar la señal al extremo del axón se liberan neurotransmisores que
permiten transmitir la señal a las neuronas vecinas.
El número estimado de neuronas en el cerebro humano es de 10^11 y las interconexiones
entre ellas son del orden de 10^15.
Figura (1.2) – Grafica de la composición de una Neurona biológica.
7
1.1.2 Redes neuronales Artificiales.
En las Redes Neuronales Artificiales (ANN) la unidad análoga a la neurona biológica es el
elemento procesador, “PE” (process element). Un elemento procesador tiene varias
entradas y las combina, normalmente con una suma básica.
La suma de las entradas es modificada por una función de transferencia y el valor de la
salida de esta función de transferencia se pasa directamente a la salida del elemento
procesador.
La salida del PE se puede conectar a las entradas de otras neuronas artificiales (PE)
mediante conexiones ponderadas correspondientes a la eficacia de la sinapsis de las
conexiones neuronales.
La siguiente figura representa un elemento procesador de una red neuronal artificial
implementada en un ordenador.
Figura (1.3) - Diagrama de una Neurona Artificial (PE).
Las redes neuronales artificiales son un modelo simplificado de las redes neuronales
biológicas, se pueden clasificar dentro del grupo de sistemas inteligentes, entre los que se
encuentran: sistemas adaptables, difusos, genéticos y todos aquellos que tratan de
modelar el conocimiento y el aprendizaje.
La calificación de inteligentes se debe a que los sistemas mencionados anteriormente
tienen la capacidad de adaptarse a su medio ó aprender de él de forma autónoma. Las
redes neuronales artificiales pueden definirse como un arreglo de elementos básicos de
procesamiento con capacidad de entrenamiento.
8
Este entrenamiento consiste en el ajuste de algunos parámetros con el fin de que la red
asimile, con algún grado de precisión, la relación causa-efecto deseada entre las variables
de entrada y de salida de la red neuronal.
Figura (1.4) - Arquitectura de una Red Neuronal Simple.
En el campo del control automático, las redes neuronales artificiales se utilizan
principalmente como modelos para la identificación y el control de sistemas. La
identificación de sistemas consiste en ajustar los parámetros de un modelo propuesto, de
tal forma que su comportamiento se aproxime al sistema o planta a ser estudiado.
La tarea de la identificación de sistemas es obtener modelos matemáticos que
reproduzcan la relación entre las variables que intervienen en el sistema estudiado, las
redes neuronales artificiales tienen una aplicación directa en el campo de identificación de
sistemas debido a su capacidad de generalización a partir de la relación entrada-salida
del sistema. La generalización de la red neuronal se efectúa aplicando un conjunto de
entradas diferentes a las usadas en la etapa de aprendizaje y se observa su respuesta,
esperando que reproduzca con cierto grado de precisión la respuesta del sistema
identificado. Por otro lado, el problema de control busca diseñar un sistema que genere la
señal de entrada a la planta necesaria para modi.car su comportamiento con el fin de que
se comporte de la forma deseada.
9
1.2 Funcionamiento de las redes neuronales.
1.2.1 Composición de las redes neuronales.
Para el uso y correcto funcionamiento de las redes neuronales, es imprescindible contar
con elementos básicos de funcionamiento de sistemas neuronales, los que se pueden
definir como:
1) Un conjunto de unidades de procesamiento (neuronas).
2) Un estado de activación (variable de estado).
3) Una función de salida para cada unidad.
4) Pesos sinápticos
5) Un conjunto de reglas de propagación para propagar las señales de salida a través
de la red neuronal.
Figura (1.5) – Composición interna de una neuronal Simple.
10
1.2.1.1 Neurona Artificial.
La neurona artificial fue diseñada para "emular" las características del funcionamiento
básico de la neurona biológica. En esencia, se aplica un conjunto de entradas a la
neurona, cada una de las cuales representa una salida de otra neurona. Cada entrada se
multiplica por su "peso" o ponderación correspondiente, que se identifica con el grado de
conexión de la sinapsis. Todas las entradas ponderadas se suman y se determina el nivel
de excitación o activación de la neurona.
Una representación del funcionamiento básico de una neurona artificial se indica según la
siguiente ecuación:
NET= X * W.
Donde NET, representa la función de salida de nuestra neurona artificial.
X corresponde a un vector de entrada en la neurona.
Y finalmente W, corresponde al peso sináptico de la neurona.
Normalmente la señal de salida NET suele ser procesada por una función de activación
F, la que sirve para producir la señal de salida de la neurona OUT. La función F puede ser
una función lineal, una función umbral o una función no lineal que simula con mayor
exactitud las características de transferencia no lineales de las neuronas biológicas.
Figura (1.6) –Neurona artificial con función de activación.
11
Existen dos capas con conexiones con el mundo exterior. Una capa de entrada, o buffer
de entrada, donde se presentan ingresos de datos desde el ambiente a la red, y una capa
buffer de salida que mantiene la respuesta de la red a una entrada, enviando datos fuera
de la neurona artificial. El resto de las capas reciben el nombre de capas ocultas, las que
solo reciben señales de unidades que pertenecen a la red.
Figura (1.7) –Capas de una red neuronal para comunicación.
1.2.1.2 Función de activación.
La función de activación determina el estado de activación actual de la neurona en base al
potencial resultante y al estado de activación anterior de la neurona.
Los valores de activación pueden ser discretos o continuos, y limitados o ilimitados.
Existen diferentes tipos de funciones de activación en las redes neuronales:
a) Función escalón de activación o desactivación:
Esta función es frecuentemente denominada escalón de dos (2) posiciones. La salida de esta
función es, o bien una constante positiva, una constante negativa o simplemente esa cero (0).
Esta función posee una discontinuidad en un punto que imposibilita la evaluación de la derivada
en dicho punto.
12
Figura (1.8) –Representación de las curvas de las funciones de familia escalón de dos (2)
posiciones.
13
b) Función sigmoidal asimétrica:
Es una función binaria, continua, y totalmente diferenciable durante todo su dominio.
Figura (1.9) –Representación de las curvas de la función sigmoidal asimétrica.
c) Función sigmoidal simétrica:
Esta función también llamada tangente hiperbólica, es completamente diferenciable en todo su
dominio, monótonamente creciente y posee una característica bipolar.
Figura (1.10) –Representación de las curvas de la función sigmoidal simétrica.
14
d) Función Lineal:
Esta función posee una característica del tipo lineal, la que no posee límites en su rango.
Figura (1.11) –Representación de las curvas de la función Lineal.
1.2.1.3 Función de Salida y pesos sinápticos.
La función de salida proporciona el valor de salida de la neurona, en base al estado de
activación de la neurona.
En general se utiliza una función de activación sin límites en su rango de operación.
Representa la salida actual de la neurona.
Los pesos sinápticos definen la fuerza de una conexión sináptica entre dos neuronas, la
neurona pre sináptica y la neurona post sináptica.
Los pesos sinápticos pueden tomar valores positivos, negativos o cero. En caso de una
entrada positiva, un peso positivo actúa como excitador, mientras que un peso negativo
actúa como inhibidor. En caso de que el peso sea cero, no existe comunicación entre el
par de neuronas.
Mediante el ajuste de los pesos sinápticos la red es capaz de adaptarse a cualquier
entorno y realizar una determinada tarea.
15
1.2.1.4 Reglas de propagación.
Las reglas de propagación Integran la información proveniente de las distintas neuronas
artificiales y proporciona el valor del potencial postsináptico de la neurona en la red.
La regla de propagación determina el potencial resultante de la interacción de la neurona
con las enes (n) cantidad de neuronas vecinas.
La regla de propagación más simple y utilizada consiste en realizar una suma de las
entradas ponderadas con sus pesos sinápticos correspondientes, donde el potencial
resultante como h se puede expresar de la siguiente manera:
Donde hNET, representa la función de salida de nuestra neurona artificial en base a la
regla de propagación con el potencial sináptico h, con la sumatoria total de los vectores de
entradas de las neuronas, y los pesos sinápticos de cada una de ellas.
X corresponde a un vector de entrada en la neurona.
Y finalmente W, corresponde al peso sináptico de la neurona.
Existen otro tipo de reglas menos conocidas como la distancia de Voronoi, de
Mahalanobis, entre otras.
1.3 Características principales de las redes neuronales.
Como principales características de las redes neuronales artificiales, que en efecto son
muy semejantes a las de las redes neuronales biológicas, podemos mencionar las
siguientes:
Aprenden a través de ejemplos concretos, y el método del entrenamiento.
Inferencia estadística.
Poseen gran adaptabilidad en sistemas.
Dilema plasticidades y estabilidad.
Capacidades de generalización.
Gran tolerancia a fallas.
Rápida implantación.
16
1.4 Clasificación de las redes neuronales.
Las redes neuronales artificiales se pueden clasificar según su diferente arquitectura,
según el tipo de aprendizaje y según sus aplicaciones.
Figura (1.12) – Diagrama de clasificación de redes neuronales.
1.4.1 Clasificación de redes neuronales según su arquitectura.
Las neuronas de una red neuronal artificial, están distribuidas en diversos niveles o capas
que están unidas entre sí por conexiones llamadas sinapsis.
La clasificación según arquitectura se basa en el sentido de sus conexiones entre
neuronas, las que pueden ser estáticas (no recurrentes o con conexión hacia adelante) y
dinámicas (recurrentes o con conexión hacia atrás).
17
1.4.2. Redes neuronales Estáticas y dinámicas.
Otra clasificación que presentan las redes neuronales se base en la manera en que la
información se transmite en la red. Se dividen en dos grupos: redes con conexiones hacia
adelante (estáticas) y redes con conexiones hacia atrás ó recurrentes (dinámicas).
La selección de una red se realiza en función de las características del problema a
resolver. La mayoría de éstos casos se pueden clasificar en aplicaciones de Predicción,
Clasificación, Asociación, Conceptualización, Filtrado y Optimización.
Los tres primeros tipos de aplicaciones requieren un entrenamiento supervisado,
entrenamiento que profundizaremos más adelante.
Figura (1.13) –Clasificación de redes neuronales dinámicas y estáticas.
18
1.4.2.1 Redes neuronales Estáticas.
Se dice que una red neuronal es estática si la respuesta de una red depende únicamente
de sus entradas y no depende de señales en instantes anteriores de tiempo, por lo que la
respuesta de la red neuronal es invariante en el tiempo.
Este tipo de red, que se caracteriza por su organización en capas y conexiones
estrictamente hacia delante, utiliza algoritmos de entrenamiento del tipo supervisado.
Las redes neuronales estáticas son muy útiles en los problemas de clasificación e
identificación de patrones y aproximación de funciones porque construyen funciones no
lineales entre el espacio de entrada al espacio de salida de las variables involucradas.
Una red neuronal con conexiones hacia adelante con una capa oculta no lineal y una capa
de salida lineal puede aproximar cualquier función con el grado de precisión que se
desee.
Dentro de este grupo de redes neuronales encontramos al perceptrón, la red
adaline/madaline, y al perceptrón multicapa.
Son aquellas cuyas conexiones son hacia adelante y unidireccionales, y según el número
de capas que posean pueden ser de 2 tipos: De una capa, y multicapa.
Redes neuronales de una capa y multicapa.
La capacidad de cálculo y potencia de la computación neuronal proviene de la cantidad de
conexiones de las neuronas artificiales que constituyen las redes ANN.
En una red neuronal de una capa, cada una de las entradas de la neurona está
conectada a través de su peso correspondiente a cada neurona artificial.
En la práctica existen conexiones eliminadas e incluso conexiones entre las salidas y
entradas de las neuronas de una capa. No obstante para el estudio de las redes
neuronales se debe ejemplificar una conectividad total por razones de generalización.
Normalmente las redes más complejas y más grandes ofrecen mejores prestaciones en el
cálculo computacional que las redes simples. Las configuraciones de las redes
construidas presentan aspectos muy diferentes pero tienen un aspecto común, el
ordenamiento de las neuronas en capas o niveles imitando la estructura de capas que
presenta el cerebro en algunas partes.
19
Figura (1.14) –Representación de una red neuronal de una capa.
Las redes multicapa se forman con un grupo de capas simples en cascada. La salida de
una capa es la entrada de la siguiente capa. Se ha demostrado que las redes multicapa
presentan cualidades y aspectos por encima de las redes de una capa simple.
Estas redes neuronales están construidas por neuronas organizadas en capas, donde
cada nivel intermedio de la red tiene como entrada a todas ó a un conjunto de las salidas
de la capa anterior.
La primera capa es la entrada a la red, su función es la distribuir las entradas de la red en
la primera capa oculta, la capa dos está localizada entre la primera capa y la última capa,
se denomina capa oculta, y finalmente la última capa genera las salidas de la red
neuronal. El flujo de la información se transmite en un sólo sentido, de manera que una
red neuronal multicapa es un mapeo no lineal del espacio de entrada, al espacio de
salida.
Figura (1.15) –Representación de una red neuronal multicapa.
20
1.4.2.2 Redes neuronales Dinámicas.
Hay problemas que necesitan de un sistema que tenga una respuesta dependiente de su
estado anterior, por lo que requieren de una estructura que tenga una dinámica interna
propia.
Si la respuesta de una red neuronal depende de su pasado, se dice que es una red
neuronal dinámica. Algunas de las tareas para este tipo de redes son: La predicción de
series, la identificación y el control de sistemas dinámicos.
Figura (1.16) –Representación de una red neuronal dinámica.
La figura 1.16 está mostrando las diferentes arquitecturas de las redes dinámicas.
Las figuras (a) y (b) muestran redes con recurrencia local, la primera una recurrencia en
la misma capa y la segunda muestra una recurrencia entre las capas ocultas.
Las figuras (c) y (d) muestran una recurrencia global, donde la retroalimentación va de la
salida de la red a la entrada y en el segundo caso la retroalimentación solo llega a la
segunda capa de la red.
21
1.4.3 Clasificación de redes neuronales según su aprendizaje.
Una de las principales características de las ANN es su capacidad de aprendizaje. El
entrenamiento de las ANN muestra algunos paralelismos con el desarrollo intelectual de
los seres humanos. No obstante aun cuando parece que se ha conseguido entender el
proceso de aprendizaje conviene ser moderado porque el aprendizaje de las ANN está
limitado.
El objetivo del entrenamiento de una ANN es conseguir que una aplicación determinada,
para un conjunto de entradas produzca el conjunto de salidas deseadas o mínimamente
consistentes.
El proceso de entrenamiento consiste en la aplicación secuencial de diferentes conjuntos
o vectores de entrada para que se ajusten los pesos de las interconexiones según un
procedimiento predeterminado. Durante la sesión de entrenamiento los pesos convergen
gradualmente hacia los valores que hacen que cada entrada produzca el vector de salida
deseado.
La mayoría de los métodos de entrenamiento utilizados en las redes neuronales con
conexión hacia delante consisten en proponer una función de error que mida el
rendimiento actual de la red en función de los pesos sinápticos. El método de optimización
proporciona una regla de actualización de los pesos que en función de los patrones de
entrada modifica iterativamente los pesos hasta alcanzar el punto óptimo de la red
neuronal.
Los algoritmos de entrenamiento o los procedimientos de ajuste de los valores de las
conexiones de las ANN se pueden clasificar en dos grupos: Supervisado y No
Supervisado.
Entrenamiento Supervisado: Estos algoritmos requieren el emparejamiento de cada
vector de entrada con su correspondiente vector de salida. El entrenamiento consiste en
presentar un vector de entrada a la red, calcular la salida de la red, compararla con la
salida deseada, y el error o diferencia resultante se utiliza para realimentar la red y
cambiar los pesos de acuerdo con un algoritmo que tiende a minimizar el error.
Las parejas de vectores del conjunto de entrenamiento se aplican secuencialmente y de
forma cíclica. Se calcula el error y el ajuste de los pesos por cada pareja hasta que el
error para el conjunto de entrenamiento entero sea un valor pequeño y aceptable.
22
Entrenamiento No Supervisado: los sistemas neuronales con entrenamiento
supervisado han tenido éxito en muchas aplicaciones y sin embargo tienen muchas
críticas debido a que desde el punto de vista biológico no son muy lógicos. Resulta difícil
creer que existe un mecanismo en el cerebro que compare las salidas deseadas con las
salidas reales. En el caso de que exista, ¿de dónde provienen las salidas deseadas?
Los sistemas no supervisados son modelos de aprendizaje más lógicos en los sistemas
biológicos.
Estos sistemas de aprendizaje no supervisado no requieren de un vector de salidas
deseadas y por tanto no se realizan comparaciones entre las salidas reales y salidas
esperadas. El conjunto de vectores de entrenamiento consiste únicamente en vectores de
entrada. El algoritmo de entrenamiento modifica los pesos de la red de forma que
produzca vectores de salida consistentes. El proceso de entrenamiento extrae las
propiedades estadísticas del conjunto de vectores de entrenamiento y agrupa en clases
los vectores similares.
Entrenamiento por Corrección de Error: El entrenamiento consiste en presentar al
sistema un conjunto de pares de datos, representando la entrada y la salida deseada para
dicha entrada. Este conjunto recibe el nombre de conjunto de entrenamiento. El objetivo
es tratar de minimizar el error entre la Salida Deseada y la salida actual.
Figura (1.17) –Entrenamiento por corrección del error.
23
Capitulo 2: Aplicaciones de las redes neuronales
artificiales.
Las redes neuronales artificiales son una tecnología computacional emergente que puede
utilizarse en un gran número y variedad de aplicaciones.
Las redes neuronales artificiales están destinadas o consideradas a ser sistemas que
resuelven eficazmente problemas de emparejamiento, clasificación y complemento de
vectores patrones, donde sus aplicaciones más comunes, podemos mencionar las
siguientes: Análisis Financiero; Procesado de Imágenes en el ámbito de la Medicina,
Industria y Defensa; Diagnóstico Médico y Comercial; Robótica y Control; Reconocimiento
y Síntesis de Voz; Compresión y Codificación de Información, y la clasificación e
identificación de patrones.
2.1 Aplicación de redes neuronales al reconocimiento de
patrones.
El reconocimiento de patrones llamado también lectura de patrones, identificación de
figuras y reconocimiento de formas consiste en el reconocimiento de patrones de señales.
Los patrones se obtienen a partir de los procesos de segmentación, extracción de
características y descripción dónde cada objeto queda representado por una colección de
descriptores. El sistema de reconocimiento debe asignar a cada objeto su categoría o
clase.
Las Redes neuronales artificiales de Reconocimiento de Patrones, son del tipo no
recurrente y con aprendizaje supervisado donde se hace necesario ejecutar un proceso
estructurado, el cual está definido por 3 pasos lógicos:
Figura (2.1) –Estructura general del proceso de reconocimiento de patrones.
24
El objetivo de un sistema completo de reconocimiento de patrones, es asignar un patrón a
la clase a la que pertenece (aplicando un proceso automático, lo más eficiente posible).
Un sistema debe incluir un sensor que recoja fielmente los elementos del ambiente a ser
clasificado, un mecanismo de extracción de características cuyo propósito es extraer la
información útil, eliminando la información redundante y sin importancia, y finalmente una
etapa de toma de decisiones en la cual se asigna a la categoría apropiada los patrones de
clasificación.
Figura (2.2) –Estructura básica del proceso de reconocimiento de patrones.
En esta estructura básica de reconocimiento de patrones se pueden identificar 3
elementos fundamentales, los que podemos destacar como:
Elemento sensor.
Extractor de características.
Clasificador.
El sensor es el dispositivo encargado de la adquisición de datos y tiene como función la
de ser capaz de transformar magnitudes físicas o químicas, llamadas variables de
instrumentación. Las variables de instrumentación dependen del tipo de sensor y pueden
ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación,
desplazamiento, presión, fuerza, torsión, humedad, etc.
Para nuestro caso, este elemento sensor, es el que genera una “imagen de referencia”, la
cual deberá ser ingresada en nuestro algoritmo, y ser clasificada según el método de
aprendizaje de nuestra red neuronal.
25
La extracción de características el proceso de generar características que puedan ser
usadas en el proceso de clasificación de los datos. En ocasiones viene precedido por un
preprocesador de la señal, necesario para corregir posibles deficiencias en los datos
debido a errores del sensor, o bien para preparar los datos de cara a posteriores procesos
en las etapas de extracción de características o clasificación.
Las características elementales están explícitamente presentes en los datos adquiridos y
pueden ser pasados directamente a la etapa de clasificación.
Las características de alto orden son derivadas de las elementales y son generadas por
manipulaciones o transformaciones en los datos.
Y finalmente el elemento clasificador consiste en seleccionar cuál es el tipo de
características o rasgos más adecuados para describir los objetos. Para ello, se deben
localizar los rasgos que inciden en el problema de manera determinante, la cual tiene
como objetivo decidir qué características representan mejor a cierto tipo de objetos,
seleccionar características relevantes, a partir del conjunto total de características que
describen a los objetos para mejorar la clasificación o aumentar la velocidad de
procesamiento.
26
2.2 Red Neuronal “PERCEPTRON” y el avance en reconocimiento
de patrones.
El primer modelo de red neuronal artificial fue desarrollado por Rosenblatt en el año 1958,
este modelo despertó un enorme interés en los años 60, debido a su capacidad para
aprender a reconocer patrones sencillos: un modelo de red llamado Perceptrón, formado
por varias neuronas lineales para recibir las entradas a la red y solo una neurona de
salida.
La arquitectura del Perceptrón, llamada mapeo de patrones (pattern-mapping), aprende a
clasificar modelos mediante un aprendizaje supervisado. Los modelos que clasifica suelen
ser generalmente vectores con valores binarios (0,1) y las categorías de la clasificación se
expresan mediante vectores binarios.
El Perceptrón presenta dos capas de unidades procesadoras (PE) y sólo una de ellas
presenta la capacidad de adaptar o modificar los pesos de las conexiones. La arquitectura
del Perceptrón admite capas adicionales pero éstas no disponen la capacidad de
modificar sus propias conexiones.
Figura (2.3) - Unidad Procesadora Básica del Perceptrón.
La unidad procesadora del Perceptrón realiza la suma ponderada de todas las entradas
de nuestra red, donde el Perceptrón comprueba si la suma de las entradas ponderadas es
mayor o menor que un cierto valor umbral y genera la salida " NET", que está comandada
por las siguientes condiciones.
Si la sumatoria de entradas es > 0 entonces salida NET = 1
Si la sumatoria de entradas es <= 0 entonces salida NET = 0
La salida NET es transmitida a lo largo de la línea de salida y constituye uno de los
componentes del vector de salida de la red.
27
2.2.1 Perceptron multicapa. La arquitectura típica de una red neuronal artificial con modelo Perceptrón Multicapa está
constituida por varias capas de nodos con interconexión completa entre ellos.
El caso más sencillo en este tipo de red consiste en sólo 2 capas de neuronas, las de
entrada y las de salida.
De esta manera podemos obtener un modelo adecuado para problemas lineales del tipo
de la regresión lineal múltiple
Figura (2.4) – Configuración de arquitectura del Perceptrón multicapa.
En este tipo de red, una neurona recibe distintas entradas y activa una función de red (o
regla de propagación) con unos pesos de entrada asociados.
La computación de estos pesos se sigue de la aplicación de la función de activación que
determina el nivel de activación de salida de la neurona.
2.2.2 Entrenamiento de una red Perceptrón.
El entrenamiento del Perceptrón consiste en presentar a la red todos los elementos del
conjunto de entrenamiento constituido por parejas de vectores (entrada y salida deseada)
de forma secuencial.
El objetivo de este entrenamiento es llegar a un conjunto de valores de los pesos de la red
de forma que responda correctamente a todo el conjunto de entrenamiento. Después del
entrenamiento los pesos dejan de ser modificables y la red está ya en disposición de
responder adecuadamente a las entradas que se le presenten.
28
En todo proceso de entrenamiento el comportamiento de la red inicialmente va mejorando
hasta que llega a un punto en el que se estabiliza y se dice que la red ha convergido. Esta
convergencia tiene dos posibilidades, la primera consiste en que la red haya aprendido
correctamente el conjunto de entrenamiento o la segunda se trata de que la red no haya
aprendido todas las respuestas correctas.
2.2.3 Inconvenientes de una red de modelo Perceptrón.
A pesar de ser un modelo de red muy exitoso en gran cantidad de aplicaciones referidas a
la clasificación de patrones, posee un gran inconveniente que es la imposibilidad de
adaptar los pesos de todas las capas. En los años en los que se realizó el Perceptron, los
investigadores no fueron capaces de diseñar un algoritmo que propagara las correcciones
de los pesos a través de redes multicapa.
De igual forma, posee la gran limitación funcional de que una unidad de salida sólo puede
clasificar patrones linealmente separables, es decir, las clases de patrones que pueden
separarse en dos clases mediante una línea. Este concepto se puede extender a tres o
más dimensiones simplemente separando dos clases mediante planos e hiperplanos.
Afortunadamente para las aplicaciones de redes neuronales artificiales surgieron nuevas
reglas de aprendizaje para redes multicapa y nuevas arquitecturas, entre ellas la más
popular de algoritmo Backpropagation, que resolvieron entre otros inconvenientes, los
problemas de clasificación de patrones no separables linealmente.
29
2.3 Algoritmo “backpropagation” o de retropropagación.
La invención del algoritmo Backpropagation ha desempeñado un papel vital en el
resurgimiento del interés por las redes neuronales artificiales principalmente en el uso de
reconocimiento de patrones.
Backpropagation es un método de entrenamiento de redes multicapa, donde su potencia
reside en la capacidad de entrenar capas ocultas y de este modo superar las
posibilidades restringidas de las redes de una única capa.
Este método conocido como backpropagation, o propagación del error hacia atrás, está
basado en la regla de aprendizaje que es posible aplicar solo a modelos de redes
multicapa.
El algoritmo consiste en minimizar un error por medio de gradiente descendiente, por lo
que la parte esencial del algoritmo es el cálculo de las derivadas parciales de dicho error
con respecto a los parámetros de la red neuronal artificial.
.
Figura (2.5) – Algoritmo Backpropagation completamente interconectado.
Un punto importante en el algoritmo de retropropagación es su capacidad de auto adaptar
los pesos de las neuronas de las capas intermedias para aprender la relación que existe
entre un conjunto de patrones dados y sus salidas correspondientes, para así después
utilizar esa misma relación a nuevos vectores de entrada, dando una salida activa si la
nueva entrada es parecida a las presentadas durante el aprendizaje
30
2.3.1 Método de entrenamiento de algoritmo backpropagation.
Las redes Backpropagation tienen un método de entrenamiento supervisado. A la red se
le presenta parejas de patrones, un patrón de entrada emparejado con un patrón de salida
deseada. Por cada presentación los pesos son ajustados de forma que disminuya el error
entre la salida deseada y la respuesta de la red.
El algoritmo de aprendizaje backpropagation conlleva una fase de propagación hacia
adelante y otra fase de propagación hacia atrás. Ambas fases se realizan por cada patrón
presentado en la sesión de entrenamiento, que consta de los siguientes pasos:
Inicialización del algoritmo:
1. Se genera la construcción de la red.
2. Determinación aleatoria de pesos y umbrales.
3. Se introduce criterio de terminación (número máximo de iteraciones para proceso de
entrenamiento).
Iteración es el proceso de aplicar una función repetidamente usando la salida de una
iteración o repetición como la entrada a la siguiente con el objetivo de alcanzar una meta
deseada, objetivo o resultado.
Propagación Hacia Adelante:
Esta fase de propagación hacia adelante se inicia cuando se presenta un patrón en la
capa de entrada de la red. Cada unidad de la entrada se corresponde con un elemento
del vector patrón de entrada. Las unidades de entrada toman el valor de su
correspondiente elemento del patrón de entrada y se calcula el valor de activación o nivel
de salida de la primera capa. A continuación las demás capas realizarán la fase de
propagación hacia delante que determina el nivel de activación de las otras capas
5. Seleccionamos el primer par de entrenamiento.
6. Calcular la salida de la red para cada patrón de entrada.
7. Calcular el error total cometido (SSE).
8. Si la condición de terminación se satisface y converge resolución del error, se detiene y
genera propagación hacia atrás.
31
Propagación hacia Atrás.-
Una vez que se ha completado la fase de propagación hacia adelante se inicia la fase de
corrección o fase de propagación hacia atrás.
Los cálculos de las modificaciones de todos los pesos de las conexiones empiezan por la
capa de salida y continua hacia atrás a través de todas las capas de la red hasta la capa
de entrada. Dentro de los tipos de ajuste de pesos se puede clasificar dos grupos, ajuste
de unidades procesadoras de la capa de salida y ajuste de unidades procesadoras de las
capas ocultas. Por este medio se propaga los errores hacia la capa de entrada, ajustando
los pesos de las capas ocultas de forma que se minimice el error.
• Para cada neurona de salida calcular:
• Para cada unidad oculta calcular:
• Actualizar los pesos:
Finalmente repetimos desde el paso 5 para cada par de entrenamiento hasta que el error
para todos los conjuntos de entrenamiento sea aceptable y converja en un valor
adecuado.
Convergencia: Durante el proceso de entrenamiento o aprendizaje de la
Backpropagation es frecuente medir cuantitativamente el aprendizaje mediante el valor
RMS (Root Mean Square) del error de la red. Esta medida refleja el modo en el que la red
está logrando respuestas correctas; a medida que la red aprende, su valor RMS
decrece.
Debido a que los valores de salida de la red y los valores de salidas deseadas son valores
reales, es necesario definir un parámetro de corte o un valor umbral del valor RMS del
error de la red que permita decir que la red se aproxima a la salida deseada y considerar
que la respuesta es correcta.
32
La convergencia es un proceso en el que el valor RMS del error de la red tiende cada vez
más al valor 0. La convergencia no siempre es fácil de conseguirla porque a veces el
proceso puede requerir un tiempo excesivo o bien porque la red alcanza un mínimo local y
deja de aprender.
2.3.2 Ventajas y desventajas del algoritmo backpropagation. La principal ventaja de la Backpropagation es su capacidad genérica de mapeo de
patrones. La red es capaz de aprender una gran variedad de relaciones de mapeo de
patrones, sin requerir un conocimiento matemático de la función que relaciona los
patrones de la entrada y los patrones de salida. La Backpropagation sólo necesita
ejemplos de mapeo para aprender. La flexibilidad de esta red es aumentada con la
posibilidad de elegir número de capas, interconexiones, unidades procesadoras,
constante de aprendizaje y representación de datos. Como resultado de estas
características la red Backpropagation es capaz de participar con éxito en una amplia
gama de aplicaciones.
El mayor inconveniente es el tiempo de convergencia. Las aplicaciones reales pueden
llegar a tener miles de ejemplos en el conjunto de entrenamiento y ello requiere días de
tiempo de cálculo. Además la backpropagation es susceptible de fallar en el
entrenamiento, es decir, la red puede que nunca llegue a converger.
33
2.4 Metodología para modelar una red neuronal artificial de reconocimiento de patrones.
Al margen de la estructura interna de una red neuronal artificial, para comenzar a trabajar
en el reconocimiento de patrones debemos preocuparnos primeramente por establecer el
número de neuronas en la capa de entrada y el número de neuronas en la capa de salida,
considerando a una red neuronal como una “caja” donde podemos representar su
interacción funcional con el entorno mediante un diagrama en bloques.
Figura (2.6) –Estructura funcional de una red neuronal de reconocimiento de patrones.
Podemos concluir que los Datos de Entrada serán recibidas (leídas) por las Neuronas de
entrada, las mismas que serán procesadas por la red neuronal artificial y los resultados
serán entregados a los datos de salida, a través de las Neuronas de Salida.
Por lo tanto, los datos de entrada estarán en relación con las neuronas de entrada y los
datos de salida con las neuronas de salida, lo que significa que a una red neuronal de n
cantidad de neuronas en la capa de entrada y m cantidad de neuronas en la capa de
salida le corresponderá como datos de entrada un vector X de tamaño n [X1, X2, ….Xn] y
como datos de salida un vector Y de tamaño m [Y1, Y2, …. Ym], estableciéndose entre
ellos una dependencia funcional que la podemos llamar RN, y que la podemos expresar
de la siguiente manera:
[Y1, Y2,…. Ym] = RN ([X1, X2, …. Xn])
Figura (2.7) –Dependencia funcional de una red neuronal de reconocimiento de patrones.
34
2.4.1 Tomar una imagen de muestra para el análisis de patrones y entrenamiento de una Red neuronal. Para el entrenamiento de RNA en el reconocimiento de patrones, se debe tener una
muestra especialmente seleccionada, por cada de patrón que se desea reconocer,
considerando que todos los elementos de cada muestra tengan diferencias considerables
entre sí y al mismo tiempo representen toda la variedad posible de su población.
Por lo tanto, para resolver problemas mediante el entrenamiento de RNA el tamaño de la
muestra depende cuan diferentes son entre sí los elementos que conforman la totalidad
de elementos a clasificar.
El objetivo de la presente aplicación será reconocer tres tipos de mangos exportables,
entonces, debemos tomar en total tres muestras independientes entre sí, una por cada
tipo de mango.
Se analizaran las diferencias morfológicas existentes entre mangos por cada tipo de
mango exportable.
2.4.1.1 Selección de la Muestra.
Por las razones explicadas anteriormente, trabajaremos con una muestra de tamaño 10
por cada tipo de mango. Por lo tanto las tres muestras son conformadas de la siguiente
manera:
M1: 10 unidades de mango tipo Kent exportable.
M2: 10 unidades de mango tipo Haden exportable.
M3: 10 unidades de mango tipo Tommy exportable.
Una especificación matemática de cada muestra y sus respectivos elementos sería la
siguiente:
M1 = {K1, K2, K3, K4,… K10}; Mangos tipo Kent exportable.
M2 = {H1, H2, H3, H4,… H10}; Mangos tipo Haden exportable.
M3 = {T1, T2, T3, T4,..…T10}; Mangos tipo Tommy exportable.
35
Por lo tanto, en nuestro caso práctico la dependencia funcional entre los datos de entrada
y salida de la red neuronal es de la siguiente forma:
Figura (2.8) - Dependencia Funcional entre la Forma y la Calidad del Mango.
Por otra parte, la dependencia funcional referida entre los elementos de muestra de
nuestras entradas seria la siguiente:
Figura (2.9) - Relación entre los Elementos de la Muestra y la Calidad de los Mangos.
Como el caso práctico tiene por objetivo demostrar que una red neuronal artificial puede
ser entrenada para reconocer los mangos de calidad, por cuestiones metodológicas
solamente explicaremos el proceso en detalle para un solo tipo de mangos, ya que el
proceso será idéntico en los otros casos. Para ello seleccionamos los mangos de tipo
Kent exportables.
36
2.4.1.2 Tomar las Imágenes Digitales de los Elementos de la Muestra.
La muestra elegida es M1 = {K1, K2, K3, K4,… K10}; que corresponden a los 10 mangos
del tipo Kent exportable.
Luego, mediante una cámara digital capturamos las imágenes de los elementos de la
muestra que a continuación las mostramos.
Figura 2.10: Imágenes de los 10 Mangos de la Muestra.
37
Luego para cada imagen, definiremos una matriz lo suficientemente fina para convertirla
en datos procesables por la red neuronal. Para el caso práctico se utiliza una matriz de
dimensión 50 x 50, con la que procedemos a obtener el borde de la imagen y
representamos dicho borde, usando las celdas de la matriz de 50 x 50, tal como se
observa en la secuencia de las siguientes imágenes:
Figura (2.11) - Imágenes del Borde de un Mango y su Matriz Asociada.
Ahora generamos los datos reemplazando las celdas vacías con 0’s y las sombreadas
con 1’s.
Figura (2.12) - Imagen del Borde de un Mango y su Matriz Asociada con valores de 0 y 1.
38
Ahora para generar los datos de entrada a la red neuronal artificial, convertimos la matriz
de datos binarios en un vector lineal X de tamaño 2500 (50 x 50).
Figura (2.13) - Conversión de la matriz binaria a vector.
Como a cada mango le corresponden un vector lineal con 2500 valores binarios, por
cuestiones de espacio, mostraremos solamente 10 valores por cada mango, donde
debemos juntar todos los vectores lineales con información binaria, generados por cada
mango, en una tabla única que debe contener los vectores lineales de todos los mangos
Figura (2.14) - Datos binarios que corresponden a imagen de bordes de mangos convertidos a vector.
39
2.4.1.3 Numero de neuronas en capa de entrada y salida.
Está claro que el vector de entrada X, que almacena la imagen de un mango convertida
en datos consta de 2500 valores binarios (0’s y 1’s), cada elemento del vector lineal de
entrada debe ser ingresado a la red neuronal artificial a través de una neurona, por lo
tanto es claro que nuestra red neuronal debe tener 2500 neuronas de entrada.
Cada neurona de salida de una red neuronal sirve para reconocer un patrón diferente,
como el objetivo de nuestra investigación es reconocer la calidad morfológica de los tres
tipos de mangos de exportación (Kent, Haden y Tommy) entonces debemos tener tres
neuronas en la capa de salida.
Figura (2.15) - Arquitectura de la RNA para el Reconocimiento de la Calidad Morfológica
de los Mangos Exportables.
Las capas ocultas y el número de neuronas en ellas se establecen en el mismo proceso
de entrenamiento, las sinapsis y pesos sinápticos también se calculan en el
entrenamiento.
40
2.4.1.4 Generar datos de salida de la red neuronal. De acuerdo a la arquitectura definida y especificada respecto al análisis de patrones, y
teniendo en cuenta la muestra seleccionada de los 3 tipos de mangos diferentes, los
datos de salida se generan de la siguiente manera:
a. Si los datos de entrada corresponden a un mango tipo Kent exportable, entonces el
vector de salida (Y1, Y2, Y3) será igual a (1, 0, 0). Como la muestra M1 está conformada
por 10 mangos tipo Kent exportable, los datos de salida para cada elemento de M1 será
(1, 0, 0).
b. Si los datos de entrada corresponden a un mango tipo Haden exportable, entonces el
vector de salida (Y1, Y2, Y3) será igual a (0, 1, 0). Como la muestra M2 está conformada
por 10 mangos tipo Haden exportable, los datos de salida para cada elemento de M2 será
(0, 1, 0).
c. De modo similar para la para cada elemento de M3, la salida será (0, 0, 1).
d. Si la entrada corresponde a un mango que no es exportable, cualquiera sea el tipo, la
salida correspondiente será (0, 0, 0).
2.4.1.5 Entrenamiento de la red neuronal.
Para entrenar una red neuronal artificial se debe hacer uso de un software computacional,
para el caso práctico de selección de patrones se utilizara el NEUROTRAINPATTERN.M,
que está desarrollado en MATLAB cuya funcionalidad se especifica en la siguiente figura:
41
Figura (2.16) - Funcionalidad del NEUROTRAINPATTERN.M. A continuación mostraremos paso a paso el procedimiento de entrenamiento de una red
neuronal artificial utilizando el NEUROTRAINPATTERN.M y como se genera una base de
entrenamiento almacenada en un archivo de texto llamado MUESTRAENT.TXT.
Primer entrenamiento:
Ingreso de Parámetros en software.
En el entorno del MATLAB ejecutamos el programa NEUROTRAINPATTERN.M e
ingresamos los parámetros requeridos.
Figura (2.17) - Ingreso de Parámetros en el NEUROTRAINPATTERN.M.
42
Justificación de los Parámetros Ingresados:
Archivo con datos de muestra: MUESTRAENT.TXT
Es el nombre del archivo donde se guardó la base de entrenamiento.
Sinapsis: Nueva [0] / Se leerán desde un archivo [1]: 0
Los pesos sinápticos deben ser generados. El valor 1 se utilizará en la fase de
reconocimiento.
Introducir neuronas en capa intermedia: 100
No habiendo fórmulas, elegimos un valor que ha sido usado acertadamente en el
reconocimiento de dígitos.
Introducir ratio de aprendizaje: 0.05
Usado acertadamente en el entrenamiento de RNA para reconocimiento de dígitos.
Introducir el valor máximo del error (%): 20
El algoritmo BACKPROPAGATION en cada iteración ajusta los pesos sinápticos
minimizando las diferencias entre los valores calculados por la RNA y los valores
esperados, especificados en la base de entrenamiento, este proceso se realiza hasta
alcanzar el porcentaje especificado en el parámetro ingresado, o hasta realizar una
determinada cantidad de iteraciones indicada en el parámetro inmediato siguiente. Es por
esta razón, es recomendable iniciar las pruebas con porcentajes de error no muy bajos.
Introducir el máximo etapas de aprendizaje: 200
Por las mismas razones explicadas en el caso anterior, es recomendable iniciar el
entrenamiento con valores no muy altos de modo que si no hay convergencia, el proceso
termine rápidamente.
Archivo para resultado del entrenamiento: ENTRENAMIENTO.TXT
Es el archivo donde se almacenan los pesos sinápticos generados.
43
Análisis del resultado:
Después del proceso de entrenamiento, el NEUROTRAINPATTERN nos muestra
gráficamente el proceso de entrenamiento de la RNA.
Figura (2.18): Curva de Aprendizaje de la RNA - Mal Entrenamiento.
En el gráfico podemos apreciar que la curva descrita nos muestra un proceso inadecuado
de aprendizaje ya que según los parámetros ingresados se deseaba alcanzar un margen
de error del 20 % en un total máximo de 200 iteraciones. Según el gráfico se han
realizado las 200 iteraciones, alcanzando al final de la curva un margen de error del 60%.
De manera similar realizamos un total de 33 pruebas de entrenamiento, buscando obtener
el entrenamiento más óptimo, cambiando los parámetros de entrada del programa, tal es
así que en el entrenamiento número 21 pudimos llegar a los resultados que a
continuación mostraremos paso a paso, los entrenamientos del 22 al 33 fueron más
deficientes que el 21.
44
Segundo entrenamiento:
Ingreso de Parámetros en software.
En el entorno del MATLAB ejecutamos el programa NEUROTRAINPATTERN.M e
ingresamos los parámetros requeridos.
Figura (2.19) - Ingreso de Parámetros óptimos en el NEUROTRAINPATTERN.M. Análisis del Resultado
Con estos nuevos parámetros, al finalizar el proceso de entrenamiento, el software nos
proporcionó la siguiente imagen:
Figura (2.20): Curva de Aprendizaje de la RNA - buen Entrenamiento.
45
Como podemos apreciar, la figura esta vez nos muestra que hemos alcanzado
aproximadamente el 5% de margen de error en 790 iteraciones (repeticiones), es decir
hemos logrado nuestro objetivo y ahora podemos afirmar que tenemos una red neuronal
artificial bien entrenada para el reconocimiento de la calidad de los mangos exportables.
2.4.1.6 Reconocimiento real de una muestra.
Con el objetivo de demostrar paso a paso el procedimiento completo del reconocimiento
de patrones tomaremos una muestra de 3 mangos, dos que no cumplen con las
características de calidad de exportación y otro que si cumple y verificaremos si la red
neuronal artificial entrenada reconoce dichas características morfológicas, por lo tanto,
para cada imagen de los mangos elegidos para ser reconocidos, se genera su
información binaria.
Figura (2.21) – Datos binarios de imágenes para reconocimiento. El proceso de reconocimiento es muy similar al entrenamiento, a continuación lo
describimos paso a paso, donde se debe ingresar en MATLAB ejecutamos el
NEUROTRAINPATTERN e ingresamos los parámetros requeridos:
Figura (2.22) – Datos binarios de imágenes para reconocimiento.
46
Al abrir el archivo RECONOCIMIENTO.TXT apreciaremos la siguiente información, que
corresponde a los datos de salida (o reconocidos) por nuestra red neuronal artificial
entrenada anteriormente.
Para interpretar fácilmente los valores del archivo de salida del proceso de reconocimiento
primero ponemos los valores del archivo de salida RECONOCIMIENTO.TXT en una tabla,
luego con los valores de dicha tabla reemplazamos los valores respectivos de la tabla de
datos de reconocimiento.
Primer mango reconocido. Segundo mango reconocido. Tercer mango reconocido.
Para el primer mango [Y1, Y2, Y3] = [0.341, 0.294, 0.307].
• Y1 = 0.341, quiere decir que la calidad morfológica del primer mango es del 34.1%
respecto a un mango de calidad exportable tipo Kent, por lo tanto podemos afirmar que no
es un mango Kent exportable.
• Y2 = 0.294, también podemos decir que el primer mango tiene un 29.4% de parecido a
un mango Haden exportable, luego simplemente podemos concluir que no es Haden
exportable.
Y3 = 0.507, el primer mango solamente tiene el 30.7% de similitud a los mangos Tommy
exportables, por lo tanto también afirmamos que no es un mango Tommy exportable.
Pasaremos de frente al tercer mango cuyo vector de salida es:
[Y1, Y2, Y3] = [0.813, 0.197, 0.225]
• Y1 = 0.813, quiere decir que la calidad morfológica del tercer mango es del 81.3%
respecto a un mango de calidad exportable tipo Kent, por lo tanto podemos afirmar que es
un mango Kent exportable, si se aprecia la figura del tercer mango podemos comprobar
la eficiencia de la red neuronal artificial.
47
• Y2 = 0.197, el tercer mango no es un mango Haden exportable.
• Y3 = 0.225, el tercer mango no es un mango Tommy exportable.
En general:
Si Y1 > 0.5, el mango ha sido reconocido como un mango Kent exportable.
Si Y2 > 0.5, el mango ha sido reconocido como un mango Haden exportable.
Si Y3 > 0.5, el mango ha sido reconocido como un mango Tommy exportable.
En otro caso, significa que el mango ha sido reconocido como un mango
No Exportable.
Podemos concluir que nuestra RNA ha reconocido correctamente los tres mangos, los
dos primeros los ha reconocido como No Exportable y el tercer mango como Kent
Exportable, tal como se esperaba.
48
2.5 Ventajas y limitaciones de las redes neuronales artificiales. Las redes neuronales artificiales no son la solución universal que permite resolver todos
los problemas, sino que están orientadas a un determinado tipo de tareas.
Las redes neuronales artificiales presentan una serie de ventajas frente a los modelos
estadísticos. Una ventaja fundamental consiste en que los modelos neuronales
normalmente no parten de restricciones respecto de los datos de partida (tipo de relación
funcional entre variables), ni suele imponer. Por otra parte, como hemos comentado, la
habilidad de las neuronas de calcular funciones de salida no lineales capacita a la red
para resolver problemas complejos o no lineales. De este modo, en numerosas
aplicaciones se están consiguiendo con redes neuronales, cotas de error mucho mejores
que las proporcionadas por la estadística
Por otra parte, los datos procedentes del problema son imprecisos, incoherentes o con
ruido (como el ejemplo visto sobre el reconocimiento de imágenes). Por último, el
problema es de elevada dimensionalidad, es decir, el número de variables de entrada es
demasiado grande como para que un modelo convencional aprenda a solucionar el
problema en un tiempo razonable.
Cuando no se dan estas circunstancias puede ser más aconsejable optar por solucionar el
problema mediante un modelo derivado de la estadística o la Inteligencia Artificial. Por
tanto, no debemos concebir las redes neuronales como una alternativa, sino más bien
como un complemento a los modelos convencionales ya establecidos.
Respecto a las limitaciones que presentan las redes neuronales artificiales, una de las
más importantes consiste en que es difícil comprender la naturaleza de las
representaciones internas generadas por la red para responder ante un problema
determinado. Es decir, no sabemos cómo el sistema interrelaciona las diferentes variables
de entrada con los pesos de las conexiones entre neuronas para elaborar una solución.
Esta limitación contrasta con los diferentes modelos estadísticos, los cuales permiten
observar los parámetros o pesos relativos que el modelo otorga a cada una de las
variables que intervienen en el modelo.
49
Conclusión
El uso de las redes neuronales artificiales ha estado presente históricamente para la
aplicación de diversas problemáticas presentadas en diferentes ámbitos, y a pesar de no
ser una solución integral de estas problemáticas, presenta diversas ventajas en el uso de
aplicaciones especificas.
De esta manera, para el sistema de control basado en redes neuronales artificiales,
resulta ser efectivo para el reconocimiento de patrones, ya que se logra alcanzar
resultados con márgenes de error muy pequeños, y por ende gran grado de selectividad
en la clasificación de elementos.
Para esta clasificación se hace recomendable el uso de muestras en su forma vectorial,
tomadas desde su matriz de datos binarios, para que así sean desarrollados y procesados
por la red neuronal artificial, aplicando el algoritmo de aprendizaje deseado, y logremos
obtener a su vez, un vector de salida con la información de la clasificación realizada.
Así mismo cuando se trata de imágenes sólidas, se recomienda trabajar con los bordes
de dichas imágenes, debido que el reconocimiento de patrones se basa en un porcentaje
de equivalencias entre los patrones o imágenes modelo con las formas que se desea
reconocer.
El diseño de la red neuronal artificial que ha sido capaz de aprender a reconocer los 3
tipos de mangos expuestos en nuestra investigación, tiene la siguiente configuración:
2500 neuronas en la capa de entrada (para tomar como dato de entrada de la red, el
borde de la imagen de un mango de diversos tipos), 3 neuronas en la capa de salida (para
que la red neuronal pueda identificar tres tipos diferentes de mangos exportables) y 400
neuronas en la capa oculta (para que pueda realizar un entrenamiento adecuado).
Se recomienda tener el máximo cuidado en elegir la muestra de entrenamiento ya que de
ello depende el éxito del entrenamiento de la red neuronal artificial.
50
Bibliografía
Libros y publicaciones: Libro: “An Introduction to Neural Networks”. J. Anderson, 1995 Libro: “Las Redes Neuronales Artificiales: Fundamentos Teóricos y Aplicaciones Prácticas.” R. Flórez, J Fernández. Libro: “Redes de Neuronas Artificiales: Un enfoque Práctico”. Pedro Isasi Viñuela, Inés M. Galván León Imágenes tomadas desde libro: “Neural Computing Architectures”, MIT Press, Cambridge, MA, 1989. Tesis y otras publicaciones: Tesis doctoral: “Redes Neuronales Aplicadas al análisis de datos”. J. Montaño, 2002. Tesis: “Redes neuronales artificiales y sus aplicaciones”, Profesor Xabier Basogain Olabe. Tesis de grado: “Entrenamiento de redes neuronales artificiales”. Luis Federico Bertona, 2005. Tesis doctoral: “Análisis y diseño de redes neuronales CMAC para la identificación y control de sistemas no lineales”. Floriberto Ortiz Rodríguez, 2008. Tesis doctoral: “Aplicación de las redes neuronales en los sistemas de control vectorial”. Gamal Mahmoud Ali, 2000. Tesis Doctoral: “Redes neuronales para el reconocimiento morfológico”. Hugo Froilán Vega, 2011. Documento PPT: “Redes neuronales artificiales”. Definiciones: www.wikipedia.com www.archivos.labcontrol.cl