Redes Neuronales Multicapa

March 14, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Redes Neuronales Multicapa...

Description

 

UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA INFORMÁTICA TRABAJO DE INVESTIGACION:

REDES NEURONALES ARTIFICIALES: EL PERCEPTRÓN MULTICAPA PRESENTADO PARA OBTENER EL GRADO DE INGENIERO INFORMÁTICO

AUTOR: Br. FLOR YAMILET ALTAMIRANO GÁLVEZ ASESOR: Ms. JORGE LUIS GUIERREZ GUTIERREZ

TRUJILLO 2 11

PERU

 

ÍNDICE  AGRADECIMIENTO  AGRADECIMIENTO DEDICATORIA PRESENTACION RESUMEN 1. INTRODUCCIO INTRODUCCION N 1.1. PROBLEMATIZACIÓN …………………………............................   1.1.1. SISTEMAS EXPERTOS ……………………………………..   …………………………………….. 1.1.2. DEMOSTRACIÓN DE TEOREMAS …………………………… ……………………………   1.1.3. JUEGOS AUTOMATIZADOS ………………………………….. …………………………………..   1.1.4. RECONOCIMIENT RECONOCIMIENTO O DE VOZ …………………………………. ………………………………….   1.1.5. RECONOCIMIENT RECONOCIMIENTO O DE PATRONES ………………………… …………………………   1.1.6. PROCESAMIENTO DEL LENGUAJE NATURAL ……………. …………….   1.1.7. VISIÓN ARTIFICIAL ……………………………………………… ………………………………………………   1.1.8. ROBÓTICA ………………………………………………………. ……………………………………………………….   1.1.9. REDES NEURONALES ………………………………………… …………………………………………   1.1.10. ALGORITMOS GENÉTICOS ……………………………………. …………………………………….  

5 5 5 6 6 6 7 7 7 8 8 9

2. PLANTEAMIENTO DEL PROBLEMA ………………………………………………. ……………………………………………….   9 3. HIPÓTESIS ……………………………………………………………………………..

9

4. JUSTIFICACIÓN DEL ESTUDIO …………………………………………………….. ……………………………………………………..   10 5. OBJETIVOS …………………………………………………………………………….  …………………………………………………………………………….  10 5.1. OBJETIVO GENERAL ……………………………………………………. …………………………………………………….   10 5.2. OBJETIVOS ESPECÍFICOS ……………………………………………….  ……………………………………………….  10

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

11 11 11 13

FUNCIÓN DE ACTIVACIÓN O TRANSFERENCIA …………………….. ……………………..   16 TOPOLOGÍAS ………………………………………………………….....  ………………………………………………………….....  20

  6.3.1. 6.3.2. 6.3.3. 6.3.4. 6.3.5.

REDES NEUROLAES MONOCAPA ……………………………. 20 REDES NEURONALES MULTICAPA …………………………. ………………………….   20 REDES CON CONEXIÓN HACIA ADELANTE (FEEDFORWARD) REDES CON CONEXIÓN HACIA A ATRÁS TRÁS (FEEDBACK) …….. ……..   22 REDES RECURRENTES ………………………………………. ……………………………………….   23

 

6.4.

TIPOS DE APRENDIZAJE ……………………………………………... ……………………………………………...   6.4.1.  APRENDIZA  APRENDIZAJE JE SUPERV SUPERVISADO ISADO ……………… ………………………………. ……………….   6.4.2.  APRENDIZA  APRENDIZAJE JE NO SUPE SUPERVISADO RVISADO ………………… ………………………….. ………..   6.4.3.  APRENDIZA  APRENDIZAJE JE HÍBRIDO…… HÍBRIDO……………………… ………………………………… ……………….. ..   6.4.4.  APRENDIZA  APRENDIZAJE JE REFORZA REFORZADO DO ………………… ………………………………….. ………………..  

23 23 24 24 24

6.5.

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

6.6.

FASES DE UNA RED NEURONAL

6.7.

MODELOS DE REDES NEURONALES ………………………………..  ……………………………….. 

26

6.8.

 APLICACIONES ………  APLICACIONES ………………………… ………………………………… ……………………………… ………………… …  6.8.1. RECONOCIMIENT RECONOCIMIENTO O DE PATRONES ………………………… …………………………   6.8.2. CATEGORIZACIÓN ……………………………………………… ………………………………………………   6.8.3. APROXIMACIÓN DE FUNCIONES …………………………… ……………………………   6.8.4. PREDICCIÓN …………………………………………………….. ……………………………………………………..   6.8.5. OPTIMIZACIÓN ……………………………………………………  …………………………………………………… 

28 28 29 29 30 30

7. DETERMINACIÓN ESPECÍFICA …………………………………………………… ……………………………………………………   7.1. PERCEPTRÓN ……………………………………………………………  ……………………………………………………………  7.1.1.  APRENDIZA  APRENDIZAJE JE DEL PE PERCEPTRÓN…… RCEPTRÓN……………………… …………………….. …..   7.2. PERCEPTRÓN MULTICAPA …………………………………………….  …………………………………………….  7.2.1. LA REGLA DELTA O REGLA DE WIDROW-HOFF …………… ……………   7.2.2.  APRENDIZA  APRENDIZAJE JE POR BAC BACK K PROPAG PROPAGATION ATION ……………… ………………… … 

31 31 32 34 36 40

……………………………………..   26 ……………………………………..

7.3.

IMPORTANCIA DEL ESTUDIO …………………………………………. ………………………………………….  

47

7.4.

EJEMPLO DE APLICACIÓN DE UNA RED MULTICAPA ……………. …………….   48 7.4.1. DISEÑO …………………………………………………………….  …………………………………………………………….  48 7.4.2. ANÁLISIS Y DISCUSIÓN DE RESULTADO RESULTADOS S ………………….  ………………….  53

8. CONCLUSIONES Y RECOMENDACIONES ………………………………………. ……………………………………….   57 9. REFERENCIAS BIBLIOGRÁFICAS …………………………………………………. ………………………………………………….   59 10. ANEXOS ………………………………………………………………………………… …………………………………………………………………………………   61

 

 

GR

DECIMIENTO

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

 A nuestro padre de amor   Que nos da la fortaleza y nos  Abre las puertas de un futuro Prometedor. 

 

DEDIC

TORI

Al esfuerzo y al gran amor de mis

Padres: Margarita y Hernán que me enseñan a mirar más

allá y me impulsan a esforzarme por alcanzar mis aspiraciones.

A mis hermanas Marley Y Yohana Quienes han mantenido su confianza en mí y me imp impulsan ulsan cada día para seguir adelante.

A mi tía Sabina por haberme dado el apoyo incondicional y por mantenerme constante en el largo camino para culminar mi carrera

 

PRESENT CIÓN

Señores miembros del Jurado:

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

El presente trabajo de investigación ha sido elaborado aplicando los conocimientos adquiridos durante mi formación profesional, complementándolo con la información estudiada en el desarrollo del informe.

FLOR YAMILET ALTAMIRANO GÁLVEZ Bachiller en Ciencias de la Computación

 

RESUMEN

El trabajo presenta de lasNeuronales principalesArtificiales. herramientas utilizadas en la Inteligencia Artificial,una las Redes Para el desarrollo del informe se ha considerado primeramente hablar acerca de la Inteligencia Artificial y las principales ramas que abarca. Seguidamente nos enfocamos en el estudio de las redes neuronales, su  funcionamiento,  funcionam iento, características, aplicaciones y tipos; enfocándonos enfocándonos en el Perceptrón Multicapa, cuya aplicación ha sido utilizada con con éxito desde sus primeros modelos. Finalizo con una ejemplificación básica de la aplicación de este modelo.

Palabras claves: Intel Intelig ig encia Ar tificial, R edes edes neuronal neuronales es artifici ales, ales, P erceptrón erceptrón Mult Multicapa icapa..

 

  INTRODUCCIÓN

1.

1.1.

Problematización

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

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

 

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

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

1.1.4. Reconocimiento de voz La voz es el medio de comunicación más usado por el hombre. El reconocimiento de voz trata del problema de procesar el lenguaje hablado y capturar los diferentes elementos semánticos que forman la conversación. Los problemas asociados con las diferentes pronunciaciones y tonos de voz son los principales obstáculos que esta disciplina tiene que afrontar.

 

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

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

1.1.7. Visión Artificial Uno de los objetivos de la visión artificial es la posibilidad de usar ordenadores para localizar y reconocer automáticamente objetos en tres dimensiones. Muchas otras áreas de la IA tales como la representación del conocimiento, el reconocimiento de patrones, y las redes neuronales  juegan papel esencial en la la visión artificial. Loshan significativos avances técnicosunproducidos durante última década sido aplicados a

 

varios sistemas comerciales utilizados en fabricación, inspección, tareas de guía, etc.

1.1.8. Robótica La robótica es una de las áreas de la IA más populares. Los robots combinan elementos mecánicos, sensores, y ordenadores que les permiten tratar con objetos reales y realizar muchas tareas de forma precisa, rápida y cómoda. Por ello, se puede pensar en los robots como ordenadores que interaccionan con el mundo real.

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

 

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

  PLANTEAMIENTO DEL PROBLEMA

2.

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

  HIPÓTESIS

3.

Sí, es posible verificar el funcionamiento de una Red Neuronal MLP a través de una aplicación básica.

 

  JUSTIFICACIÓN DEL ESTUDIO

4.

El problema se justifica en la investigación porque: 

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

  OBJETIVOS

5.

5.1.

Objetivo general Describir y observar el funcionamiento de una red neuronal artificial multicapa mediante una aplicación básica.

5.2.

Objetivos específicos

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

 

  ANTECEDENTES

6.

6.1.

Definición de Redes Neuronales.

El campo de las redesreales neuronales artificiales el fuecerebro, inspiradoenpor estudios en redes neuronales que conforman unlos intento por resolver problemas mediante el empleo del conocimiento obtenido de casos similares resueltos en el pasado. No por eso su conducta es igual a la del cerebro, pero sí se busca emular ciertas cualidades destacables de este, las cuales no se alcanzan con computadoras estándar. La capacidad de procesamiento de la red es representada por las fuerzas de conexión (pesos) entre los elementos, obtenidos por un proceso de aprendizaje mediante un conjunto de patrones de entrenamiento.

6.1.1. Modelo Biológico Para comprender mejor las redes neuronales artificiales y sus orígenes, examinemos primero el modelo biológico (objeto de inspiración) El elemento constructivo y unidad básica procesadora de una red neuronal es la neurona. Su estructura, como se muestra en la Figura N° 1, es básicamente un cuerpo celular, o soma, que alberga el núcleo y del cual se exti extienden enden las dendritas (terminales receptoras) y el axón (elemento transmisor). La unión entre el axón y la dendrita de dos neuronas se llama sinapsis. La comunicación entre neuronas se basa en la activación de terminales bio-química en el extremo del axón, que liberan neurotransmisores que son captados por la dendrita. La experiencia en cierta tarea o estímulo produce que las sinapsis correspondientes se refuercen de forma exitatoria o inhibitoria [1].

 

  Figura N° 1: R epres epres entación entación de una neurona neurona biológ biológ ica. http:///g rupo2cuartobimes tre.blogs pot.com/2008/ pot.com/2008/10/ 10/ss is tema-nervi tema-nervios os o.html  Fuente: http:/

Una neurona es una célula viva con la capacidad de comunicarse. Esta célula consta principalmente de un ccuerpo uerpo celular más o menos esférico, del que sale una rama principal, el axón y varias ramas más cortas, llamadas dendritas. A su vez, el axón puede producir ramas en torno a su punto de arranque, a las que llamaremos terminales axónicos. En general, las dendritas y el cuerpo celular reciben señales de entrada, y este último las combina e integra para emitir señales de salida. El axón transporta esas señales a los terminales axónicos que se encargan de distribuir información a un nuevo conjunto de neuronas. Los terminales axónicos se enlazan con las dendritas de otras neuronas mediante una estructura denominada sinapsis. Las señales son ttransmitidas ransmitidas entre neuronas por impulsos eléctricos que viajan a través del axón. Estos impulsos llegan a otras neuronas conectándose a través de las dendritas (terminaciones) y terminales axónicos (sinapsis). Cada pulso que ocurre en la sinapsis inicia lla a liberación de una pequeña cantidad de sustancia química (neurotransmisor ). ). El neurotransmisor viaja por medio de la sinapsis desde los terminales axónicos de la neurona emisora hacia las

 

dendritas de la neurona receptora. Una neurona receptora puede estar conectada a muchas neuronas emisoras. Cada neurona emisora provocará la liberación de cierta cantidad y tipo de neurotransmisor. Entre algunos neurotransmisores tenemos: la acetil acetilcolina, colina, asocia asociada da a la contracción de músculos; la dopamina relacionada con el sist sistema ema motor y asociada al síndrome de Parkinson; noradrenalina que influye en la emociones y ciertos humores, la serotonina relacionada con la depresión; la endorfina, interviniente en la reducción de dolor, entre otras. Cada neurona, en su cuerpo celular, contiene una sustancia química en su exterior y otra de composición distinta en su interior, lo que origina una diferencia de potencial determinada. Cada neurona mantiene una diferencia de potencia determinada, en la que se establece un potencial en reposo. Los neurotransmisores que recibe una neurona pueden originar que se altere tal diferencia de potencial (sinapsis excitadora) o que esté en equilibrio - reposo (sinapsis inhibidora). Si, luego de procesar todas las entradas en la neurona se obtiene cambio en la diferencia de potencial, entonces se emite un tren de pulsos eléctricos que se propaga a lo largo del axón y, a su vez provoca la emisión de los neurotransmisores en los terminales axónicos.

6.1.2. Modelo computacional Las redes neuronales artificiales son motivadas por ciertas cualidades de su modelo real, por lo cual el desafío es producir un modelo que tenga:

 

1. Una estructura de procesamiento distribuida y paralela (opuestamente al CPU de una computadora). 2. Alto grado de conexión entre las unidades básicas. 3. Conexiones modificables en función de la experiencia. 4. Un proceso de aprendizaje constante y de ser posible uno no supervisado 5. Aprendizaje basado en información local. 6. Robustez en la performance si algunas unidades son removidas.

Como el cerebro humano, una red neuronal se compone de neuronas y conexiones entre ellas. Las neuronas van transportando información de entrada sobre sus conexiones de salida a otras neuronas. En una red neuronal artificial, dichas conexiones están representadas por pesos. La información eléctrica es simulada con valores específicos en los pesos. El cambio de la estructura de las conexiones se puede simular, fácilmente, modificando los valores en los pesos. La siguiente figura muestra una neurona artificial y sus componentes:

 

 

Figura N° 2:  Modelo de neurona neur ona arti artifi fici ci al. Fuente: Andrés Nacelle, Redes Neuronales Artificiales, Pág.4

La información, a la que llamamos Entrada, es enviada a la neurona con sus respectivos pesos. Los valores de las entradas X  son sumarizadas multiplicadas con sus respectivos pesos, originando el valor de activación. Supongamos que tenemos “n” entradas: x1, x2, x3, . . . xn, cuyos pesos respectivamente son: w1, w2, w3, . . . wn. El valor de activación, para una neurona, se obtiene por:   

 x w  x  w  x w .... x w   1

1

2

2

  3

3

n

n

n

  

 xi wi i 1

 

El resultado “ ”, al que llamamos valor de activación, es comparado con un cierto valor umbral (threshold), esto es realizado por la función de activación o de transferencia de la neurona. En general, si el

 

resultado de la suma anterior “ ” excede el valor del umbral, la neurona será activada, en otro caso será inhibida. Una función de activación “f”   devolverá el valor “y” de la salida de la neurona (impulsos eléctricos) Si la neurona es activada, esta envía una salida a las demás neuronas conectadas la salida de la neurona representa una entrada en la otra neurona.a ella, El proceso continúa iterativamente. Como hemos podido apreciar entonces, los componentes necesarios para la implementación de una red neurona artificial serán los siguientes:  

Un vector de entrada   Un vector de pesos asociado a cada entrada   Un umbral   Un valor de activación (sumatoria) α    

6.2.

Una función de activación f  

Función de activación o transferencia

Entre las funciones de transferencia más utilizadas tenemos:

 

Función Escalón Cuando el conjunto de valores de activación es {0, 1}, entonces tenemos:  y( ) 

1 0

         

 si  si

 

1

 

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

 

 y( ) 

1

1

         

 si  si

 

1

  -1

 

Función Lineal

 y( )       

 

 

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

 y( ) 

1 1 e

(  )

 

 

 

Figura N° 3: Función S ig moida moidall

 

Función Tangente Sigmoidal Es una función que, a diferencia de la sigmoidal tradicional que varía entre 0 y 1, ésta varía entre -1 y 1.  y( ) 

2 1 e

 

2 (     )

1

 

Figura N° 4: Función Tangente Sigmoidal

 

    Función Gaussiana      x*x

 y( )  e

  ; x      

 

Figura N° 5: Función Gauss iana

El umbral puede ser manejado como otra entrada x0  en la neurona con valor unitario (1) y con peso w 0 = - , aunque, realmente el signo no interesa. Así tenemos: n

  

(   )  xi w  x i   0 w0  i 1 

 

 Así, el valor del umbral también va modificándose, y las func funciones iones de activación serían, para el caso de la función escalón será:  y ( ) 

1 0

 si  si

   0    0

 

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

 

6.3.

Topologías

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

6.3.1. Redes neuronales mono capa Las redes mono capa son redes con una sola capa. Para unirse, las neuronas crean conexiones laterales para conectar con otras neuronas de su capa. Las redes más representativas son la red de Hopfield, la red BRAIN-STATE-IN-A-BOX o memoria asociativa y las máquinas estocásticas de Botzmann y Cauchy. Entre las redes neuronales mono capa, existen algunas que permiten que las neuronas tengan conexiones a sí mismas y se denominan auto recurrentes. Las redes mono capa han sido ampliamente utilizadas en circuitos eléctricos ya que, debido a su topología, son adecuadas para ser implementadas mediante hardware, usando matrices de diodos que representan las conexiones de las neuronas

6.3.2. Redes Neuronales multicapa Las redes multicapa están formadas por varias capas de neuronas (2,3...). Estas redes a su vez se pueden clasificar atendiendo a la manera en que se conexionan sus capas. Usualmente, las capas están ordenadas por el orden en que reciben la señal desde la entrada hasta la salida y están unidas en ese orden. Ese tipo de conexiones se denominan conexiones feedforward o hacia delante.

 

  Figura N° 6: R ed Neuronal Neuronal con tres capas capas

6.3.3. Redes con conexiones hacia adelante(Feedforward)  Como decíamos antes, este tipo de redes contienen sólo conexiones entre capas hacia delante. Esto implica que una capa no puede tener conexiones a una que reciba la señal antes que ella en la dinámica de la computación. Ejemplos de estas redes son Perceptron, Adaline, Madaline, Backpropagation y los modelos LQV y TMP de Kohonen.

 

 

Figura N° 7: C onexión Feedforward Feedforward

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

Figura N° 8: C onexión Feedba Feedback ck

 

6.3.5. Redes recurrentes Este tipo de red se diferencia de las anteriores en la existencia de lazos de realimentación en la red. Estos lazos pueden ser entre neuronas de diferentes capas, neuronas de la misma capa o, entre una misma neurona. Esta estructura la hace especialmente adecuada para estudiar la dinámica de los sistemas no lineales.

Figura N° 9: Conexión recurrente 

6.4.

Tipos de aprendizaje

Este concepto es sustancialmente la modificación de la respuesta producida por la interacción con el medio medio y de esta forma establecer nuevas respuestas que se adaptan a estímulos externos. En el caso del cerebro, esta cualidad se alberga en las sinapsis. En el caso de las redes neuronales, el conocimiento está en los pesos de las conexiones. Por esto, todo mecanismo de aprendizaje demanda modificaciones en dichos pesos. El aprendizaje se realiza mediante entrenamiento. El entrenamiento de una red neuronal origina una matriz que mantiene los valores de los pesos entre las neuronas. Una vez que una red neuronal ha sido entrenada, bajo un conjunto de patrones de entrenamiento, ésta, probablemente, será capaz de encontrar la salida deseada para una entrada (patrón de entrada) determinada, que ha sido aprendida, usando está matriz de valores de pesos.

 

6.4.1. Aprendizaje supervisado  En el aprendizaje supervisado se presenta a la red un conjunto de patrones, junto con la salida deseada u objetivo, e iterativamente esta ajusta sus pesos hasta que la salida tiende a ser la deseada, utilizando para ello información detallada del error que se comete en cada paso. De este modo, la red es capaz de estimar relaciones entrada/salida sin necesidad de proponer una cierta forma funcional de partida. Durante el aprendizaje, cada patrón de entrada (patrón de entrenamiento) es enviado a la red neuronal a través de su capa de entrada. El patrón es propagado a través de la red hacia la capa de salida. La capa de salida genera un patrón de salida, el cual es comparado con la salida deseada. Dependiendo de la diferencia entre el patrón de salida y la salida deseada, un error es calculado. El error indica el esfuerzo de aprendizaje de la red, el cual puede ser controlado por un supervisor o tutor imaginario. Mientras el error sea mayor, má máss valores de los pesos serán modificados.  Algunos algoritmos de aprendizaje supervisado incluyen: - 

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

6.4.2. Aprendizaje no supervisado o auto organizado. Las redes neuronales que manejan aprendizaje no supervisado no cuentan con salidas esperadas, por lo tanto no utilizan un tutor o supervisor y se basa solamente en la información ingresada. Esto es también referido como auto-organización en el sentido que organiza automáticamente los datos presentado a la red y detecta sus

 

propiedades colectivas emergentes. Este tipo de aprendizaje es muy utilizado para asociación y clasificación de patrones.  Algunos algoritmos de aprendizaje no supervisado son:



Aprendizaje Hebbiano -  Aprendizaje Competitivo y Corporativo

6.4.3. Aprendizaje híbrido  En este caso existen en la red los dos tipos de aprendizaje básicos, supervisado y auto organizado, normalmente en distintas capas de neuronas.

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

6.5.

Diseño de una Red Neuronal Artificial

El diseño de una red neuronal consiste en: - 

Determinar el número de capas de la red neuronal. -  Determinar el número de neuronas por capa. -  Determinar la función de transferencia de cada neurona. -  Determinar los algoritmos de aprendizaje de la red neuronal.

 

6.6.



Fases de una Red Neuronal

Fase de Aprendizaje o Entrenamiento , en esta fase se presentan a la red neuronal una serie de patrones de entrada de modo que la red ajuste los salidas pesos esperadas. de las conexiones entre neuronas apropiadamente, según las



6.7.

Fase de Operatividad o Ejecución, en esta fase la red neuronal se pone en uso, y se espera resultados adecuados bajo los pesos establecidos.

Modelos de Redes Neuronales

Existen muchos modelos de redes neuronales, estas se distinguen por:   Estructura o  Tipo de Conexión o  Algoritmo de Aprendizaje o

 

Aprendizaje Supervisado Feedforward

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

Feedback

Recurrent backpropagation - Pineda (1989) Boltzman Machine - Ackley et al. (1985) 

Aprendizaje No Supervisado Feedforward 

LVQ: Learning Vector Quantization - Kohonen (1988) 

Feedback 

 – Hopfield (1982) Hopfield Net – Hopfield Kohonen Feature Map –Teuvo  –Teuvo Kohonen (1982) ART 1  - Carpenter and Grossberg (1987a), Moore (1988), ART 2  - Carpenter and Grossberg (1987b), ART 3  - Carpenter and Grossberg (1990)

Fuzzy ART - Carpenter, Grossberg and Rosen (1991b) Cognitron/Neocognitron –  Fukushima (75-80)

 

  6.8.

Aplicaciones

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

6.8.1. Reconocimiento de Patrones La tarea del reconocimiento de patrones es asignar a un patrón de entrada (como un cardiograma, o la señal de la voz) representado por un vector de características, una de varias clases predefinidas. Entre las aplicaciones más populares tenemos, reconocimiento de caracteres, reconocimiento del habla, del del rostro, clasificación de ccélulas élulas de la sangre, etc.

Figura N° 10: Clasificación de Patrones.

 

6.8.2. Categorización En la categorización o clusterización, o también conocido como clasificación de patrones no supervisados, no existen clases previamente definidas para los datos de entrenamiento. Un algoritmo de clusterización explora similaridad patronesincluyen y ubicaminería patrones similares en una mismalaclase o cluster.entre Aplicaciones de datos, compresión de datos y análisis exploratorio.

6.8.3. Aproximación de Funciones Supongamos un conjunto de n patrones de entrenamiento etiquetados (pares

de

entrada-salida),

 x1 , y1 ,  x  2 , y  2 ,,  xn ,  yn   han

sido

generados desde una función desconocida  f  ( x) . La tarea de la aproximación de funciones es encontrar una función estimada  f  (  x)   de la función desconocida. En muchas aplicaciones de ingeniería y problemas de modelación se requiere aproximación de funciones. ˆ

. Figura N° 11:  A prox imaci ón de Func iones io nes .

 

6.8.4. Predicción Dada una secuencia de n muestras

 yt 1 , y  t 2 ,, yt n    en una

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

. La predicción tiene un impacto muy para algún tiempo futuro importante en la toma de decisiones en los negocios, ciencia e ingeniería. Aplicaciones típicas está relacionadas a la predicción de demanda en el mercado y la predicción del clima.

y

?

t1  t2  t3 

tn  tn+1 

Figura N° 12: Predicción.

6.8.5. Optimización Una amplia variedad de problemas en matemática, estadística, medicina, economía pueden ser representados como problemas de optimización. El objetivo de un algoritmo de optimización es encontrar una solución satisfactoria a un conjunto de restricciones de modo que una función objetivo es maximizada o minimizada. El problema del agente viajero, un problema NP-Completo, es un ejemplo clásico.

 

  DETERMINACIÓN ESPECÍFICA

7.

7.1.

Perceptrón El perceptrón es una red de alimentación directa, esto es la información fluye desde la capa de entrada hacia la capa de salida. Fue desarrollado por F. Rosenblatt hacia final de la década de los cincuenta basándose en la regla de aprendizaje de Hebb y de los modelos de neuronas biológicas de McCulloch y Pitts. El Perceptrón era inicialmente un dispositivo de aprendizaje, en su configuración inicial no estaba en capacidad de distinguir patrones de entrada muy complejos, sin embargo mediante un proceso de aprendizaje era capaz de adquirir esta capacidad. El perceptrón simple es una red que consta de dos capas de neuronas. Esta red admite valores binarios o bipolares como entrada para los sensores y los valores de su salida están en el mismo rango que los de entrada. La función de la primera capa es hacer de sensor, por ella entran las señales a la red . La segunda capa realiza todo el procesamiento. La manera de interconexión en ambas capas es todas con todas, esto es, cada neurona de la primera capa está unida con todas las de la segunda capa. La función de activación para este tipo de RNA es la siguiente:

    ()       

 

 

  X0=1  X1 X2

Umbral

W0 W1 W2



f Xn 

Wn-1 Wn

Xn

Figura N° 13:  Modelo de P erceptrón erc eptrón S imple.

7.1.1. Aprendizaje del Perceptrón

Se pueden utilizar diferentes algoritmos de aprendizaje, en nuestro caso vamos a utilizar el algoritmo de corrección de error .

Aprendizaje por Corrección de error En este caso los pesos son ajustados en base a la diferencia entre los valores de salida deseados y los obtenidos en la salida de la red (error )).. La regla del algoritmo es la siguiente: wij       y i (d  j  y  j )

 

así, el peso wij se puede ajustar de la siguiente manera: wij (t   1)    w   ij (t )  wij

donde:

 

 

w

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

 

:

Valor de la salida de la neurona j.

 

:

Valor esperado de la neurona j .

d  j

  

  : Factor de aprendizaje 0<      1, controla la velocidad de aprendizaje. 0 i  M

1 j N

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

Proceso de Aprendizaje del Perceptrón Dado un conjunto de n  entradas x1,. . ., xn. Inicializar aleatoriamente los pesos de las conexiones entre las neuronas y establecer, de igual modo, el valor del umbral (-w0).

ENTRENAMIENTO Para cada patrón del conjunto de patrones  Se ingresa el nuevo patrón de entrenamiento en la capa de entrada, que se propagará por la red, hasta obtener la salida. No olvide, que la salida en cada neurona de entrada es igual al valor de la entrada. [ x1 , x 2 ,...,  x n ]  

 

Se calcula el valor de activación en cada neurona de la capa de salida, para un tiempo t. 

 

    j (t ) 

 w  ij (t ) y i (t )  wo (t ) xo (t )

, donde, yi   es es la salida de la neurona i  de  de la capa de entrada, y  x 0  1. 0 =   i

Se calcula la salida de cada neurona en la capa de salida, con la función de activación.  y  j    f (  j )

,

donde, f es la ffunción unción de escalón, cuyas salidas pueden ser {0,1} Se ajustan los pesos de acuerdo con el algoritmo de corrección de error. wij (t   1)  w ij (t )       y i (t )(d  j  y  j )  

 error 

2

Se suman los errores parciales ErrorTotal=

 patr on

 

Si ErrorTotal>e, entonces volver al paso 2, en caso contrario finalizar el entrenamiento.

7.2.

Perceptrón Multicapa (MLP) 

Una manera de solventar las limitaciones del Perceptrón Simple es por medio de la inclusión de capas ocultas, obteniendo de esta forma una red neuronal que se denomina Perceptrón multicapa. La figura muestra las regiones de decisión que se obtienen para distintas arquitecturas de redes neuronales considerando dos neuronas en la capa inicial. Así por ejemplo para una arquitectura de perceptrón simple la región de decisión es una recta, mientras que el perceptrón multicapa con una única capa de neuronas ocultas puede discriminar regiones convexas. [6]

 

 

El perceptrón multicapa o MLP (Multi-Layer Perceptron) se suele entrenar por medio de un algoritmo de retropropagación de errores o BP (Back Propagation) de ahí que dicha arquitectura se conozca también bajo el nombre de red de retropropagación. El desarrollo del algoritmo BP resulta una curiosa historia de redescubrimientos y olvidos. Si bien fue Werboz (1974) quien en su tesis doctoral lo introdujo por vez primera, el hecho no tuvo repercusión en su época hasta que Rumelhart y col. (1986) lo redescubrieron de manera independiente y comenzaron a popularizarlo ayudados por los avances en computación existentes en la época, los cuales permitan satisfacer los requisitos de computación que el algoritmo BP requiere. La estructura del MLP con una única capa oculta se muestra en la Figura N° 16:

Figura N° 14:  A rquitectu rqu itectura ra del P erc eptrón con co n una Capa Oc ulta. Fuente: http://es.wikipedia.org/wiki/Red_neuronal_artificial.

 

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

Encontrar el mínimo de una función por medio del GRADIENTE DECRECIENTE. Un algoritmo para encontrar el mínimo local más cercano de una función desconocida, en la que el gradiente de la función puede ser calculado, es el método del gradiente descendente. Este método comienza en un punto y, tantas veces como sea necesario, mueve el punto a minimizándolo en la dirección de Suponemos una función y = f(x), la cual depende de  x , pero no sabemos la forma exacta de la función. Además, suponemos que deseamos encontrar la coordenada” x”, en donde el valor mínimo de  y   es alcanzado, conociendo, para cualquier punto de la función, la

pendiente respectiva. En otras palabras, la función debe ser derivable en todos sus puntos.

 

 

Cuando aplicamos a una función de una dimensión toma la forma iterativa de

, el método

Empezando desde un punto de inicio , para un , hasta que un punto fijo sea alcanzado. En las figuras anteriores se muestra con y en primer lugar con y luego  0.01, como se observa en las imágenes.

 y

 x

 

La regla del gradiente indica que:  x       * pendie  pendiente nte  

 

 

 es suficientemente pequeño, para asegurar que el mínimo sin saltarlo.     0

  y    y ,

se alcance

Aplicación del Gr Gradiente adiente Decreciente Decreciente sobre el err error or ((E) E) pesos(W)

y los

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

E

W

Figura N° 17: Error vs. Pesos Pesos

Formalmente, para cada patrón de entrada p, se asocia un error Ep, el cual está en función de los pesos dados en ese momento; esto es  Ep   f  ( w1, w 2,...,wn) . Típicamente es definido por la diferencia cuadrada entre la salida obtenida y la salida esperada. Así (en el caso del perceptrón), tenemos: 1  Ep    (d    y ) 2   2

 

Donde: y   está en función de los pesos. El error total E , es tan solo la suma de los errores por cada patrón.  E  

 Ep    p

La actualización de pesos se realiza siguiendo el método del gradiente descendiente: W   W       f  (W )  

7.2.2. El aprendizaje por Back propagation El aprendizaje de Backpropagation (Retropropagación)

es uno de

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



Fase Hacia adelante (Forward): En esta fase la red es activada sobre un patrón de entrada y el error de cada neurona de la capa de salida es calculado.

 



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

Objetivo de Aprendizaje: Minimizar el error producido por la r ed    Network activation activation  Forward Step Step  

Error propagation  Backward Step Step  

a. Backpropagation (Regla Delta Generalizada) - 

Se tienen una red neuronal de una capa de entrada, L capas oculta y una capa de salida, en cada capa puede haber más de una neurona. unción de activación una función -  Cada neurona utiliza como ffunción continua, generalmente, la función sigmoidal.

 y( x) 

1

1  e ( x )  y' ( x)   y( x)(1   y ( x))   - 

El error epj producido por una red neuronal, en la neurona  j de su capa de salida, bajo un patrón de entrada p, es:

 

epj = (dj-yj) donde:



dj, es la salida esperada en la neurona j, yj, es la salida obtenida en la neurona j.

El error p,   producido por una red neuronal, bajo un patrón de Epes: entrada   Ep = ½ (ep21 + ep22+ep23+….+ep2m)  Para m nodos de salida.



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

 K 

 j kj kj   j   wkj   k 1 x w    k 1  y

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

Además sea el peso wij, que va desde la neurona i hasta al neurona j de una capa siguiente:  i

 j

wi

wij

= -(E/wij) ........................ ........................ según regla delta E/wij = (E/ j) (i/wij) ........... derivación por cadena E/wij = (E/ j) (xij)  j =-(E/ j); delta (gradiente local) en la neurona j.  Así: wij =  jxij  : es el

factor de aprendizaje xij: es la entrada respecto al peso wij  j : delta de la neurona j  

 

 A diferencia del perceptrón, existen capas ocultas y una capa de salida, cuyas neuronas influencian en distinto nivel al error de la red, lo que origina diferencia en la actualización de pesos.

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

 j =

-(E/ j ) =-(E/yj )* (yj/ j ) =-(E/yj )* y’j( j) 2

E/yj

2

2

= - [( ½(d1-y1) 2 ½(dn-yn)  )/ yj   + ½(d2-y2)   +. . .+ ½(dj-yj) )+. .+ = -( ½ (dj-yj)2 )/ yj = - (-(dj-yj)) = (dj-yj)  (dj-yj)*y’j( yj)*y’j( j)xij wij =  (djy’j( j) = yj(1-yj) wij =  (dj-yj)*yj(1-yj)xij

(2)Veamos cómo cambian los pesos para neuronas de capas ocultas:  j =

-(E/ j ) =-(E/yj )* (yj/ j ) =-(E/yj )* y’j(  j) E = E1 + E2 + EK E/yj = (E1 + .. + EK) / yj () Ek/yj = (E/k )*( k/yj) = (E/k )*(wjk)

E/yj

= - k*wjk  = - (1*wj1 + 2*wi2 + ... +K*wjK)

 

   j

= (1*wj1 + 2*wi2 + ... +K*wjK) * y’j( j)

 

wij =  (1*wj1 + 2*wi2 + ... +K*wjK) * y’j( j)xij

Para toda neurona k, de la capa siguiente, conectada a la neurona j de una capa oculta: y’j( j) = yj(1-yj)  (1*wj1 + 2*wi2 + ... +K*wjK ) * yj(1-yj)xij wij =  (

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

b. Incrementar la velocidad de aprendizaje (Término M MOMENTO) OMENTO) La velocidad de aprendizaje está gobernada por el factor de aprendizaje   . Si éste llega a ser muy alto, es posible que el aprendizaje llegue a ser inestable, oscilando alrededor de un mínimo Una manera“gradiente de resolverdecreciente”, este problema es alterando la reglalocal. de aprendizaje incluyendo un término “momento”  que incluye una proporción del último cambio efectuado. Así la nueva regla es: wij

=  jxij + wijanterior  

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

 

c. Algoritmo 1. Inicializar todos los pesos ale aleatoriamente. atoriamente. 2. Por cada patrón de entrada hacer Propagar las entradas desde la capa de entrada hasta la capa de salida, pasando por las capas ocultas. (Fase hacia adelante) Calcular el error de la red neuronal para el patrón ingresado. Ep = ½ (ep21 + ep22+ep23+….+ep2n) Donde n es el número de neuronas de salida. (Fase hacia atrás) Modificar los pesos asociados con las neuronas ( j’s  j’s) de la capa de salida (dj-yj)*yj(1-yj)xij (1-yj)xij wij =  (dj-yj)*yj Modificar los pesos asociados a las capas ocultas, desde la última capa hacia la primera. wij

=   (1*wj1 + 2*wi2 + ... +K*wjK) * yj(1-yj)xij

Se puede agregar a cada cambio el término “momento”. 3. Repetir el paso 2  hasta que la suma de llos os errores por patrón (error total E) sea menor menor que un valor muy pequeño, o se haya llegado a un estado estacionario.

 

d. Consideraciones - 





-  - 

7.3.

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

Importancia del Estudio

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

 

7.4.

Ejemplo de aplicación de una Red Neuronal Multicapa

Para poder explicar mejor el funcionamiento de una MLP, se procederá a realizar un pequeño sistema que sea capaz de reconocer las vocales del abecedario. Esta aplicación se hará con el algoritmo de backpropagation.

7.4.1. Diseño a) ADQUISICION DE LA IMAGEN O PATRÓN Es la etapa del reconocimiento de patrones, mediante la cual se obtiene la imagen a ser procesada. En nuestro caso, la aplicación solicita al usuario dibujar cada patrón en una matriz de 7 X 5. El programa utilizó una Tabla. La representación de la letra está escrita como un arreglo en el que estén concatenadas todas las filas de su representación matricial, junto con el valor binario correspondiente.

01110100011000111111100011000110001

b) PRE-PROCESAMIENTO DE LA IMAGEN Son las diferentes modificaciones que se hacen para mejorar la calidad del patrón (Ejemplo: normalización, binarización, filtrado, etc). En el estudio realizado este paso es obviado, debido a que el patrón está bien determinado y es bastante pequeño.

 

c) EXTRACCION DE CARACTERISTICAS Es la etapa donde se recopila las características más relevantes del patrón a reconocer, con el fin de acelerar el proceso de reconocimiento.

d) CLASIFICACION Es la etapa final del reconocimiento, donde los patrones ingresados son clasificados mediante una red neuronal que ha sido previamente entrenada. En el ejemplo realizado, la red neuronal ha sido entrenada para reconocer las vocales.  

Estructura de la RNA

  Para la elaboración de la red neuronal, se ha considerado el modelo multicapa que cuenta con:

o

 

una capa de entrada   una capa oculta   una capa de salida.

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

o

representan el código ASCCII de las vocales), obtenidas luego de elaborar cada matriz.   El número de neuronas de capa oculta han sido consideradas iguales que las de la capa de entrada (35).

o

  Para el caso de lla a capa de salida, se ha considerado una neurona.

o

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

o

los patrones entrenados es la siguiente:

 

 

 A (patrón 1) = 0.1 E (patrón 2) = 0.2 I (patrón 3) = 0.3 O (patrón 4) = 0.4 U (patrón 5) = 0.5

  Se ha considerado solamente un patrón de entrenamiento por cada vocal, esto limita la eficiencia de la red y obliga a que los patrones de testeo se asemejen más a los de entrenamiento.

o

  Para el entrenamiento de la red neuronal, se ha utiliz utilizado ado el algoritmo de backpropagation en el caso de la actualización de pesos. Además, para mejorar la minimización de error se utilizó la regla Delta.

o

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

o

 

Patrones de entrenamiento

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

o

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

 

 

Patrones de Prueba

  Las pruebas han sido realizadas tomando 10 patrones de prueba por cada patrón de entrenamiento.

o

 

VOCAL “A” 

 

VOCAL “E” 

 

 

VOCAL “I” 

 

VOCAL “O” 

 

VOCAL “U” 

 

7.4.2. Análisis y Discusión de resultados - 

El factor de aprendizaje utili utilizado zado para el entrenamiento fue d de e 0.25. 



Para el número de iteraciones máximas se consideró 500 y para el mínimo error: 0.0001. 



Después de realizadas las pruebas de reconocimiento, se obtuvieron los resultados que se presentan en las tablas a continuación:

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

N° Test

A

E

I

O

U

1

0.08

0.16

0.43

0.29

0.43

2

0.05

0.16

0.29

0.37

0.42

3

0.29

0.33

0.42

0.27

0.47

4

0.07

0.18

0.34

0.37

0.46

5

0.32

0.16

0.31

0.37

0.48

6

0.09

0.25

0.32

0.28

0.53

7

0.13

0.25

0.39

0.49

0.46

8

0.08

0.19

0.27

0.37

0.54

9

0.17

0.34

0.18

0.39

0.22

10

0.08

0.22

0.41

0.38

0.54

Elaboración propia

 

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

0.5 A

0.4

E 0.3 I 0.2

O U

0.1

0 0

2

4

6

8

10

12

Elaboración propia



Para poder clasificar lla a salida obtenida por cada patrón, se ha procedido a separar por intervalos, de acuerdo a los valores obtenidos, teniendo así:          



Vocal A Vocal E Vocal I Vocal O Vocal U

(Intervalos de salida entre 0.5 y 0.15) (Intervalos de salida entre 0.16 y 0.25) (Intervalos de salida entre 0.26 y 0.35) (Intervalos de salida entre 0.36 y 0.45) (Intervalos de salida entre 0.46 y 0.56)

Para resultados que indicando se encuentren fuera de este rango, la red reportará un mensaje “Patrón desconocido”. 

 

Tabla N° 2: Tabla de rechazos y aciertos

Vocal

Rechazos

Aciertos

A

3

7

E I

2 4

8 6

O

4

6

U

3

7

Elaboración propia

Gráfico N° 2 en el programa Rechazos y aciertos obtenidos 9 8 7 6 5

Rechazos

4 Aciertos 3 2 1 0 A

E

I

O

U

Elaboración propia



Como podemos observar en el cuadro de resultados, el reconocimiento más acertado está en el de la vocal E. Sin embargo, existen muchas equivocaciones al momento de reconocer la vocal I e O.

 



Las posibles causas de los errores reportados en la red se debe a la similitud entre los patrones de entrenamiento ingresados, los parámetros de salida asignados a cada patrón, además de la limitación que tiene el programa por haber sido entrenado con un solo patrón por cada letra.



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



El tiempo de procesamiento del sistema es bastante corto. Para un entrenamiento con 500 iteraciones, el tiempo de respuesta obtenido fue de 16 milisegundos. 

 

  CONCLUSIONES CONCLUSIONES Y RECOMENDACIONES RECOMENDACIONES

8.



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



El modelo MLP es utilizado con gran éxito actualmente. Las áreas donde se aplica más este algoritmo es: reconocimiento de patrones, clasificación de data.



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



Otra observación que se puede hacer a la red neuronal es el parecido de los patrones para elsea entrenamiento. Unaposible alternativa sería utilizar patrones usados cuyo parecido lo más alejado o también ampliar el vector de características de la capa de entrada, otra alternativa es incrementar el número de salidas de acuerdo al número de patrones que reconoce la red. Esto permitirá una mejor obtención de resultados.

 



Se recomienda en trabajos futuros, para mejorar la presente implementación, utilizar más de un patrón de entrenamiento para cada carácter.



El sistema puede ser ampliado para el reconocimiento de todas las letras del abecedario, así como los números, símbolos, entre otros.



Así mismo, al verificar cierto grado de certeza de las respuestas obtenidas con esta simple aplicación, podemos concluir también que en otros trabajos más complejos de reconocimientos de patrones, los resultados se pueden mejorar, teniendo en cuenta las recomendaciones antes mencionadas.

 

  REFERENCIAS BIBLIOGRÁFICAS

9.

[1] Isasi Viñuela, Pedro y Galván, Inés M., “Redes de Neuronas Artificiales: Un Enfoque Práctico” Editorial: Pearson Educacion 2004  2004   [2] Las redes neuronales artificiales y su importancia como herramienta en la toma de decisiones. Villanueva Espinoza, María del Rosario. UNMSM http://sisbib.unmsm.edu.pe/Bibvirtual/tesis/Basic/Villanueva_EM/Contenido. htm Consultado en Octubre, 2010 [3] Redes Neuronales Artificiales y principales tipos- Perceptrón, Universidad Tecnológica de Pereira, Colombia, http://ohm.utp.edu.co/neuronales/Download/Perceptron.pdf Consultado en Octubre, 2010

[4]  Redes Neuronales Artificiales, Andrés Nacelle, Universidad de la República - Uruguay http://www.nib.fmed.edu.uy/Seminario%202009/Monografias%20seminario %202009/Nacell-Redes%20NeuronalesImplementacion.pdf Consultado en Octubre, 2010 [5]  Reconocimiento de patrones mediante Redes neuronales, Emiliano  Aldabas Rubira, UPC-Campus Terrassa-DEE-EUETIT, Barcelona http://www.jcee.upc.es/JCEE2002/Aldabas.pdf Consultado en Octubre, 2010

[6] Redes Neuronales, Pedro Larrañaga, Iñaki Inza, Abdelmalik Moujahid, Universidad del País, Vasco – Vasco – España  España http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t8neuronales.pdf Consultado en Octubre, 2010

 

[7]  Introducción a las Redes Neuronales Artificiales, Marcos Gestal Pose, Departamento de Tecnologías de la Información y Comunicaciones, universidad de Coruña, España http://sabia.tic.udc.es/mgestal/cv/%5BCV%5D%20%20Marcos%20Gestal.pdf Consultado en Octubre, 2010

[8] Redes Neuronales – Neuronales – Perceptrón  Perceptrón Multicapa, José Maria Valls http://eva.evannai.inf.uc3m.es/et/docencia/rn-inf/documentacion/Tema3MLP.pdf Consultado en Noviembre, 2010 [9] Redes Neuronales y Reconocimiento de Patrones, Luis Alonso Romero y Teodoro Calonge Cano, Universidad de Salamanca – Salamanca – España  España http://gredos.usal.es/jspui/bitstream/10366/55893/1/DIA_Redes%20neurona les.pdf Consultado en Octubre, 2010

[10]  Redes Neuronales: Conceptos básicos y aplicaciones, Damián Jorge Matich, Universidad Tecnológica Nacional, España ftp://decsai.ugr.es/pub/usuarios/castro/Material-RedesNeuronales/Libros/matich-redesneuronales.pdf Consultado en Octubre, 2010

 

 ANEXOS

10.

 

Ingreso de patrones a la red

 

 

Etapa de testeo

 

 

 

 

 

 

Tiempo de entrenamiento

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF