Investigacion RN- Avanzado

50
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

description

Investigación sistemas de control basados en redes neuronales

Transcript of Investigacion RN- Avanzado

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