Top Banner
LABORATORIO CON ACCESO WEB DE REDES NEURONALES ARTIFICIALES JOSÉ EVELIO LIBREROS POTES UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍA DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICA PROGRAMA INGENIERÍA MECATRÓNICA SANTIAGO DE CALI 2010
102

Laboratorio Con Accceso Web De Redes Neuronales Artificiales

Jul 22, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

LABORATORIO CON ACCESO WEB DE REDES NEURONALES ARTIFICIALES

JOSÉ EVELIO LIBREROS POTES

UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍA

DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICA PROGRAMA INGENIERÍA MECATRÓNICA

SANTIAGO DE CALI 2010

Page 2: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

LABORATORIO CON ACCESO WEB DE REDES NEURONALES ARTIFICIALES

JOSÉ EVELIO LIBREROS POTES

Proyecto de grado para optar al título de Ingeniero Mecatrónico

Director JESÚS ALFONSO LÓPEZ

Ingeniero Electricista Magíster en Automática

Doctor en Ingeniería

UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍA

DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICA PROGRAMA INGENIERÍA MECATRÓNICA

SANTIAGO DE CALI 2010

Page 3: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

3

Nota de aceptación: Aprobado por el Comité de Grado en cumplimiento de los requisitos exigidos por la Universidad Autónoma de Occidente para optar el título de Ingeniero Mecatrónico. Diego Almario

Oscar Campo

Santiago de Cali, Marzo 12 de 2010.

Page 4: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

4

Esta tesis está dedicada a mi Señor Jesús todo poderoso el que siempre ha estado conmigo en todo momento de la vida. Le dedico a mi Mamá Leonilde Potes por darme la seguridad y el entusiasmo para la realización de este proyecto de vida desde mucho tiempo atrás. José Evelio Libreros Potes.

Page 5: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

5

AGRADECIMIENTOS

Gracias a Dios por permitir culminar mi estudio universitario sin la voluntad de él no hubiera podido llegar muy lejos. Agradezco primero a mi padre José Evelio Libreros Holguín por el esfuerzo e interés brindado durante toda la vida, a mi madre Leonilde Potes por brindarme proyección de vida desde muy pequeño, por el amor brindado y sabiduría que siempre la acompañado. Mil gracias de todo corazón y Dios me permita honrarlos por toda la vida. Por otra parte tengo infinitudes de agradecimientos a mis dos hermanas Beatriz Libreros y Juliana Libreros por estar pendiente de lo que necesitaba en todo momento durante mi estadía en la ciudad de Cali. Agradezco a mis tíos y tías por parte de Padre y Madre por su colaboración desinteresada; cada uno aportó su grano de arena en el momento y lugar indicado. A mi tía Gladys Potes gracias por su cariño permanente y entrega total como si fuera su hijo. A mi novia Gloria Sthephany Vallejo gracias por el amor y compañía brindada que fue necesaria y muy grata. Andrés Vallejo que fue clave en la mitad del desarrollo de los módulos. Gracias al director de tesis, doctor Jesús Alfonso López por la atención brindada y paciencia para conmigo durante la realización del proyecto y al coordinador de tesis Jimmy Tombe por su espera al momento de la entrega. Que Dios los guarde y los bendiga cada uno de ustedes. José Evelio Libreros Potes

Page 6: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

6

CONTENIDO

pág. INTRODUCCIÓN 16 1. OBJETIVOS 17 1.1 OBJETIVO GENERAL 17 1.2 OBJETIVOS ESPECÍFICOS 17 2. MARCO TEÓRICO 18 2. 1 RECURSOS ACADÉMICOS PARA LA ENSEÑANZA Y APRENDIZAJE 18 2.2 APLICABILIDAD DE LABORATORIOS VIRTUALES EN EL MARCO ACADÉMICO 18 2.3 INTRODUCCIÓN A LAS REDES NEURONALES 21 2.3.1 Concepto de Neurona Biológica 21 2.3.2 Neurona Artificial 23 2.3.3 Definición de Red Neuronal 25 2.3.4 Arquitectura de Redes Neuronales 25 2.3.5 Función de Activación o Transferencia 26 2.4 PERCEPTRÓN SIMPLE 30 2.4.1 Arquitectura y Funcionamiento 30 2.4.2 Nomenclatura utilizada en el algoritmo del Perceptrón Simple 31 2.4.3 Algoritmo de Aprendizaje del Perceptrón 32 2.5 EL PERCEPTRÓN MULTICAPA 33

Page 7: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

7

2.5.1 Arquitectura del Perceptrón Multicapa: 34 2.5.2 Funcionamiento del Perceptrón Multicapa 35 2.5.3 Nomenclatura utilizada en el algoritmo del Perceptrón Multicapa 36 2.5.4 Algoritmo del Perceptrón Multicapa 36 2.6 MAPAS DE KOHONEN 38 2.6.1 Arquitectura de una Red de Kohonen. 39 2.6.2 Funcionamiento de una Red de Kohonen 40 2.6.3 Algoritmo de Kohonen 41 3. DESARROLLO DEL LABORATORIO CON ACCESO WEB DE REDES NEURONALES ARTIFICIALES 43 3.1 PLANTEAMIENTO DEL PROBLEMA 43 3.1.1 Metodología Desarrollada 43 3.2 ANÁLISIS 43 3.2.1 Etapa 1: Dominio 43 3.2.1.1 Análisis de los Objetivos 44 3.2.1.2 Análisis de Contenidos y Medios 45 3.2.1.3 Análisis de los Usuarios 46 3.2.1.4 Análisis del Ambiente de Trabajo/Estudio 46 3.2.1.5 Análisis de la Infraestructura Tecnológica 46 3.2.2 Etapa 2: Requerimientos del Sistema 47 3.2.2.1 Requerimientos Funcionales 47 3.2.2.2 Requerimientos no Funcionales 48 3.2.2.3 Requerimientos de la interfaz 48

Page 8: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

8

3.2.2.4 Requerimientos de acceso, disponibilidad y escalabilidad 48 3.2.2.5 Requerimientos de Software y Hardware 49 3.3 IDENTIFICACIÓN DE LAS NECESIDADES 49 3.3.1 Especificaciones preliminares 50 3.4 DISEÑO 50 3.4.1 Diseño Instruccional (Nivel Educativo) 50 3.4.1.1 Qué aprendará el usuario 51 3.4.1.2 Cómo Aprenderá el Usuario 51 3.4.2 Diseño de la Presentación (Nivel Comunicacional) 51 3.4.2.1 Particularidades del Diseño de la presentación para el entorno de Simulación 52 3.4.3 Diseño de la Interfaz (Nivel Computacional) 53 3.4.3.1 La GUI en Entorno de Simulación o Diseño Interfaz de Usuario 56 3.4.3.2 Descomposición Funcional módulo Perceptrón Multicapa 60 3.4.3.3 Descomposición funcional módulo Mapas Auto-organizados 67 3.4.4 Conceptos Generados 73 3.4.5 Selección de Conceptos 75 3.5 DESARROLLO 76 3.5.1 El Respaldo Matemático de las Simulaciones 76 3.5.2 Construcción de las Simulaciones en Java con Easy Java Simulations 77 3.5.3 Construcción del LabRed 78 3.6 ADMINISTRACIÓN 80 3.6.1 Instalación y configuración 80

Page 9: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

9

3.6.2 Administración previa al uso del LabRed 81 3.7 CICLO DE VIDA DEL SOFTWARE 81 3.8 EVALUACIÓN 82 4. PROPUESTA DE SOLUCIÓN 83 4.1 PRIMERA ETAPA: PROTOTIPADO CON EASY JAVA SIMULATIONS 83 4.2 SEGUNDA ETAPA: PROTOTIPO CON EASY JAVA SIMULATIONS 86 4.3 TERCERA ETAPA: PROTOTIPO CON EASY JAVA SIMULATIONS 90 4.3.1 Módulo Genérico de Perceptrón Multicapa 90 4.3.2 Módulo de Mapas Auto-organizados 95 5. CONCLUSIONES Y TRABAJO FUTURO 98 5.1 CONCLUSIONES 99 5.2 TRABAJO FUTURO 100 BIBLIOGRAFÍA 101

Page 10: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

10

LISTA DE TABLAS pág.

Tabla 1. Nomenclatura del Perceptrón Simple 32 Tabla 2. Nomenclatura del Perceptrón Multicapa 36 Tabla 3. Planteamiento del Cliente 49 Tabla 4. Importancia de las necesidades 50 Tabla 5. Justificación de búsqueda para módulo Perceptrón Multicapa 64 Tabla 6. Justificación de búsqueda para módulo de Mapas Auto-organizados 70 Tabla 7. Matriz de Tamizaje para módulo Perceptrón Multicapa y módulo Mapas Auto-organizados 75 Tabla 8. Especificaciones de Instalación y Configuración del Servidor 80

Page 11: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

11

LISTA DE FIGURAS pág.

Figura 1. Laboratorio virtual monolítico 19 Figura 2. Laboratorio virtual híbrido 19 Figura 3. Laboratorio virtual distribuido 20 Figura 4. Modelo de Neurona Biológica 22 Figura 5. Neurona Artificial 24 Figura 6. Arquitectura red neuronal 26 Figura 7. Función de transferencia tipo escalón 27 Figura 8. Función de transferencia tipo escalón modificado 28 Figura 9. Función de transferencia lineal 28 Figura 10. Función de transferencia sigmoidal 29 Figura 11. Función de transferencia sigmoidal hiperbólica 29 Figura 12. Perceptrón simple 31 Figura 13. Perceptrón Multicapa 34 Figura 14. Arquitectura de una Red Kohonen 40 Figura 15. Mapa Conceptual del Entorno de Simulación 53 Figura 16. Bosquejo Tipo 1 para la Página Web 55 Figura 17. Bosquejo Tipo 2 para la Página Web 55 Figura 18. Bosquejo de la Ventanas Emergentes 55 Figura 19. Bosquejo de la GUI Principal del Entorno de Simulación 59

Page 12: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

12

Figura 20. Bosquejo del Elemento de Registro Gráfico del Entorno de Simulación 59 Figura 21. Representación caja negra módulo Perceptrón Multicapa 60 Figura 22. Obtención de datos para módulo Perceptrón Multicapa 61 Figura 23. Obtener señales para módulo Perceptrón Multicapa 62 Figura 24. Obtener pesos para módulo Perceptrón Multicapa 62 Figura 25. Dispositivos de control para módulo Perceptrón Multicapa 63 Figura 26. Sistema comunicación externa para módulo Perceptrón Multicapa 63 Figura 27. Viabilidad de obtener datos para módulo Perceptrón Multicapa 65 Figura 28. Viabilidad de señales de activación para módulo Perceptrón Multicapa 65 Figura 29. Viabilidad de obtener pesos para módulo Perceptrón Multicapa 66 Figura 30. Viabilidad dispositivos de control para módulo Perceptrón Multicapa 66 Figura 31. Viabilidad sistema comunicación externa para módulo Perceptrón Multicapa 67 Figura 32. Representación caja negra módulo Mapas Auto-organizados 68 Figura 33. Obtener datos para módulo Mapas Auto-organizados 68 Figura 34. Obtener pesos para módulo Mapas Auto-organizados 69 Figura 35. Dispositivos de control para módulo Mapas Auto-organizados 69 Figura 36. Sistema comunicación externa para módulo Mapas Auto-organizados 70 Figura 37. Viabilidad de obtener datos para módulo Mapas Auto-organizados 71 Figura 38. Viabilidad de obtener pesos para módulo Mapas Auto-organizados 72 Figura 39. Viabilidad dispositivos de control para módulo Mapas Auto-organizados 72

Page 13: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

13

Figura 40. Viabilidad sistema comunicación externa para módulo Mapas Auto-organizados 73 Figura 41. Primer concepto generado 74 Figura 42. Segundo concepto generado 74 Figura 43. Flujo entre las Capas de una Arquitectura MVC 77 Figura 44. Muestra fase desarrollo del Laboratorio a) Conceptos Generales b) Aplicación Reconocimiento de Caracteres 79 Figura 45. Muestra fase desarrollo del Laboratorio a) Teoría de Mapas Auto-organizados b) Aplicación Demo de Kohonen 79 Figura 46. Muestra fase desarrollo del Laboratorio a) Presentación módulo Perceptrón Multicapa b) Módulo Entrenador Perceptrón Multicapa 80 Figura 47. Demo I Arquitectura del funcionamiento de la Neurona Artificial a) Presentación Gráfica Neurona b) Funcionamiento Neurona 83 Figura 48. Demo II Separación lineal con un Perceptrón Simple 84 Figura 49. Demo III Reconocimiento de Caracteres a través de una Red Monocapa 85 Figura 50. Demo IV Regiones generadas en un plano por Perceptrón Multicapa 86 Figura 51. Demo V Visualización del Aprendizaje de Funciones 87 Figura 52. Demo VI visualización demo de Kohonen 88 Figura 53. Demo VI Visualización proceso de aprendizaje competitivo de Kohonen 89 Figura 54. Presentación de Módulo Genérico de Perceptrón Multicapa 90 Figura 55. Creación de archivo de texto para el entrenamiento módulo Multicapa 91 Figura 56. Elección del tipo de datos Multicapa a) Visualización de barra de menú b) Desplegué menú de inicio 92

Page 14: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

14

Figura 57. Inicializando módulo multicapa a) Eligiendo archivo b) inicializando la red 93 Figura 58. Eligiendo funciones de Activación 93 Figura 59. Entrenamiento de la red a) gradiente descendente b) gradiente con momentum c) gradiente con Alfa Variable 94 Figura 60. Visualización de pesos y salida de la red 94 Figura 61. Presentación módulo de Mapas Auto-organizados 95 Figura 62. Creación de archivo de texto para el entrenamiento módulo Kohonen 96 Figura 63. Elección del tipo de Datos Kohonen menú a) Desplegué menú de inicio b) Ventana de selección de archivos 97 Figura 64. Inicializando red de Kohonen 97 Figura 65. Seleccionando Entrenar 98 Figura 66. Reset módulo 98

Page 15: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

15

RESUMEN El uso de laboratorios virtuales es un enfoque de creciente popularidad para la educación en diferentes áreas; tal avance es en gran parte a las nuevas capacidades proporcionadas por las tecnologías de la información. Debido a lo anterior se desarrolló una plataforma virtual y didáctica en Easy Java, que permite, aplicaciones sobre Redes Neuronales Artificiales, evitando la tarea de programación por parte del usuario. Para el desarrollo del proyecto se estudiaron el modo de aprendizaje supervisado Backpropagation y no supervisado de Kohonen que se usa a en la Inteligencia Artificial. Las actividades realizadas en el transcurso del proyecto, se iniciaron con el estudio de las necesidades lo que determinó la valoración y selección de la plataforma en que se implemento el laboratorio virtual. En este sentido el laboratorio con acceso web de Redes Neuronales Artificiales cuenta con aplicaciones realizadas como demos, los cuales son: Funcionamiento de una Neurona Artificial, Separación Lineal con un Perceptrón Simple, Reconocimiento de Caracteres mediante una Red Monocapa, Regiones Generadas mediante un Perceptrón Multicapa, Aprendizaje de Funciones mediante un Perceptrón Multicapa y Mapas Auto-organizados de Kohonen.Tambien cuenta con un módulo genérico de Perceptrón Multicapa y módulo genéricos de Mapas Auto-organizados aproximando al usuario a la práctica de las Redes Neuronales supervisadas y no supervisadas.

Page 16: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

16

INTRODUCCIÓN

Unas de las múltiples técnicas que emplea la Inteligencia Artificial para simular el comportamiento inteligente de los seres humanos, son las denominadas Redes Neuronales Artificiales. Las mismas seducen a profesionales de distintas disciplinas por el gran potencial que ofrecen para resolver problemas complejos. El principal objetivo de este Trabajo de Grado es estudiar el modo de aprendizaje de las redes neuronales, sus aplicaciones didácticas y generar una plataforma virtual didáctica que permita una aproximación a las mismas. Por esta razón se presentan los algoritmos más conocidos que ellas utilizan. En las redes neuronales el conocimiento se incorpora mediante el aprendizaje a partir de ejemplos. Se ha desarrollado un software de simulación en el cual se implementa como método de aprendizaje supervisado de Backpropagation y el método de aprendizaje no supervisado de Kohonen. En el diseño y desarrollo del software se optó por el lenguaje Easy Java, por su robustez, y también por su arquitectura neutra (multiplataforma). El desarrollo de un ambiente virtual de aprendizaje difiere del desarrollo Web clásico, pues implica la creación de una estructura orientada por el componente educativo. En proyectos de mayor escala, los laboratorios virtuales incluyen contenidos mucho más elaborados (escenarios para varios tipos de usuarios, mecanismos de supervisión virtual del proceso de aprendizaje). Debido a que el laboratorio virtual en el cual se enmarca las presentes simulaciones de Redes Neuronales tiene una dimensión ilustrativa, el desarrollo metodológico se aborda de una forma intuitiva y poco formal. Con fines de poner este trabajo en un solo contexto, al entorno de simulación de redes neuronales enmarcado dentro de un laboratorio virtual se le llamará en adelante “Laboratorio con Acceso Web de Redes Neuronales” o LabRed.

Page 17: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

17

1. OBJETIVOS 1.1 OBJETIVO GENERAL Diseñar e implementar un Laboratorio con Acceso Web de Redes Neuronales Artificiales como apoyo a la docencia de esta tecnología perteneciente a la Inteligencia Computacional. 1.2 OBJETIVOS ESPECÍFICOS • Valorar o seleccionar la plataforma en que se implementará el laboratorio virtual. • Diseñar el módulo de Perceptrón Multicapa. • Implementar los algoritmos de gradiente descendente, gradiente descendente con alfa variable y gradiente descendente con momentum para el Perceptrón Multicapa. • Diseñar e implementar demostraciones de aplicaciones realizadas con Perceptrón Multicapa. • Diseñar el módulo de Mapas Auto-organizados. • Implementar un algoritmo competitivo para los Mapas Auto-organizados. • Diseñar e implementar demostraciones de aplicaciones realizadas con Mapas Auto-organizados.

Page 18: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

18

2. MARCO TEÓRICO 2. 1 RECURSOS ACADÉMICOS PARA LA ENSEÑANZA Y APREND IZAJE Un ambiente virtual de aprendizaje: es un sistema de software diseñado en el principio de aprendizaje colaborativo, donde se permite a los estudiantes realizar sus aportes y expresar sus inquietudes; ayudándolos en la administración y desarrollo del curso, además van apoyados de herramientas multimediales que hacen más agradable el aprendizaje pasando de ser simplemente un texto en línea, a un entorno interactivo de construcción de conocimiento. Los servicios proporcionados generalmente incluyen control de acceso, elaboración de contenido educativo, herramientas de comunicación, y la administración de grupos de estudiantes. 2.2 APLICABILIDAD DE LABORATORIOS VIRTUALES EN EL M ARCO ACADÉMICO Los recursos educativos multimedia, son materiales que integran diversos elementos textuales (secuenciales e hipertextuales) y audiovisuales (gráficos, sonido, vídeo, animaciones) y que pueden resultar útiles en los contextos educativos. La Web debe su potencialidad en la educación a elementos como la multimedia como forma de estructura y de redes de área extendidas (Internet) como soporte de conexión, generando espacios virtuales de simulación o modelado computacional. Esto ha permitido el surgimiento de aplicaciones que representa un puente entre aprendizaje pasivo y el compromiso activo siendo muy importante para que los estudiantes desarrollen el juicio práctico y comprenda cómo con cierto tipo de recursos y utilizando modelos adecuados pueden ser en la actualidad un complemento eficaz de las formas de educación convencional por su versatilidad y flexibilidad debido a que están basados en software1.

1 DORMIDO, S. y TORRES F, 2005. Aplicación de las TIC`s a las educación en automática. En: Revista Iberoamericana de Automática en Informática Industrial 2(2),3-7 Citado por TORRES DÍAZ, Leticia Esmeralda. Simulación Sistema de Control en Java: Bases conceptuales y metodológicas para un laboratorio virtual. Trabajo de grado. Ingeniería de Sistemas. Mérida, Venezuela: Universidad de los Andes, 2006. p. 6.

Page 19: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

19

Las herramientas de software para construir un laboratorio virtual de simulación en el marco académico comprenden diversos tipos de tecnologías que se pueden categorizar en función de su configuración y funcionalidad2. Laboratorio virtual monolítico: se descarga un Applet de Java, un Activex o una aplicación que se ejecuta dentro del navegador Web y se reside en el computador del cliente . Es decir, la interfaz y el núcleo de la simulación constituyen un objetivo único. No se necesita la intalación de ningún entorno de simulación, salvo los correspondientes plug-ins o run-time de java , LabView o SysQuake. También se incluyen aplicaciones ejecutables independientes (ver Figura 1). Figura 1. Laboratorio virtual monolítico

Laboratorio virtual híbrido: es análogo al monolítico pero necesita obligatoriamente que el cliente tenga instalado en su computador el entorno de modelado y simulacion, como por ejemplo Matlab y Simulink(ver Figura 2). Figura 2. Laboratorio virtual híbrido

2 ROBERTS, T. 2004. "The virtual machines laboratory", Australasian Journal of Enegineering Eduactionhttp://www.aaee.com.au/journal/2004/roberts04.pdf Citado por TORRES DÍAZ, Leticia Esmeralda. Simulación Sistema de Control en Java: Bases conceptuales y metodológicas para un laboratorio virtual. Trabajo de grado. Ingeniería de Sistemas. Mérida, Venezuela: Universidad de los Andes, 2006. p. 7.

Page 20: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

20

Laboratorio virtual distribuido: el cliente (usuario) ejecuta la interfaz en el navegador Web mientras que el motor numérico es una aplicación (echa en Matlab y Simulink) residente del lado del servidor. El diálogo se establece mediante un servidor de solicitudes y respuestas usando alguna tecnologia Web dinámica del lado del servidor(PHP,ASP,JSP o Java Servlets) o del lado del cliente( Java Script, Applates de Java o Activex) (ver Figura 3). Figura 3. Laboratorio virtual distribuido

Los laboratorios virtuales (en cualquiera de sus categorias) se diseñan de acuerdo al área de aplicación. Desde el punto de vista del estudiante/usuario, los criterios que permiten establecer una clasificación muy clara de estos nuevos entornos son dos: la forma de acceder a los recursos sobre los que se experimenta y la naturaleza del sistema sobre el que se opera. Atendiendo al primer criterio, se puede discernir entre acceso remoto a través de una red y acceso local, es decir, que no implica la utilización de una conexión a Internet para poder operar con los componentes. En lo referente a la naturaleza del recurso, hay que distinguir entre recurrir a modelos simulados o trabajar con plantas reales. Las dimensiones pedagógicas establecidas, indican que los laboratorios virtuales como recursos académicos para la enseñanza y aprendizaje debe diseñarse para que el usuario: • Desarrolle el conocimiento de manera interna, dentro de su propia estructura mental conforme obtiene información e interactúa con su entorno (constructivista).

• Fomente su proceso de aprendizaje mediante comparación, clasificación, deducción, análisis, inducción o convencimiento, análisis de errores y análisis de perspectivas (aprendizaje cognitivo).

Page 21: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

21

• Aborde el problema desde un punto de vista general, para que los conocimientos adquiridos puedan aplicarse con facilidad para resolver planteamientos en situaciones similares pero con estructuras físicas y variables diferentes (metas generales).

• Se encuentre motivado a experimentar con el laboratorio virtual, guiado por la curiosidad y los retos propios de la interpretación de las variables y los resultados de la simulación (motivación intrínseca); o tomando como base las actividades asignadas por el instructor (motivación extrínseca). 2.3 INTRODUCCIÓN A LAS REDES NEURONALES Las Redes Neuronales Artificiales (RNA) o sistemas conexionistas son sistemas de procesamiento de información cuya estructura y funcionamiento están inspirados en las redes neuronales biológicas. Consisten en un conjunto de elementos simples de procesamiento llamados nodos o neuronas conectadas entre sí por conexiones que tienen un valor numérico modificable llamado peso. La característica más significativa de las redes neuronales es su capacidad para aprender a partir de alguna fuente de información interactuando con su entorno. En 1958 el psicólogo Frank Ronsenblant desarrolló un modelo simple de neurona basado en el modelo de McCulloch y Pitts y en una regla de aprendizaje basada en la corrección del error. A este modelo le llamó Perceptrón. Una de las características que más interés despertó de este modelo fue su capacidad de aprender a reconocer patrones. El Perceptrón está constituido por un conjunto de sensores de entrada que reciben los patrones de entrada a reconocer o clasificar y una neurona de salida que se ocupa de clasificar a los patrones de entrada en dos clases, según que la salida de la misma sea 1 (activada) o 0 (desactivada). Sin embargo, dicho modelo tenía muchas limitaciones, como por ejemplo, no es capaz de aprender la función lógica XOR. Tuvieron que pasar unos años hasta que se propusiera la regla de aprendizaje de retropropagación del error para demostrarse que el Perceptrón multicapa es un aproximador universal3. 2.3.1 Concepto de Neurona Biológica. La teoría y modelado de redes neuronales artificiales está inspirada en la estructura y funcionamiento de los sistemas nerviosos, donde la neurona es el elemento fundamental. Existen

3 PÉREZ MUÑOZ, José. Modelos Computacionales [en línea]. España: ICC, s.f. [consultado el 10 de abril de 2009]. Disponible en internet: <http://www.lcc.uma.es/~munozp/> .

Page 22: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

22

neuronas de diferentes formas, tamaños y longitudes. Estos atributos son importantes para determinar la función y utilidad de la neurona. Las neuronas son células vivas y, como tales, contienen los mismos elementos que forman parte de todas las células biológicas. Además, contienen elementos característicos que las diferencian. En general, una neurona consta de un cuerpo celular más o menos esférico, del que sale una rama principal, el axón, y varias ramas más cortas, llamadas dendritas, como se observa en la figura 1. A su vez, el axón puede producir ramas en torno a su punto de arranque, y con frecuencia se ramifica extensamente cerca de su extremo4. Figura 4. Modelo de Neurona Biológica

Fuente: CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Una aproximación practica a las Redes Neuronales Artificiales. Santiago de Cali: Universidad del Valle, 2010. p. 18. Una de las características que diferencian a las neuronas del resto de las células vivas, es su capacidad de comunicarse. En términos generales, las dendritas y el cuerpo celular reciben señales de entrada; el cuerpo celular las combina e integra y emite 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. Las neuronas y las conexiones entre ellas, llamadas sinapsis, son la clave para el procesado de la información5.

4 GONZALES ÁNGELES, José Gustavo y TREJO ÁVILA, Mary Carmen. Data SOMinning: Software para el Descubrimiento de Conocimiento en Grandes Bases de Datos de Información Científico Tecnológica. México: Universidad Nacional Autónoma de México, 2006. p. 115. 5 Ibíd., p. 115.

Page 23: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

23

2.3.2 Neurona Artificial . Alan Turing, en 1936, fue el primero en estudiar el cerebro e intentar simular su funcionamiento de manera computacional; sin embargo, los primeros teóricos que concibieron los fundamentos de la computación neuronal fueron Warren McCulloch, un neurofisiólogo, y Walter Pitts, un matemático, quienes, en 1943, lanzaron una teoría acerca de la forma de trabajar de las neuronas. El modelo propuesto por McCulloch y Pitts representa a cada neurona como una función booleana de dos estados: en reposo o activada. Cada neurona recibe un conjunto de señales de entrada procedentes del mundo exterior o de otras neuronas (donde cada señal es un valor numérico) y obtiene la suma ponderada de las mismas. El estado de la neurona se actualiza de acuerdo a la siguiente regla: si el resultado de la suma excede a cierto umbral entonces la neurona se activa y por lo tanto emite una señal de salida con valor de 1. Si por el contrario es menor entonces la neurona permanecerá en estado de reposo y emite el valor de 0. A partir del modelo propuesto por McCulloch y Pitts y los aspectos funcionales de la neurona biológica6. A continuación en figura 5, se observa en forma detallada el proceso biológico correspondiente al funcionamiento de una Neurona Artificial. Con respecto a una red bilógica, la red artificial, presenta las siguientes analogías: • Las entradas Xi representan las señales que provienen de otras neuronas y que son capturadas por las dendritas. • Los pesos Wi son la intensidad de la sinapsis que conecta dos neuronas; tanto Xi como Wi son valores reales. • Θ es la función umbral que la neurona debe sobrepasar para activarse; este proceso ocurre biológicamente en el cuerpo de la célula. Las señales de entrada a una neurona artificial {X1, X2,.., Xn} son variables continuas en lugar de pulsos discretos, como se presentan en una neurona biológica. Cada señal de entrada pasa a través de una ganancia o peso, llamado peso sináptico o fortaleza de la conexión cuya función es análoga a la de la 6 Ibíd., p. 115.

Page 24: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

24

función sináptica de la neurona biológica. Los pesos pueden ser positivos (excitatorios), o negativos (inhibitorios), el nodo sumatorio acumula todas las señales de entradas multiplicadas por los pesos o ponderadas y las pasa a la salida a través de una función umbral o función de transferencia7. En una neurona artificial el cálculo de la entrada neta se puede representar con la ecuación:

j

N

ijiij wxNet θ+=∑

=1

[1.1]

jjNNjiijjj xwxwxwxwNet θ++++++= ......2211 [1.2]

La salida de la neurona artificial está determinada por una función de activación (Fact), tal como se aprecia en la ecuación 1.3

( )jj NetFacty = [1.3]

Figura 5. Neurona Artificial

7 CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Una aproximación practica a las Redes Neuronales Artificiales. Santiago de Cali:Universidad del Valle, 2010. p. 217.

Page 25: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

25

La neurona artificial posee baja capacidad de procesamiento y su nivel de aplicabilidad es limitado, el potencial se establece a partir de la interconexión entre otras de las mismas, como se presenta en el cerebro. Debido a lo anterior algunos investigadores proponen diversas estructuras para conectarlas entre sí, originando las redes neuronales artificiales. 2.3.3 Definición de Red Neuronal . Las Redes Neuronales Artificiales son elementos simples interconectadas masivamente en paralelo (usualmente adaptativos) y con organización jerárquica, las cuales intentan interactuar con los objetos del mundo real del mismo modo que lo hace el sistema nervioso biológico8. 2.3.4 Arquitectura de Redes Neuronales. La arquitectura o topología de las Redes Neuronales consiste en la organización y disposición de las neuronas en la red formando capas o agrupaciones de neuronas 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. Se conoce como capa o nivel a un conjunto de neuronas cuyas entradas provienen de la misma fuente y cuyas salidas tienen el mismo destino. En las redes Monocapa (1 capa) se establecen conexiones laterales entre las neuronas que pertenecen a la única capa que constituye la red. También pueden existir conexiones autorrecurrrentes (salida de una neurona conectada a su propia entrada). Las redes multicapa son aquellas que disponen de conjuntos de neuronas agrupadas en varios niveles o capas. Normalmente, todas las neuronas de una capa reciben señales de entrada de otra capa anterior, más cercana a las entradas de la red, y envían señales de salida a una capa posterior, más cercana a la salida de la red; a estas conexiones se les denomina conexiones hacia adelante o feedforward. Sin embargo, en un gran número de estas redes también existe la posibilidad de conectar las salidas de las neuronas de capas posteriores a las entradas de las capas anteriores, a estas conexiones se las denomina conexiones hacia atrás o feedback.

8 KOHONEN. T. Self-Organizing Maps. 3 ed. Finlandia, Helsinki: University of Technology Neural Network, 2001. p. 501.

Page 26: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

26

La figura 6 se muestran 5 redes de arquitecturas diferentes: (a) Un Perceptrón de una capa conectado completamente, (b) Un Perceptrón multicapa conectado completamente, (c) Un Perceptrón multicapa modular, (d) Una red recurrente conectada completamente y (e) Una red de Kohonen [González, 2006]. Figura 6. Arquitectura red neuronal

2.3.5 Función de Activación o Transferencia. La selección de funciones de activación se realiza de acuerdo con el problema y a criterio del investigador, en ocasiones por ensayo y error. Comúnmente, la función de activación logística ha sido la más frecuentemente usada trayendo buenos resultados. En la literatura no existe un criterio estándar para la selección de estas funciones de activación en las redes neuronales, ni tampoco existe una exhaustiva investigación en este tema. Limitador fuerte (Hardlim): La figura 4 muestra la función de transferencia tipo escalón, si la neta es menor que cero la salida será cero y si la neta es mayor o igual a cero, la salida será uno. Esta función crea neuronas que clasifican las entradas en dos categorías diferentes, característica que le permite ser empleada en la red tipo Perceptrón9.

9 Reconocedor de Patrones Sonoros [en línea]. España: Terra, junio 2004 [consultado abril de 2009].Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf

Page 27: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

27

Figura 7. Función de transferencia tipo escalón

Fuente: Reconocedor de Patrones Sonoros [en línea]. España: Terra, junio 2004 [consultado abril de 2009]. Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf Limitador fuerte modificado (Hardlims): Una modificación de esta función puede verse en la figura 7, la que representa la función de transferencia tipo escalón modificado que restringe el espacio de salida a valores entre (-1,1)10. (Ver Figura 8, página siguiente).

10 Ibíd., Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf

Page 28: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

28

Figura 8. Función de transferencia tipo escalón modificado

Fuente: Reconocedor de Patrones Sonoros [en línea]. España: Terra, junio 2004 [consultado abril de 2009]. Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf

Función de transferencia lineal (purelin): La salida de una función de transferencia lineal es igual a su neta (figura 9)11. Figura 9. Función de transferencia lineal

Fuente: Reconocedor de Patrones Sonoros [en línea]. España: Terra, junio 2004 [consultado abril de 2009]. Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf

11 Ibíd., Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf

Page 29: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

29

Función de transferencia Sigmoidal (logsig): Esta función toma los valores de entrada (figura 10), los cuales pueden oscilar entre más y menos infinito, y restringe la salida a valores entre cero y uno, de acuerdo a la expresión12. Figura 10. Función de transferencia sigmoidal

Fuente: Reconocedor de Patrones Sonoros [en línea]. España: Terra, junio 2004 [consultado abril de 2009]. Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf Función de transferencia tangente Sigmoidal hiperbó lica (tansig): en la figura 11 se observa que la función toma los valores de entrada, los cuales pueden oscilar entre más y menos infinito, y restringe la salida a valores entre menos uno y uno, de acuerdo a la expresión13. (Ver Figura 11, página siguiente).

12 Ibíd., Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf 13 Ibíd., Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf

Page 30: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

30

Figura 11. Función de transferencia sigmoidal hiperbólica

Fuente: Reconocedor de Patrones Sonoros [en línea]. España: Terra, junio 2004 [consultado abril de 2009]. Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf 2.4 PERCEPTRÓN SIMPLE El Perceptrón Simple fue creado en el año 1957 por el psicólogo Frank Rosenblat, el propósito fue ilustrar ciertas propiedades de los sistemas inteligentes. Rosenblat creía que la conectividad existente en las redes biológicas tiene un elevado porcentaje de aleatoriedad. Rosenblat opinaba que la herramienta de análisis más apropiada era la teoría de probabilidades, y esto lo llevó a una teoría de separabilidad estadística que utilizaba para caracterizar las propiedades más visibles de estas redes de interconexión ligeramente aleatorias14. Se pudo demostrar que el Perceptrón era capaz de clasificar patrones correctamente, en lo que Rosenblat denominaba un entorno diferenciado, en el cual cada clase estaba formada por patrones similares. El Perceptrón también era capaz de responder de manera congruente frente a patrones aleatorios, pero su precisión iba disminuyendo a medida que aumentaba el número de patrones que intentaba aprender. 2.4.1 Arquitectura y Funcionamiento. El Perceptrón es una red de tipo Monocapa pues la capa de entrada, al no realizar procesamiento alguno sobre la señal de estímulo, no se tiene en la cuenta y por tanto esta red posee solo una 14 CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Óp. cit. p. 217.

Page 31: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

31

capa de procesamiento que es la misma de salida. Posee conectividad total, ya que la neurona de la capa de salida está conectada a todas las unidades o neuronas de entrada, tal como se observa en la figura 12. Además, por lo general se le implementan unidades de tendencia o umbral para que la superficie de separación no se quede anclada en el origen del espacio N-dimensional en donde se esté realizando la separación lineal, ya que existen algunos problemas de clasificación de patrones que sin el término de umbral no tendrían solución. La función de activación que utiliza la neurona de salida es la tipo escalón binario [0,+1] o bipolar [-1,+1]15. Figura 12. Perceptrón simple

Fuente: PÉREZ MUÑOZ, José. Modelos Computacionales [en línea]. España: ICC, s.f. [consultado el 10 de abril de 2009]. Disponible en internet: http://www.lcc.uma.es/~munozp/ 2.4.2 Nomenclatura utilizada en el algoritmo del P erceptrón Simple. En la tabla 1 se observa la nomenclatura utilizada para el entrenamiento de un Perceptrón Simple. (Ver Tabla 1, página siguiente).

15 Ibíd., p. 217.

Page 32: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

32

Tabla 1. Nomenclatura del Perceptrón Simple

Fuente: CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Una aproximación practica a las Redes Neuronales Artificiales. Santiago de Cali: Universidad del Valle, 2010. p. 41. 2.4.3 Algoritmo de Aprendizaje del Perceptrón Paso 1 Se asignan los valores iniciales de forma aleatoria a los pesos y el umbral . Paso 2 Se presenta a la red el vector de entrada xp y especificar el vector de salida deseada .

Paso 3 Se calculan los valores netos procedentes de las entradas para las unidades de la capa de salida.

[2.1]

N Número de neuronas en la capa de entrada.

Componente i- ésima de la entrada correspondiente al p-ésimo patrón.

Entrada neta de la neurona j-ésima de la única capa de procesamiento del Perceptrón.

Valor del pesos de la conexión entre la j-ésima neurona de la capa de procesamiento y la i- ésima neurona de la capa de entrada.

Valor umbral o tendencia para la j-ésima neurona de la capa de procesamiento.

Valor de salida de la j-ésima neurona de la capa de procesamiento.

Valor de salida deseado para la j-ésima neurona de la capa de procesamiento.

Valor error para el p-ésimo patrón de aprendizaje. Α Tasa de aprendizaje.

Page 33: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

33

Paso 4 Se calcula la salida de la red.

[2.2]

Paso 5 Se actualizan los pesos de la capa de salida.

[2.3] Paso 6 Se calcula el error del p-ésimo patrón.

[2.4]

Paso 7 Si el error es diferente de cero para cada uno de los patrones aprendidos volver al paso 2. La velocidad de convergencia se ajusta con el valor de parámetro de aprendizaje (α), normalmente dicho parámetro debe ser un número pequeño (del orden de 0.05 a 0.25), aunque este valor dependerá de las características del problema que se esté resolviendo. 2.5 EL PERCEPTRÓN MULTICAPA Las limitaciones de las redes de una sola capa hicieron que se plantease la necesidad de implementar redes en las que se aumentase el número de capas, es decir, introducir capa intermediarias o capas ocultas entre la capa de entrada y la capa de salida de manera que se pudiese implementar cualquier función con el grado de precisión deseado, es decir, que las redes multicapa fuesen aproximadores universales16.

16 PÉREZ MUÑOZ, Óp. cit. p. Disponible en internet: http://www.lcc.uma.es/~munozp/

Page 34: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

34

2.5.1 Arquitectura del Perceptrón Multicapa: un Perceptrón Multicapa como se ve en la figura 13, es una red con alimentación hacia delante, compuesta de varias capas de neuronas entre la entrada y la salida de la misma, esta red permite establecer regiones de decisión mucho más complejas que las de dos semiplanos, como lo hace el Perceptrón de un solo nivel. Figura 13. Perceptrón Multicapa

Fuente: PÉREZ MUÑOZ, José. Modelos Computacionales [en línea]. España: ICC, s.f. [consultado el 10 de abril de 2009]. Disponible en internet: <http://www.lcc.uma.es/~munozp/>

Las capas pueden clasificarse en tres tipos: • Capa de entrada: constituida por aquellas neuronas que introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento. • Capas ocultas: formada por aquellas neuronas cuyas entradas provienen de capas anteriores y las salidas pasan a neuronas de capas posteriores. • Capa de salida: neuronas cuyos valores de salida se corresponden con las salidas de toda la red.

Page 35: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

35

2.5.2 Funcionamiento del Perceptrón Multicapa • Se selecciona un conjunto de patrones claramente representativos del problema a solucionar, con los cuales se va a entrenar la red. • Esta fase es fundamental pues, dependiendo de la calidad de los datos utilizados para el entrenamiento, será la calidad de aprendizaje de la red. • Se aplica un vector de entrada a la red y se calcula la salida de las neuronas ocultas, se propagan estos valores hasta calcular la salida final de la red.

• Se calcula el error entre el valor deseado y la salida de la red. • Se propaga el error hacia atrás, es decir, se estima el error en la capa oculta con base en el error de la capa de salida. • Se modifican los pesos de la capa de salida y de las capas ocultas con base en una estimación del cambio de los pesos W en cada una de las capas que a su vez depende del cálculo del error de la capa de salida y de la estimación del error en las capas ocultas realizado en los pasos anteriores. • Se verifica la condición de parada del algoritmo ya sea por que el error calculado en la salida es inferior al impuesto por el problema bajo análisis o por ejemplo, porque se ha superado un número determinado de iteraciones, en cuyo caso se considera que es necesario hacer ajustes al diseño de la red, pues la solución no converge, o simplemente que se debe ampliar el número máximo de iteraciones a realizar. • En caso de no cumplir con ninguna de las condiciones de parada, se vuelve a presentar a la red un patrón de entrenamiento17.

17 CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Óp. cit., p. 217.

Page 36: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

36

2.5.3 Nomenclatura utilizada en el algoritmo del P erceptrón Multicapa. En la tabla 2 se observa la nomenclatura que se utiliza para el algoritmo del Perceptrón Multicapa. Tabla 2. Nomenclatura del Perceptrón Multicapa

Fuente: CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Una aproximación practica a las Redes Neuronales Artificiales. Santiago de Cali: Universidad del Valle, 2010. p. 79.

2.5.4 Algoritmo del Perceptrón Multicapa 1. Se inicializan los pesos del MLP.

Page 37: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

37

2. Mientras la condición de parada sea falsa se ejecutan los pasos 3 a 12 3. Se aplica un vector de entrada 4. Se calculan los valores de las entradas netas para la capa oculta.

[3.1] 5. Se calcula la salida de la capa oculta.

[3.2] 6. Se calculan los valores netos de entrada para la capa de salida.

[3.3]

7. Se calculan las salidas de la red.

[3.4]

8. Se calculan los términos de error para las unidades de salida.

[3.5] 9. Se estiman los términos de error para las unidades ocultas.

[3.6]

Page 38: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

38

10. Se actualizan los pesos en la capa de salida.

[3.7] 11. Se actualizan pesos en la capa oculta.

[3.8]

12. Se verifica si el error global cumple con la condición de finalizar.

[3.9]

2.6 MAPAS DE KOHONEN Las redes de neuronas artificiales con aprendizaje no supervisado se han aplicado con éxito a problemas de reconocimiento de patrones y detección de señales. Estas redes construyen clases o categorías a partir de los datos de entrada utilizando correlaciones o medidas de similitud y tratan de identificar particiones “óptimas” en el conjunto de datos de entrada18. Teuvo Kohonen, profesor de la Facultad de Ciencias de la Información (Universidad Tecnológica de Helsinki), presentó en 1982 un modelo de red neuronal artificial con capacidad de generar de manera automática agrupaciones de datos multidimensionales y proyectar dicha agrupaciones en mapas bidimensionales de manera que las relaciones de similitud entre los datos se representan por la cercanía de sus proyecciones en los mapas. Con este modelo intenta simular los mapas de los fenómenos sensoriales y motores existentes en el cerebro. Esta red es de tipo auto-organizado, esto es, que de manera automática clasifica conjuntos de datos de los que no se conoce a priori ningún tipo de organización.

18 PÉREZ MUÑOZ, José. Óp. cit., Disponible en internet: http://www.lcc.uma.es/~munozp/

Page 39: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

39

La red, a partir de un proceso de auto-organización, proporciona un resultado, que depende de la relación de similitud existente entre dichos patrones de entrada. El algoritmo de aprendizaje de la red de Kohonen está basado en el aprendizaje no supervisado y entrenamiento competitivo, lo cual quiere decir que no se necesita intervención humana durante el mismo y que se necesita saber muy poco sobre las características de la información de entrada. Se podría, por ejemplo, usar la red SOM para clasificar datos sin saber a qué clase pertenecen los mismos. La idea de entrenamiento competitivo consiste en determinar cuál de las neuronas es la que mejor representa a un estímulo de entrada dado. A esta neurona se le considera neurona ganadora y tiene la capacidad de inhibir a las otras neuronas; es decir, el vector de pesos de estas neuronas no será ajustado de igual forma que el vector de la neurona ganadora. 2.6.1 Arquitectura de una Red de Kohonen. El mapa auto-organizado de Kohonen está constituido por dos niveles de neuronas, el de entrada y el de salida. Pero sólo en el nivel de salida se genera un procesamiento de información, por lo que recibe el nombre de Capa de Salida y la red pertenece al tipo Monocapa. La conectividad es total, es decir, todas las neuronas de la capa de salida reciben los estímulos de las neuronas de entrada. Las neuronas de entrada reciben la información de los datos provenientes del exterior de la red neuronal y a través de las conexiones sinápticas envían esta información a la capa de procesamiento de la red19. (Ver Figura 14, página siguiente).

19 CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Óp. cit., p. 217.

Page 40: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

40

Figura 14. Arquitectura de una Red Kohonen

Fuente: BARRETO, Miguel. Mapas Auto-organizados [en línea]. Colombia: Slideshare, s.f. [consultado 10 de abril del 2009]. Disponible en Internet: http://www.slideshare.net/askroll/mapas-de-kohonen-como-una-herramienta-visual-de-apoyo-al-soporte-de-decisiones-en-agroecologa-presentation 2.6.2 Funcionamiento de una Red de Kohonen . El funcionamiento es relativamente simple. Cuando se presenta a la entrada la información de uno de los patrones cada una de las neuronas de la Red Neuronal Competitiva recibe la información a través de las conexiones feedforward con pesos Wij. Cuya influencia dependerá de la distancia a la que se encuentre de patrón presentado, ya que se activa una neurona de salida, llamada neurona ganadora. En la fase de funcionamiento, lo que se pretende es encontrar el dato aprendido más parecido al de entrada para, en consecuencia, averiguar qué neurona se activará y sobre todo, en qué zona del espacio bidimensional de salida se encuentra. Lo que hace la red en definitiva es realizar una tarea de clasificación, ya que la neurona de salida activada ante una entrada representa la clase a la que pertenece dicha información de entrada. Además, como ante otra entrada parecida se activa la misma neurona de salida, u otra cercana, debido a la semejanza entre las clases, se garantiza que las neuronas topológicamente próximas sean sensibles a entradas físicamente similares. Por tanto, esta red es especialmente útil para establecer relaciones entre conjuntos de datos.

Page 41: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

41

2.6.3 Algoritmo de Kohonen Paso 1 Se define la arquitectura de la red, con N neuronas en la capa de entrada y en la capa de salida un mapa de Mf x Mc neuronas. Cada neurona se define con el vector de pesos sinápticos, wi tiene la misma dimensión R del espacio de entrada, cuyos valores iniciales se asignan aleatoriamente. Se definen los parámetros de control: Paso 2 Se selecciona un vector de entrada x de manera aleatoria, tal que pertenezca al conjunto de patrones de entrenamiento. Paso 3 Se determina el índice de la neurona ganadora s con base en la mínima distancia entre el vector de entrada y los vectores de pesos de las neuronas.

[4.0]

Paso 4 Se modifican los pesos de la neurona r-ésima de acuerdo con:

[4.1] Donde,

, [4.3]

Page 42: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

42

Paso 5 Se incrementa el parámetro t.

[4.4]

Paso 6 Si t < tmax se retorna al Paso 2.

Page 43: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

43

3. DESARROLLO DEL LABORATORIO CON ACCESO WEB DE RE DES NEURONALES ARTIFICIALES

3.1 PLANTEAMIENTO DEL PROBLEMA Actualmente el departamento de automática de la Universidad Autónoma de Occidente no cuenta con un módulo de un Laboratorio con Acceso Web de Redes Neuronales Artificiales que permita la práctica y el aprendizaje de los conceptos iníciales y básicos asociados a las Redes Neuronales Artificiales como Perceptrón Multicapa y Mapas Auto-organizados. La universidad al no tener un módulo de laboratorio con Acceso Web de Redes Neuronales Artificiales que le faciliten al estudiante la práctica y el aprendizaje, está limitada a usar programas complejos y robustos de simulación matemático como lo es MATLAB ® el cual no puede realizar prácticas fáciles y rápidas en los diferentes equipos de toda la universidad en cuanto se refiere a la Inteligencia Artificial. Por esta razón se pretende diseñar e implementar los módulos de Inteligencia Artificial como lo son Perceptrón Multicapa y Mapas Auto-organizados con el fin de ayudar a la docencia para la facilidad de generar nuevos cursos virtuales. 3.1.1 Metodología Desarrollada. Antes de diseñar y por consiguiente desarrollar un laboratorio virtual, es indispensable llevar a cabo un análisis extensivo del contexto en el cual se va a implementar el sistema, atendiendo a las diferentes necesidades educativas, funcionales y de información de los usuarios. 3.2 ANÁLISIS El análisis del LabRed está dirigido a satisfacer las dos etapas; dominio y requerimientos de la aplicación. 3.2.1 Etapa 1: Dominio. El sistema que se busca desarrollar es un laboratorio virtual para simulación, destinado a formar parte de los recursos de apoyo didáctico complementario en la realización de prácticas de redes neuronales artificiales.

Page 44: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

44

En principio, el LabRed está dirigido a ser utilizado por alumnos de Ingeniería, de la Universidad Autónoma de Occidente (Cali, Colombia). Sin embargo, bien podría ser utilizado por usuarios de cualquier lugar del mundo con un perfil educativo similar. El LabRed, en su fase funcional, está orientado al apoyo de procesos. Desde un punto de vista global, estos procesos son de dos tipos: • Proceso Informativo: concebida como un conjunto de actividades de recepción y transmisión de información referida a lo que es el LabRed y cómo funciona.

• Proceso Formativo (o educativo): entendido como el conjunto de actividades que convierten al LabRed en un recurso de enseñanza, aprendizaje. Ambos procesos se realizan dentro del único escenario del LabRed, definido para los usuarios en general. 3.2.1.1 Análisis de los Objetivos. Los objetivos expuestos como resultado del análisis, están íntimamente relacionados a los objetivos de este proyecto, pudiendo cubrir aspectos educativos y funcionales. Como objetivos del sistema se establecen: • Crear un ambiente virtual que sirva como suplemento al aprendizaje de los aspectos teóricos prácticos de las Redes Neuronales Artificiales.

• Crear oportunidades para que el usuario explore y aprenda guiados por su conocimiento teórico y por su curiosidad, permitiéndoles cometer errores, sin riesgos de daño. • Facilitar la comprensión de los aspectos teóricos de las Redes Neuronales Artificiales.

Page 45: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

45

Específicamente se busca lograr que el usuario aborde sin problemas cada uno de los conceptos básicos de las Redes Neuronales, en particular en el diseño de las redes para luego ser entrenadas y hacer que el sistema responda de una forma deseada y su relación directa con los parámetros. 3.2.1.2 Análisis de Contenidos y Medios. Para cumplir con algunos de los objetivos expuestos anteriormente, los contenidos del LabRed deben agruparse en función de los procesos que apoyan, es decir, los procesos informativos y formativos. La estructura del LabRed “visible” al usuario, se construye en base a estos contenidos. De esta manera, los contenidos que apoyan a los procesos informativos abarcan: • Presentación del LabRed, aquí se expone qué es el laboratorio virtual, quién puede utilizarlo y cuáles son sus aplicaciones. • Descripción de las simulaciones, su funcionamiento y la forma correcta de interactuar con los elementos que la conforman. Y finalmente los contenidos que apoyan a los procesos formativos comprenden: • Desarrollo de los aspectos de análisis, diseño y entrenamiento, aplicados a cada uno de los ejercicios que conforman al LabRed. Esto establece la base teórica necesaria para las simulaciones de los ejercicios de redes neuronales artificiales.

Implementación de la GUI interactiva que permite llevar a cabo las simulaciones. Los medios utilizados para desplegar los contenidos pueden ser expositivos o interactivos. Así para el LabRed, se pudiéran utilizar elementos de texto plano colocado en páginas en HTML, imágenes en formatos ligeros (JPEG, GIF) y componentes Web interactivos.

Page 46: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

46

3.2.1.3 Análisis de los Usuarios. En este contexto, se entiende por usuario a la persona que interactúa con los contenidos del LabRed. El perfil de los usuarios del LabRed está dado como mínimo por las siguientes características: • Son estudiantes universitarios de pregrado de materias afines de sistemas inteligentes.

• Tienen nociones de simulación y entrenamiento de Redes Neuronales. De esta forma queda sobreentendido que cuentan con los conocimientos matemáticos y de cálculo necesarios para resolver operaciones.

• Tienen el conocimiento y la practica necesaria para interactuar con ambientes computarizados. 3.2.1.4 Análisis del Ambiente de Trabajo/Estudio. Tomando en cuenta que el sistema que se desea desarrollar está basado en Web, los usuarios deberían poder realizar las practicas con el LabRed en cualquier lugar (en sus casas, en la universidad o en cualquier espacio cibernético publico o Cyber), a través del navegador Web de un computador conectado a Internet o cualquier otra red en la que se encuentre el servidor que aloja el sistema. El sistema puede ser utilizado por los usuarios de forma individual o grupal, preferiblemente con el apoyo de un instructor (el docente de alguna materia de sistemas inteligentes por ejemplo) quien podría proponer un conjunto de actividades que permitan orientar las experiencias con el laboratorio virtual para entrenamiento y simulación. Los instructores deben tener en cuenta que el éxito de un sistema de aprendizaje basado en Web depende en gran medida de la interacción que se lleva a cabo durante el mismo. Por ello, el instructor, más allá de su papel de transmisor de conocimiento, pasa a ser un guía o facilitador del proceso educativo de los usuarios dentro del ambiente de aprendizaje virtual. 3.2.1.5 Análisis de la Infraestructura Tecnológica . Para hacer funcional el LabRed, se necesita disponer de:

Page 47: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

47

• Un computador con espacio en disco duro para alojar a los archivos y programas que conforman al laboratorio de simulación desarrollado en su totalidad.

• Conexión a Internet. 3.2.2 Etapa 2: Requerimientos del Sistema. Según el glosario del IEEE (Institute of Electrical and Electronics Engineers), un requerimiento es: (a) una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo, (b) una condición o capacidad que debe estar presente en un sistema o componentes del sistema para satisfacer un contrato, estándar, especificación u otro documento formal20. Los requerimientos pueden dividirse en requerimientos funcionales y requerimientos no funcionales. Los requerimientos funcionales definen las funciones que el sistema será capaz de realizar. Los requerimientos no funcionales tienen que ver con características que de una u otra forma puedan limitar al sistema. Atendiendo al análisis mostrado, y tomando como base los objetivos, se procede a establecer los requerimientos que el LabRed debería satisfacer en su etapa funcional. 3.2.2.1 Requerimientos Funcionales • El sistema debe entrenar una red Perceptrón multicapa gradiente descendente. • El sistema debe entrenar una red Perceptrón multicapa gradiente descendente con alfa variable. • El sistema debe entrenar una red Perceptrón multicapa gradiente descendente con momentum.

20 IEEE Std 610.12-1990, “IEEE Standard Glossary of Software Engineering Terminology” [en línea]. Estados Unidos: IEEE, 1990 [consultado el 15 de junio de 2009]. Disponible en internet: http://standards.ieee.org/reading/ieee/std_public/description/se/610.12-1990_desc.

Page 48: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

48

• El sistema debe entrenar una red competitiva para mapas auto-organizados. • El sistema debe cargar los parámetros de entrenamiento. • El sistema debe inicializar la red neuronal. • El sistema debe reiniciar la red neuronal. • El usuario debe tener la opción de ayuda al usuario.

3.2.2.2 Requerimientos no Funcionales . El lenguaje debe de desarrollarse en lenguaje (Java o C++). 3.2.2.3 Requerimientos de la interfaz: • El LabRed debe estar estructurado para abordar los ejercicios desde el punto de vista teórico y práctico. • La GUI del LabRed debe ser sencilla, con módulos organizados de forma que permitan comprender su funcionamiento de una forma intuitiva. • El sistema debe manejar como entrada datos interpretados de forma numérica, y debe proporcionar como salida datos de tipo numérico y grafico. 3.2.2.4 Requerimientos de acceso, disponibilidad y escalabilidad • El servidor que aloja al LabRed, requiere estar conectado a Internet las 24 horas, para favorecer la accesibilidad desde cualquier lugar y en cualquier horario. • El servidor que aloja al LabRed, debe estar capacitado para soportar conexiones de usuarios múltiples en forma simultánea.

Page 49: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

49

• El LabRed debe poder ser accedido por cualquier persona, lo que implica que el servidor permita accesos públicos. 3.2.2.5 Requerimientos de Software y Hardware • El LabRed debe poder funcionar bajo cualquier plataforma tecnológica. • Tanto el computador cliente (desde donde trabaja el usuario) como el servidor (donde se aloja el LabRed) deben estar conectados a Internet. • El navegador Web del usuario debe tener los plug-ins necesarios para soportar Applets. Este requerimiento es mandatorio si y solo si se decide incorporar Applets de Java como parte de la estructura dinámica del LabRed. 3.3 IDENTIFICACIÓN DE LAS NECESIDADES En la tabla 3 en forma clara y rápida se visualiza la identificación de las necesidades de acuerdo a lo que el cliente planteo. Tabla 3. Planteamiento del Cliente

Planteamiento del cliente Planteamiento de la necesidad "Que reaccione ante los cambios de las variables"

Sensibilidad a los cambios de las variables

"Que no sea muy caro" Económico "Que el sistema se pueda conectar a diferentes sistemas operativos"

Compatibilidad

"Que no sufra daños" Fácil mantenimiento y reparación "Que garantice la seguridad del servidor" Seguro "Que me pueda comunicar fácilmente con el" Fácil interacción con el usuario

"Deseo que el sistema sea fácil de instalar" Fácil instalación "Quiero que las información interna y externa sea clara"

Buena comunicación interna y externa

Page 50: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

50

3.3.1 Especificaciones preliminares. Con el planteamiento del cliente y teniendo clara la especificaciones preliminares en la tabla 4, se observa la importancia de que se le da a cada una de ellas. Tabla 4. Importancia de las necesidades

No. Necesidad Importancia 1 Laboratorio Sensibilidad a los cambios de las variables 9 2 Laboratorio Económico 5 3 Laboratorio Compatibilidad 9 4 Laboratorio Fácil mantenimiento y reparación 9 5 Laboratorio Seguro 9 6 Laboratorio Fácil interacción con el usuario 5 7 Laboratorio Fácil instalación 5 8 Laboratorio Buena comunicación interna y externa 9

3.4 DISEÑO Teniendo en cuenta los requerimientos del sistema que han sido extraídos del análisis inicial, se procede a llevar a cabo el diseño del ambiente virtual de aprendizaje. En esta etapa se definen los objetivos, su comportamiento, el propósito de la aplicación, las restricciones y los escenarios de interacción. El diseño se realiza a tres niveles diferentes: educativo, comunicacional y computacional. 3.4.1 Diseño Instruccional (Nivel Educativo). A partir de los requerimientos definidos en la etapa de análisis, los procesos que apoyan el LabRed, los potenciales usuarios y su perfil, se definen los principios deseables a aplicar desde el punto de vista educativo. Para el diseño Instruccional del LabRed se consideran los siguientes principios:

Page 51: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

51

• Interactividad persona-computador, asegurando que los medios interactivos estén directamente relacionados con las dimensiones pedagógicas señaladas. • Aprendizaje centrado en procesos más que en contenidos, localizando la actividad del usuario más en los procesos para generar y utilizar información, que en el cuerpo de la información misma. • Globalización, considerando que el acceso al LabRed puede realizarse desde cualquier parte del mundo, y que está disponible a quien decida buscarla por la red, habilitando al usuario para que los contenidos educativos puedan identificarse; transferirse localmente, valorarse y aprovecharse según sus necesidades. 3.4.1.1 Qué aprenderá el usuario. En general, con el uso del LabRed se espera que el usuario aprenda los conceptos básicos de Redes Neuronales Artificiales, cuya dinámica puede describirse a través de un grupo de ecuaciones. Para cumplir con esta premisa, el LabRed debe presentar a los ejercicios de Redes Neuronales en términos de un conjunto de etapas seguidas desde el punto de vista teórico y práctico. 3.4.1.2 Cómo Aprenderá el Usuario. El usuario aprenderá según las dimensiones pedagógicas establecidas para orientar el diseño Instruccional. Básicamente, la esencia de la experiencia de aprendizaje, se centra en los elementos interactivos de la interfaz, en particular en las simulaciones, pues es a través de ellas que el usuario recibe la retroalimentación de los efectos de sus acciones sobre el comportamiento del sistema en estudio. 3.4.2 Diseño de la Presentación (Nivel Comunicacio nal). Si bien los aspectos que comprenden el diseño de la presentación son de importancia crítica en la elaboración de sitios Web, muy especialmente cuando se refiere a la creación de Software (Web o no) educativo, escapa del propósito de este trabajo, la realización de un diseño Web minucioso para sitio que alojará al entorno de las simulaciones. Por ello, en el presente caso para el diseño a nivel comunicacional, basta abordar aquellos aspectos para construir un sistema que facilite al máximo los procesos de

Page 52: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

52

comprensión y asimilación de la información presentada a los usuarios en el contexto de las simulaciones. El primer paso consiste en darle una estructura general a los contenidos que maneja el LabRed. Claramente, la elaboración del diseño de presentación del LabRed requiere de varios tipos de pantalla, que se pueden clasificar según la funcionalidad del contenido que albergan. • Pantallas Informativas : están formadas por aquellos contenidos cuya función es informar al usuario sobre el LabRed y sus recursos locales. En esta categoría se incluyen también a las ventanas emergentes cuyo propósito es aclarar conceptos específicos o proporcionar mensajes de ayuda. • Pantallas expositivas: consta de todos los contenidos que exponen la base teórica de redes neuronales.

• Pantallas de experimentación: Son las que contiene al entorno de simulación propiamente dicho. Las pantallas informativas y expositivas están formadas por elementos de texto e imágenes en formatos ligeros, mientras que las pantallas de experimentación, además de texto e imágenes, incluyen a los componentes Web donde se ejecuta la interfaz de las simulaciones y se despliegan los resultados. En general, para todas las pantallas la apariencia (fuentes, colores, fondos, enlaces, etc.) está definida favoreciendo una presentación homogénea y más estética al usuario. El conjunto de todos estos aspectos determina la usabilidad del sistema. 3.4.2.1 Particularidades del Diseño de la presentac ión para el entorno de Simulación. La figura 15 (página siguiente), muestra el mapa conceptual que expone la estructura en la que se organizan los distintos elementos del entorno de simulación para la estrategia de control del sistema tomando como ejemplo piloto.

Page 53: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

53

Se especifica además, la forma en que el usuario puede interactuar con cada uno de estos elementos (obsérvese la leyenda del mapa conceptual). Figura 15. Mapa Conceptual del Entorno de Simulación

3.4.3 Diseño de la Interfaz (Nivel Computacional). La GUI del LabRed debe disponer de las características necesarias para su integración con las tareas que apoya. Tales características incluyen aspectos como: • Facilidad de uso: la tecnología utilizada para implementar el LabRed debe aportar aplicaciones fáciles de utilizar, mantener o modificar. La interfaz con el usuario está basada en páginas Web cuya utilización está ampliamente difundida y aceptada. Por tal razón el diseño, mantenimiento y modificación del LabRed no necesita de un alto grado de especialización.

Page 54: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

54

• Sistema abierto: se refiere a un sistema cuyo funcionamiento sea independientes de la plataforma. El entorno de simulación Web no debería depender de los sistemas operativos con los que se trabaje. Cada nodo del sistema (cliente y servidor) deberá contar con conexión a Internet y cada sistema operativo deberá incluir la pila de protocolos de comunicaciones necesaria. • Acceso transparente: garantiza el acceso a la información y los servicios desde cualquier computador conectado a la red. • Estándar libre: el diseño y desarrollo del LabRed debe estar preferiblemente basados en estándares y tecnologías ampliamente extendidas y de acceso libre.

Las páginas en HTML puede crearse con cualquier editor de texto disponible y los componentes dinámicos pueden implementarse en distintos lenguajes de programación establecidos (C, Java, etc.). De esta forma también se asegura un costo económico bajo. En base a esto, y a partir de la información obtenida en las fases de diseño educativo y comunicacional, se puede establecer en esta etapa un diseño más refinado del rostro del LabRed. Cuando se habla de la GUI del LabRed, se está refiriendo en realidad a dos tipos de GUI: la de las páginas Web que conforman el sitio Web donde se colocan los diferentes contenidos del LabRed, y la GUI del entorno de simulación. Las figuras 16 y 17 corresponden a los bosquejos que muestran la forma de organizar los elementos de la GUI dentro de las páginas Web. El bosquejo tipo 1 es la referencia para organizar los elementos en las pantallas informativas y formativas. Para las pantallas de experimentación, los elementos se organizan según el bosquejo tipo 2.

Page 55: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

55

Figura 16. Bosquejo Tipo 1 para la Página Web

Figura 17. Bosquejo Tipo 2 para la Página Web

Adicionalmente las ventanas emergentes vinculadas a las pantallas informativas, tienen una estructura que corresponde a la figura 18. Figura 18. Bosquejo de la Ventanas Emergentes

Page 56: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

56

Para las distintas aéreas mostradas en los bosquejos, se define: � Encabezado: es el área destinada para desplegar el titulo de la página, contiene elementos de texto y la imagen del logotipo de la sección del sitio Web que alberga al LabRed. � Barra de Navegación: como su nombre lo indica, es aquí donde se coloca el control principal de navegación definido. Esta barra está implementada con elementos de imagen dinámicos. � Contenido Principal (General): es el área donde se colocan los elementos de texto e imágenes correspondientes a los contenidos informativos y formativos. � Contenido Principal (Entorno de Simulación): está área aparece exclusivamente en las pantallas de experimentación, y está destinada para colocar el entorno de simulación compuesto por un componente Web interactivo con una GUI propia. � Pie: es el área destinada para colocar información sobre la licencia del sitio Web, autor y otros aspectos relacionados a la elaboración y funcionamiento general del sitio Web. 3.4.3.1 La GUI en Entorno de Simulación o Diseño I nterfaz de Usuario. El diseño de interfaces es un campo sumamente amplio y para muchos, interesante. De hecho, se deberían contar con personas dedicadas y preparadas para realizar exclusivamente estas tareas. El diseño de interfaces no sólo se trata de botones y menús; se trata de la interacción entre el usuario y la aplicación o dispositivo, y en algunos casos, se trata de la interacción entre múltiples usuarios a través de ese dispositivo. Esto significa que el diseño de la interfaz de usuario no es como se ve un producto visualmente hablando, si no, como es que éste trabaja. No sólo es ordenar botones y seleccionar colores.

Page 57: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

57

Características de las Interfaces gráficas de usuar io (GUI)

• Iconos: representan diferentes tipos de información, por ejemplo archivos, procesos, etc. • Menús: los comandos se seleccionan de un menú en lugar de teclearse en un lenguaje de órdenes.

• Pestañas: estas son muy utilizadas, de fácil comprensión y de convención mundial para la navegación.

• Ventanas: ventanas múltiples permiten que se despliegue simultáneamente información diversa en la pantalla del usuario.

Principios de diseño de Interfaces de usuario Claridad: las interfaces claras no necesitan manuales, asimismo, aseguran que los usuarios comentan menos errores mientras las usan. Concisión: el verdadero problema de hacer una buena interfaz es hacerla concisa y limpia al mismo tiempo, es decir, sin hacerla minimalista demás, ni sobre poblarla con elementos por todos lados. Capacidad de Respuesta : una buena interfaz no debe sentirse pesada. Consistencia : mantener la interface consistente a lo largo de la aplicación es importante porque permite al usuario reconocer patrones de uso. Estética : hacer que algo se vea bien hará que el tiempo en el que los usuarios usen la aplicación sea más agradable Familiaridad del usuario: utilizar términos y conceptos que se toman de la experiencia de las personas que más utilizan el sistema.

Page 58: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

58

Con el fin de reforzar el dinamismo y los aspectos cualitativos de la GUI del LabRed, el entorno de simulación debe estar dotado de elementos interactivos, y debe favorece la visualización dinámica y la animación de los elementos (cuando el sistema lo permite). La GUI del entorno de simulación consta de los siguientes elementos: el diagrama del proceso, los paneles de control y los registros gráficos. A continuación se describen cada uno de ellos. Diagrama de Proceso: está compuesto por un esquema grafico del proceso (algunos de los objetos presentes pueden tener animación) con visualización alfanumérica de las señales y unidades más importantes. Paneles de Control: tienen tres tipos de elementos (botones, deslizaderas y campos). Panel de Simulación: consiste en botones que permiten inicializar, arrancar, parar y reiniciar la simulación del proceso. Incluye también las cajas de chequeo que activan el despliegue del registro grafico y otros elementos opcionales. Se localiza en la parte superior de la GUI. Panel de Variables Interactivas: consiste en deslizaderos y/o campos alfanuméricos para modificar el valor de los parámetros del modelo. Panel de Resultados: este panel incluye el despliegue de los resultados numéricos y textuales de la simulación, es decir muestra información de salida. Registros gráficos: proporcionan la visualización gráfica de las variables principales del sistema. Al mismo tiempo cuando la simulación progresa, estos registros reflejan de forma dinámica y continua cualquier cambio en las variables que toman parte del proceso. Los cambios en las señales del sistema se pueden deber a las acciones del usuario (movimiento de una deslizadera en el diagrama del proceso). Este panel puede o no ser visible, de acuerdo con la preferencia del usuario, es por ello que no forman parte de la ventana que contiene a los paneles principales

Page 59: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

59

El bosquejo de la GUI del entorno de simulación con la ubicación de todos sus elementos se muestra en las figuras 19 y 20. Figura 19. Bosquejo de la GUI Principal del Entorno de Simulación

Figura 20. Bosquejo del Elemento de Registro Gráfico del Entorno de Simulación

Page 60: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

60

Es importante tener en cuenta, que los entornos de simulación deben estar definido en el contexto de una pantalla de experimentación, en donde la simulación propiamente dicha, está antecedida por una descripción de los objetivos, conocimientos previos requeridos e información sobre el funcionamiento de la simulación. 3.4.3.2 Descomposición Funcional módulo Perceptrón Multicapa. Como se observa en la figura 21, la descomposición funcional el módulo contara con tres funciones especificas la cuales son; ingreso de datos, entrenamiento y resultados del entrenamiento. Ingreso de datos: para esta función el módulo tendrá como objetivo la arquitectura de la red mediante el ingreso de datos como son; las entradas, número de parámetros de entrenamiento, número de salidas de la red, señales de activación y dispositivos de control (ver figura 21). Entrenamiento: ya realizada la función de ingreso de datos lo siguiente a ejecutar será la del entrenamiento mediante tres sub funciones que se llamarán: capa de entrada, capa oculta, capa de salida (ver figura 21). Resultados del entrenamiento: la última función que realiza el módulo será la visualización del proceso y resultado del entrenamiento (ver figura 21). Figura 21. Representación caja negra módulo Perceptrón Multicapa

Page 61: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

61

• Árbol de clasificación módulo Perceptrón Multicapa. En las siguientes figuras se observa el árbol de clasificación para el módulo Perceptrón Multicapa. Obtener datos a partir de archivos: el software debe permitir cargar un archivo predeterminado txt (Ver figura 22). Obtener datos digitándolos: el software debe permitir que el usuario ingrese los datos digitándolos en un panel (Ver figura 22). Figura 22. Obtención de datos para módulo Perceptrón Multicapa

Obtener señales de Activación cargando archivos t xt: el dispositivo para su óptimo funcionamiento debe requerir una señal externa a partir de archivos txt (Ver figura 23). Obtener señales de Activación Botones: el dispositivo para su óptimo funcionamiento debe requerir una señal externa a partir botones booleanos (Ver figura 23). Obtener señales de Activación digitar dato: el dispositivo para su óptimo funcionamiento debe requerir una señal externa a partir de un campo de texto (Ver figura 23). (Ver figura 23, página siguiente).

Page 62: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

62

Figura 23. Obtener señales para módulo Perceptrón Multicapa

Obtener pesos cargando archivo txt: el software debe permitir cargar un archivo de pesos predeterminado (Ver figura 24). Obtener pesos a partir de Botones: el software debe permitir inicializar los pesos en cada nuevo entrenamiento. (Ver figura 24). Obtener pesos fijos: El software debe permitir modificar sus pesos fijos (Ver figura 24). Figura 24. Obtener pesos para módulo Perceptrón Multicapa

Dispositivos de control ( β, α, Épocas, Error min) cargado archivo txt: el software debe permitir cargar (ver figura 25). Dispositivos de control ( β, α, Épocas, Error min) a partir de botones: el software habilitará los dispositivos de control aleatoriamente cada uno (ver figura 25).

Page 63: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

63

Dispositivos de control ( β, α, Épocas, Error min) digitando datos: el software debe permitir digitar datos para el óptimo entrenamiento (ver figura 25). Figura 25. Dispositivos de control para módulo Perceptrón Multicapa

Sistema comunicación externa (Error, Iteraciones, S alida) en forma gráfica: el software debe permitir visualizar en forma gráfica el proceso de entrenamiento (ver figura 26). Sistema comunicación externa (Error, Iteraciones, S alida) en forma matricial: el software debe permitir visualizar en matricial el proceso de entrenamiento (ver figura 26). Figura 26. Sistema comunicación externa para módulo Perceptrón Multicapa

En la tabla 5 se observa la justificación de los conceptos para cada una de las sub funciones anteriormente explicadas.

Page 64: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

64

Tabla 5. Justificación de búsqueda para módulo Perceptrón Multicapa

Sub-función Concepto Justificación

Cargar Archivos El software debe permitir cargar un archivo predeterminado. Obtener Datos

Digitar Datos El software debe permitir que el usuario ingrese los datos.

Obtener señales

Función de Activación

El dispositivo para su óptimo funcionamiento debe requerir una señal externa, por ejemplo una señal lineal, sigmoidal y tansig.

Cargar Pesos El software debe permitir cargar un archivo de pesos predeterminado.

Pesos Fijos El software debe permitir modificar sus pesos fijos.

Obtener Pesos

Pulsar Botón (Booleano)

El software debe permitir inicializar los pesos en cada nuevo entrenamiento.

β

El software debe converger de forma óptima al error mínimo.

α El software debe permitir variar su rata de aprendizaje.

Épocas El software debe interactuar hasta el número de iteraciones propuestas por el usuario.

Dispositivos de Control

Error mínimo El software debe de aprender según el error mínimo ingresado por el usuario.

Error El usuario a partir de la gráfica visualiza la convergencia del error

Iteraciones El software debe permitir ver el proceso de aprendizaje de la red neuronal en su salida.

Sistema de Comunicación Externa

salida

El software debe permitir la visualización del entrenamiento final.

• Combinación de conceptos para módulo Perceptrón Mul ticapa. En las siguientes figuras se observa la viabilidad de la combinación de conceptos Sub-función para el módulo Perceptrón Multicapa. Viabilidad de obtener datos para módulo Perceptrón Multicapa: para la obtención de datos de Entrada como de Salida deseada la viabilidad por sensibilidad a los cambios de las variables y buena comunicación interna y externa el concepto más viable es carga un archivo txt como se observa en la figura 27.

Page 65: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

65

Figura 27. Viabilidad de obtener datos para módulo Perceptrón Multicapa

Viabilidad de obtener señales de activación para mó dulo Perceptrón Multicapa: el concepto que mejor favorece es de pulsar botón por compatibilidad y seguridad figura 28. Figura 28. Viabilidad de señales de activación para módulo Perceptrón Multicapa

Viabilidad de obtener pesos para módulo Perceptrón Multicapa: Por sensibilidad a los cambios de las variables y fácil interacción con el usuario la viabilidad se presenta pulsando un botón como se muestre en la figura 29. (Ver figura 29, página siguiente).

Page 66: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

66

Figura 29. Viabilidad de obtener pesos para módulo Perceptrón Multicapa

Viabilidad dispositivos de control ( β, α, Épocas, Error min) para módulo Perceptrón Multicapa: por sensibilidad a los cambios de las variables, por fácil mantenimiento y reparación, por buena comunicación interna y externa; el concepto con mejor viabilidad será digitando datos mediante campos numéricos (ver figura 30). Figura 30. Viabilidad dispositivos de control para módulo Perceptrón Multicapa

Viabilidad sistema comunicación externa para módulo Perceptrón Multicapa: La viabilidad se presenta en los dos conceptos generados por gráficas y matrices, por compatibilidad como se muestra en la figura 31.

Page 67: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

67

Figura 31. Viabilidad sistema comunicación externa para módulo Perceptrón Multicapa

3.4.3.3 Descomposición funcional módulo Mapas Auto -organizados. Como se observa en la descomposición funcional el módulo Mapas Auto-organizados a igual al módulo de Perceptrón Multicapa con algunas variantes Ingreso de datos: para esta función el módulo tendrá como objetivo la arquitectura de la red mediante el ingreso de datos como son; número de parámetros de entrenamiento, número de pesos y dispositivos de control (ver figura 32). Entrenamiento: ya realizada la función de ingreso de datos, lo siguiente a ejecutar es el entrenamiento mediante dos sub funciones que se llamarán: capa de entrada, y capa de salida (ver figura 32). Resultados del entrenamiento: la última función que realiza el módulo es la visualización del proceso y resultado del entrenamiento (ver figura 32). (Ver figura 32, página siguiente).

Page 68: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

68

Figura 32. Representación caja negra módulo Mapas Auto-organizados

• Árbol de clasificación módulo Mapas Auto-organizad os. En las siguientes figuras se observa el árbol de clasificación para el módulo Mapas Auto-organizados. Obtener datos a partir de archivos: el software debe permitir cargar un archivo predeterminado txt (Ver figura 33). Obtener datos predeterminados: el software debe permitir que el usuario obtenga predeterminados (Ver figura 33). Obtener datos digitándolos: el software debe permitir que el usuario ingrese los datos digitándolos en un panel (Ver figura 33). Figura 33. Obtener datos para módulo Mapas Auto-organizados

Page 69: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

69

Obtener pesos cargando archivo txt: el software debe permitir cargar un archivo de pesos predeterminado (Ver figura 34). Obtener pesos fijos: el software debe permitir modificar sus pesos fijos (Ver figura 34). Obtener pesos a partir de Botones: el software debe permitir inicializar los pesos en cada nuevo entrenamiento. (Ver figura 34). Figura 34. Obtener pesos para módulo Mapas Auto-organizados

Dispositivos de control ( β, α, Épocas) cargado archivo txt: el software debe permitir cargar (ver figura 35). Dispositivos de control ( β, α, Épocas) digitando datos: el software debe permitir digitar datos para el óptimo entrenamiento (ver figura 35). Figura 35. Dispositivos de control para módulo Mapas Auto-organizados

Page 70: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

70

Sistema comunicación externa (Iteraciones, Salida) en forma gráfica: el software debe permitir visualizar en forma gráfica el proceso de entrenamiento (ver figura 36). Sistema comunicación externa (Iteraciones, Salida) en forma matricial: el software debe permitir visualizar en matricial el proceso de entrenamiento (ver figura 36). Figura 36. Sistema comunicación externa para módulo Mapas Auto-organizados

En la tabla 6 se observa la justificación de los conceptos para cada uno a de las sub funciones anteriormente explicadas. Tabla 6. Justificación de búsqueda para módulo de Mapas Auto-organizados

Sub-función Concepto Justificación

Cargar Archivos El software debe permitir cargar un archivo predeterminado.

Digitar Datos El software debe permitir que el usuario ingrese los datos. Obtener Datos

Datos Predeterminados

El software debe inicializar con unos datos ya definidos.

Cargar Pesos El software debe permitir cargar un archivo de pesos predeterminado.

Pesos Fijos El software debe permitir modificar sus pesos fijos.

Obtener Pesos Pulsar Botón El software debe permitir genera los

pesos aleatorios.

Page 71: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

71

Tabla 6. (Continuación).

Sub-función Concepto Justificación β

El software debe converger de forma óptima al error mínimo.

α El software debe permitir variar su rata de aprendizaje.

Dispositivos de Control

Épocas El software debe interactuar hasta el número de iteraciones propuestas por el usuario.

Iteración El software debe permitir ver el proceso de aprendizaje de la red neuronal en su salida.

Sistema de Comunicación Externa

salida

El software debe permitir la visualización del entrenamiento final.

• Combinación de conceptos para módulo Mapas Auto-org anizados. En las siguientes figuras se observa la viabilidad de la combinación de conceptos Sub-función para el módulo Mapas Auto-organizados. Viabilidad de obtener datos para módulo Mapas Auto- organizados: para la obtención de los parámetros de entrenamiento no supervisado por sensibilidad a los cambios de las variables y buena comunicación interna y externa el concepto más viable es carga un archivo txt como se observa en la figura 37. Figura 37. Viabilidad de obtener datos para módulo Mapas Auto-organizados

Page 72: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

72

Viabilidad de obtener pesos para módulo Mapas Auto- organizados: por sensibilidad a los cambios de las variables y fácil interacción con el usuario la viabilidad se presenta pulsando un botón como se muestre en la figura 38. Figura 38. Viabilidad de obtener pesos para módulo Mapas Auto-organizados

Viabilidad dispositivos de control ( β, α, Épocas) para módulo Mapas Auto-organizados: por sensibilidad a los cambios de las variables, por fácil mantenimiento y reparación, por buena comunicación interna y externa; el concepto con mejor viabilidad será digitando datos mediante campos numéricos (ver figura 39). Figura 39. Viabilidad dispositivos de control para módulo Mapas Auto-organizados

Page 73: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

73

Viabilidad sistema comunicación externa para módulo Mapas Auto-organizados: la viabilidad se presenta en los dos conceptos generados por gráficas y matrices, por compatibilidad como se muestra en la figura 40. Figura 40. Viabilidad sistema comunicación externa para módulo Mapas Auto-organizados

3.4.4 Conceptos Generados. Primer concepto creado para el módulo genérico Perceptrón Multicapa y Mapas Auto-organizados: Este concepto pretende generar un entorno ya predeterminado por el diseñador del módulo como se observa en la figura 38, la obtención de los datos seria a partir de una matriz de entrada digitando los patrones en ella, para la obtención de señales de activación sería necesario de botones booleanos, los pesos de esta dos redes serian fijas y de N dimensión estipulado por el diseñador los dispositivos de control tanto para el Perceptrón Multicapa y para la de Kohonen seria digitados en capos numéricos. La visualización del entrenamiento se observara a través de la modificación de los pesos mediante matrices de salida. (Ver Figura 41, página siguiente).

Page 74: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

74

Figura 41. Primer concepto generado

Segundo concepto para el módulo genérico Perceptrón Multicapa y Mapas Auto-organizados: Obtención de datos será cargando un archivo, que genera la red neuronal; permitiendo que el usuario interactué con el diseño de la red neuronal ante un problema común. Contará con la principales funciones de activación para el módulo de Perceptrón Multicapa, los peso se inicializaran en cada nuevo entrenamiento los dispositivos de control se digitaran a través de campos numéricos. La visualización del entrenamiento se observara a través de la modificación de los pesos mediante matrices de salida (ver figura 42). Figura 42. Segundo concepto generado

Page 75: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

75

3.4.5 Selección de Conceptos. Dentro de todas las consideraciones estipuladas es posible elegir cualquiera de los conceptos planteados con anterioridad bajo el criterio de solución de las necesidades, por consiguiente el concepto que se tomará como referencia será el CONCEPTO 2 dado que es el concepto más viable en sensibilidad a los cambios de las variables y buena comunicación interna y externa , por lo que además de los puntos que se tocaron de manera superficial en la descripción de cada combinación se tienen en cuenta los criterios de viabilidad lógicos que entran a ser parte de los criterios absolutos (ver tabla 7). Tabla 7. Matriz de Tamizaje para módulo Perceptrón Multicapa y módulo Mapas Auto-organizados Tamizaje:

VARIANTES DE CONCEPTOS

CRITERIO DE SELLECION 1 2 Sensibilidad a los cambios de las variables - + Económico + - Compatibilidad - + Fácil mantenimiento y reparación - + Seguro - + Fácil interacción con el usuario - + Fácil instalación + - Buena comunicación interna y externa - + POSITIVOS 2 6 IGUALES 0 0 NEGATIVOS 6 2 TOTAL -4 4 ORDEN 2 1 ¿CONTINUAR? No SI

Teniendo en cuenta los resultados obtenidos en la tabla anterior, se puede concluir que los conceptos 2 es el que cumplen con todos la mayoría requerimientos del cliente. Por lo tanto es el más probable a desarrollar.

Page 76: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

76

3.5 DESARROLLO De acuerdo con el diseño que se ha realizado y observado los lineamientos planteados en la fase de análisis, se continúa con la fase de desarrollo en el cual se lleva a cabo la elaboración del producto final. Es importante tener en cuenta que el desarrollo de este proyecto va dirigido hacia dos vertientes: El entorno de Simulación (vertiente principal) y el sitio Web donde se incrusta el entorno de simulación. Es al conjunto de las dos vertientes lo que se llama LabRed. Para la construcción del sitio Web, se utilizan tecnologías Web básicas, como lo son: HTML, bloque básico para construir páginas Web. Para componentes expositivos, HTML es un elemento indispensable. Flash, la interfaz de programación de Flash está basada en Java Script que son pequeños segmentos de programación utilizados para lograr efectos dinámicos. Si bien para darle al LabRed la dimensión pedagógica necesaria, el diseño y construcción del sitio Web son muy importantes; el núcleo de éste desarrollo es el entorno de simulación, pues constituye el elemento de experimentación en donde se sustenta el LabRed. 3.5.1 El Respaldo Matemático de las Simulaciones. Hay varias alternativas que podrían seleccionarse como motor matemático del entrenamiento, entre las cuales MATLAB® y Java son las de más amplia utilización para propósitos como el del presente trabajo. Haciendo un análisis sobre la base de MATLAB® y Java, las formas de extender las funcionalidades de MATLAB® para sustentar el entrenamiento del LabRed sin incurrir en los altos costos de MATLAB® Web Server, exigen un alto nivel de entendimiento de las tecnologías del lado del servidor para desarrollo de aplicaciones Web, pues en este caso, para implementar un ambiente de simulación con las capacidades demandadas, se necesita de forma obligatoria manejar aspectos computacionales mucho más complejos. Además, es de

Page 77: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

77

importancia destacar que el utilizar MATLAB® traería consigo limitaciones de acceso, pues el uso del ambiente de simulación estaría restringido solo a personas con autorización a utilizar la licencia. Así, siguiendo el análisis en el contexto de las herramientas expuestas, se observa que a través del uso de Easy Java Simulations (Ejs), Java se convierte en una de las alternativas más adecuadas para implementar ambientes de simulación basados en Web para el contexto académico, reduciendo el nivel de complejidad de las simulaciones a los aspectos de modelado matemático del sistema en estudio, al manejo adecuado de los conceptos de teoría de sistemas inteligentes y al conocimiento básico del lenguaje de programación Java. 3.5.2 Construcción de las Simulaciones en Java con Easy Java Simulations. Una de sus mayores ventajas de Ejs está en que está estructurado para implementar las simulaciones de forma directa en términos del paradigma MVC (Modelo-Vista-Control) como se observa en la figura 40. Para simplificar la construcción de las simulaciones, Ejs suprime la parte de control, colocándola repartida, una mitad en la vista y la otra mitad en el modelo. Esto es posible porque Ejs define el control en base a las relaciones de los objetos del modelo y las vistas. Figura 43. Flujo entre las Capas de una Arquitectura MVC

En la interfaz de Ejs se distinguen tres partes principales: la introducción, el modelo y la vista.

Page 78: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

78

La introducción es una sección alternativa para la creación de una estructura de Páginas Web para colocar las simulaciones generadas en forma de Applets de Java. Como esta estructura ya se creó por cuenta del presentador, para el propósito de esta investigación sólo se utilizan las secciones correspondientes al Modelo y a la Vista. De esta forma, la construcción del entorno de simulación en Ejs consiste en un desarrollo en dos pasos: • Definición del modelo de la simulación (Modelo en Ejs). • Diseño de la vista de la simulación (Vista en Ejs). El punto crítico de la construcción con Ejs está en establecer las conexiones requeridas entre la Vista y el Control para lograr la visualización correcta de los estados del sistema que se simula y una interacción apropiada del usuario con la GUI de la simulación. 3.5.3 Construcción del LabRed. Finalmente, para culminar el desarrollo, basta con construir la pagina Web con los contenidos informativos y formativos del LabRed (incluyendo la pagina HTML con los Applets de las simulaciones), siguiendo las pautas trazadas en las fases de análisis y diseño. Como se trata de un sitio Web bastante sencillo y trivial, y por estar fuera del propósito de este trabajo, no se va a mostrar aquí los detalles de la construcción de la página Web (tomando en cuenta además que lo más importante en la relación a este tema ya fue expuesto con suficiente detalle en la fase de diseño). En las siguiente dos figuras 41 y 42, se observa cómo fue quedando a medida del tiempo la pagina desarrollada con la respectivas aplicaciones. (Ver Figura 44 y 45, página siguiente).

Page 79: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

79

Figura 44. Muestra fase desarrollo del Laboratorio a) Conceptos Generales b) Aplicación Reconocimiento de Caracteres

Figura 45. Muestra fase desarrollo del Laboratorio a) Teoría de Mapas Auto-organizados b) Aplicación Demo de Kohonen

En la figura 46 se observa cómo fue quedando el módulo para el Perceptrón Multicapa

Page 80: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

80

Figura 46. Muestra fase desarrollo del Laboratorio a) Presentación módulo Perceptrón Multicapa b) Módulo Entrenador Perceptrón Multicapa

3.6 ADMINISTRACIÓN La administración del LabRed incluye todo aquello que debe estar en su lugar para asegurar un funcionamiento correcto del sistema con el mínimo de problemas y un máximo de satisfacción de los usuarios. 3.6.1 Instalación y configuración. Para introducir al LabRed en su fase funcional, finalmente se define cuál es el soporte del sistema y la configuración requerida. Refiérase a la tabla 8. Tabla 8. Especificaciones de Instalación y Configuración del Servidor

Especificaciones Descripción Sistema Operativo Microsoft® Windows XP

Hardware Procesador AMD Semprom 2GHz y Memoria RAM 512 MB

Servidor Web (HTTP) Apache HTTP Server 2.0.55 Otros Entorno Java: Java 2 Standard

Edition (J2SE) versión 5.0 con JDK 1.5

Page 81: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

81

Estas especificaciones corresponden a la del servidor que se utilizará para instalar, configurar y probar el entorno de simulación del LabRed. Sin embargo el sistema desarrollado presenta características que le permiten ser instalado, configurado y habilitado en un servidor en cualquier plataforma que soporte el entorno de Java 2. De la misma forma, del lado del usuario, para que el sistema funcione adecuadamente, puede utilizarse cualquier navegador Web que soporte gráficos (Microsoft Internet Explorer, Mozilla Firefox o Netscape Navigator, por ejemplo) y que tenga habilitada la maquina virtual de Java (JVM por las siglas en ingles Java Virtual Machine). 3.6.2 Administración previa al uso del LabRed. No está dentro del marco de este trabajo diseñar las pautas de introducción del LabRed al proceso de aprendizaje convencional. Sin embargo se sugiere a los instructores de las materias relacionadas con sistemas inteligentes, en caso de decidirse a incorporar este recurso como apoyo a la formación práctica dentro de sus cursos, establecer un conjunto de condiciones de uso e interacción con los estudiantes y por supuesto hacer lugar practicas de prueba que faciliten el proceso de adaptación y evidencien el grado de aceptación de los usuarios. 3.7 CICLO DE VIDA DEL SOFTWARE La formalización del proceso de desarrollo se define como un marco de referencia denominado ciclo de desarrollo del Software o ciclo de vida del Software. Se puede describir como, “el período de tiempo que comienza con la decisión de desarrollar un producto Software y finaliza cuando se ha entregado éste”. Este ciclo, por lo general incluye las fases: • Requisitos. • Diseño. • Implementación. • Prueba. • Instalación. • Aceptación. El ciclo de desarrollo del Software se utiliza para estructurar las actividades que se llevan a cabo en el desarrollo de un producto Software. A pesar de que no hay

Page 82: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

82

acuerdo acerca del uso y la forma del modelo, este sigue siendo útil para la compresión y el control del proceso. 3.8 EVALUACIÓN Con la evaluación se quiere determinar si existen fallas a nivel de análisis, diseño y desarrollo. Esto se consigue básicamente con dos tipos de pruebas: Prueba de Interfaz y de Funcionamiento: con esta prueba se pueden detectar errores de funcionamiento y fallas en el ambiente desarrollado. En una primera instancia requiere de la evaluación del experto en contenido, quien se encarga de revisar el contenido que se desea transmitir a través del sistema. Luego se realiza en una situación real de aprendizaje, utilizándolo como apoyo instruccional en el desarrollo de un curso normal. Con esta prueba además es posible determinar la aceptación del software por parte de los usuarios a los cuales va dirigido. En el presente caso, como el trabajo realizado se centra en el desarrollo del entorno de simulación para el LabRed, y por estar fuera de nuestro alcance de tiempo; realizar una prueba de efectividad, la fase de evaluación queda definida únicamente por pruebas de interfaz y funcionamiento. Estas pruebas bien pueden aprobarse, en el proceso de validación de los resultados arrojados por las simulaciones. En particular, para validar el funcionamiento del entorno de simulación lo más importante es asegurarse que los resultados que se están obteniendo ante los valores de entrada introducidos sean correctos.

Page 83: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

83

4. PROPUESTA DE SOLUCIÓN En el siguiente apartado se describe en detalle el funcionamiento y desarrollo del laboratorio de redes neuronales artificiales o LabRed; en primer lugar se pretende aplicar conceptos iniciales de Neurona Artificial y de Perceptrón Simple; antes de llegar al caso de estudio del Perceptrón Multicapa y Mapas Auto-organizados. Por lo tanto en estas dos etapas, se describe el prototipo del sistema por medio de imágenes correspondientes a la interfaz gráfica desarrolladas. En la tercera etapa del Prototipado con Easy Java Simulations, se presenta dos ejemplos aplicativos para los módulos genéricos desarrollados de Perceptrón Multicapa y Mapas Autor-organizados 4.1 PRIMERA ETAPA: PROTOTIPADO CON EASY JAVA SIMUL ATIONS Este prototipo de Neurona Artificial se realizo en forma prematura, con el objetivo de ganar experiencia en el tema de la Inteligencia Artificial; para aplicarlo en el diseño de diferentes redes aplicadas en el proyecto. Funcionamiento de la Neurona Artificial : En la figura 47 se visualiza en forma gráfica una Neurona Artificial .Este primer demo pretende familiarizar al usuario con conceptos esenciales que debe tener bien claro como los son; Entradas del sistema, sinapsis, y señales de activación. Figura 47. Demo I Arquitectura del funcionamiento de la Neurona Artificial a) Presentación Gráfica Neurona b) Funcionamiento Neurona

Page 84: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

84

El funcionamiento básico del demo de Neurona Artificial se explica a continuación: Luego de visualizar en forma gráfica el modelo de Neurona Artificial deberá dirigirse al funcionamiento de la neurona, allí hay diferentes campos numéricos que tendrá la opción de digitarse mediante el teclado. El usuario digitará las entradas [Xn] igualmente para los pesos [Wn] y el umbral o Bias . Seguidamente de lo anterior, se deberá elegir la función de activación deseada de las propuestas; escalón, lineal, sigmoidal. Por último se oprimirá en Evaluar el cual arroja la neta y la salida de la neurona, para repetir el proceso con diferentes datos y funciones de activación estará la opción de Reset.

Separación lineal con un Perceptrón Simple: en la figura 48 se observa el segundo demo desarrollado para el proyecto. Este demo de Separación Lineal, consiste en que el usuario tendrá la opción de elegir entre dos compuertas lógicas ya predeterminadas, las cuales son la función lógica And y la función lógica Or, que son linealmente separables y por ende es un problema que se puede abordar a través de un Perceptrón Simple. Figura 48. Demo II Separación lineal con un Perceptrón Simple a) Función lógica Or b) Función lógica And

Page 85: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

85

Luego de seleccionar la compuerta deseada el usuario deberá inicializar la red para que el entrenamiento se diferencie a otros, inicializada la red el usuario deberá pulsar entrenar para visualizarse; el proceso de aprendizaje y la respectiva separación generada por la red, por último el usuario tendrá la opción, de digitar a través de dos campos numéricos la diferentes combinaciones binarias de la compuerta lógica seleccionada para el entrenamiento con el fin de ver si en realidad quedó la red entrenada. Comprendiendo el funcionamiento de un Perceptrón Simple se optó por generar un demo el cual fuera más robusto y desempeñarse bien, como lo es en la clasificación de patrones. Reconocimiento de Caracteres a través de un Percept rón Simple: este demo pretende que el usuario se familiarice de lleno con las redes neuronales con el fin de abordar las redes de tipo multicapa (ver figura 49). Figura 49. Demo III Reconocimiento de Caracteres a través de una Red Monocapa

El funcionamiento de este demo en general es muy sencillo, el usuario deberá de inicializar la red cada vez que quiera entrenarla, luego de lo anterior se habilitará el botón de entrenamiento el cual se pulsa para entrenar la red Monocapa; en el transcurso del entrenamiento se visualiza como el error disminuye hasta llegar a cero mediante un campo numérico; ya la red entrenada se presenta un mensaje

Page 86: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

86

que la red fue entrenada y se habilita el botón de validar , para que el usuario empiece a reconocer los caracteres. 4.2 SEGUNDA ETAPA: PROTOTIPO CON EASY JAVA SIMULAT IONS Para la segunda etapa de prototipado con Easy Java Simulations consumió más tiempo de lo previsto. Sin embargo de estos experimentos surgieron importantes aportes que fueron considerados para la realización del los dos genéricos propuesto a realizar. Regiones generadas en un plano por Perceptrón Multi capa: El con fin de dar un primer acercamiento a lo que son las redes multicapa se realizó un demo que pudiera abarcar el problema de la función XOR a través de un Perceptrón Multicapa (ver figura 50). Figura 50. Demo IV Regiones generadas en un plano por Perceptrón Multicapa

Rápidamente se ve el funcionamiento del demo: El usuario elegirá uno de las cinco opciones predeterminadas para el demo que en este caso será: Xor, Punto, Punto1, Punto 2, Punto 3, cada uno de estos muestra patrones diferentes. Una vez realizado la selección de parámetros se habilita el botón de inicializar para ser pulsado, que visualizará los patrones a entrenar en la pantalla de gráficos. Terminado el proceso de inicialización el demo habilita tres tipos diferentes de entrenamiento; Gradiente Descendente, Gradiente con

Page 87: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

87

Momentum, Gradiente Alfa Variable; para que el usuario seleccione uno de estos, ya elegido el tipo de entrenamiento, se procede a visualizar el entrenamiento. Teniendo claro el funcionamiento del algoritmo de Backpropagation, se realiza el último demo de Perceptrón Multicapa a partir del Aprendizaje de Funciones. Aprendizaje de Funciones: El demo cuenta con cuatro funciones diferentes: Seno, Lineal, Cuadrática, Cúbica y con la opción de cargar otro tipo de función propuesta por el usuario en un rango de (-1 a 1) en la salida de la red (ver figura 51). Figura 51. Demo V Visualización del Aprendizaje de Funciones

El funcionamiento del demo se explica a continuación: El usuario deberá elegir si utiliza las funciones predeterminadas o carga una nueva, en el caso que elija las funciones predeterminadas el botón de cargar queda inhabilitado por cuestiones de seguridad, una vez elegida la función a entrenar ya sea: Seno, Lineal, Cuadrática o Cubica. El demo habilita el botón de

Page 88: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

88

inicializar, pulsado este la red ya tendrá la información necesaria y dejará oprimir el botón de entrenamiento para luego visualizarlo. Una vez entrenada la red el usuario tendrá la opción de elegir una nueva función o por el contrario pulsar resetear para habilitar de nuevo el botón de cargar. En el caso que el usuario quiera cargar un archivo txt deberá tener cuidado con la creación del mismo que más adelante se explica en el módulo genérico de Perceptrón multicapa (ver figura 55). Una vez cargado el archivo se procede hacer el mismo procedimiento explicado con las funciones predeterminadas. Demo de Kohonen: En segunda instancia se desarrolla un demo de aprendizaje no supervisado con un Mapa Auto-organizado finalizando el desarrollo de demostraciones a través de demos. En la figura 52 se observa el demo de mapas Auto-organizados que consiste en: Figura 52. Demo VI visualización demo de Kohonen

Page 89: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

89

Figura 52. (Continuación).

Seleccionar cualquier de las opciones pero sólo una a la vez ya sea, cuadrícula, anillo, arco o triángulo, consecutivo a esto se abrirá un panel con la respectivo demo y dispositivos de control; el usuario oprimirá el botón inicializar y automáticamente la red quedará lista para ser entrenada, será pulsar el botón de entrenamiento para la visualización del proceso de aprendizaje no supervisado y competitivo, terminado esto el usuario deberá oprimir Reset o salir en el caso de simular otro tipo de figura establecida( ver figura 53). Figura 53. Demo VI Visualización proceso de aprendizaje competitivo de Kohonen

Page 90: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

90

4.3 TERCERA ETAPA: PROTOTIPO CON EASY JAVA SIMULAT IONS En esta última etapa se desarrolló módulos genéricos de Perceptrón Multicapa y Mapas Auto-organizados respectivamente, teniendo claro todo referente a los dos temas. 4.3.1 Módulo Genérico de Perceptrón Multicapa: el módulo fue generado con la finalidad que el usuario abarque en forma clara el concepto de la Red Multicapa como se observa en la figura 54. Figura 54. Presentación de Módulo Genérico de Perceptrón Multicapa

El módulo permite generar una Red Multicapa con número de entradas deseadas, número de neuronas de la capa oculta y número de neuronas de la capa de salida. Según el problema que se tenga que abordar. Tendrá la posibilidad de interactuar con tres diferentes tipos de función de activación y con tres tipos diferentes de entrenamiento.

Page 91: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

91

Funcionamiento del módulo Perceptrón Multicapa: esta herramienta permite cargar, inicializar y entrenar una Red Multicapa conservado algunas de las características en la herramienta software MATLAB®. A continuación se presenta un ejemplo que lo llevará paso a paso en la forma que debe ser usado el módulo para el entrenamiento de la red. Paso 1: Generar archivo de texto. Primero debe ser creado un archivo “.txt” teniendo en cuenta lo siguiente: 1. Número de entradas de la red. 2. Número de parámetros de la entrada de la red. 3. Número de neuronas de la capa oculta. 4. Número de neuronas de salida.

Como se observa en figura 55. Figura 55. Creación de archivo de texto para el entrenamiento módulo Multicapa

Page 92: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

92

Paso 2: Cargar los datos de Entrenamiento. Una vez se despliega el menú de inicio el usuario debe seleccionar “Cargar” como se observa en la figura 56, este automáticamente abre una ventana de selección, donde le mostrará específicamente carpetas y archivos con extensión “.txt”, aquí se selecciona el archivo relacionado con la red multicapa (ver figura 57); que fue creado por el usuario. Una vez se presiona el botón de Abrir de la ventana concurrente, esta se cierra y automáticamente aparece ventanas de dialogo como: número de entradas, número de parámetros, número de neuronas de la capa oculta y número de neuronas de la capa de salida. Figura 56. Elección del tipo de datos Multicapa a) Visualización de barra de menú b) Desplegué menú de inicio

Paso 3: Inicializar la red. Ya cargado el archivo deberá de nuevo desplegar el menú de inicio, seleccionando inicializar.

Page 93: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

93

Figura 57. Inicializando módulo multicapa a) Eligiendo archivo b) inicializando la red

Paso 4 Elegir funciones de activación Con el archivo cargado y la red inicializada, se procede a elegir las funciones de activación para la capa oculta y capa de salida como se observa en la figura 55. Figura 58. Eligiendo funciones de Activación

Page 94: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

94

Paso 5: Elegir tipo de entrenamiento. Una vez realizado los pasos anteriores correctamente se elige el tipo de entrenamiento como se observa en figuras 56. Figura 59. Entrenamiento de la red a) gradiente descendente b) gradiente con momentum c) gradiente con Alfa Variable

Paso 6: Visualizar pesos entrenados y salida de la red. Una vez entrada la red el usuario podrá visualizar los pesos y su salida de la red desplegando este menú (ver figura 60). Figura 60. Visualización de pesos y salida de la red

Page 95: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

95

4.3.2 Módulo de Mapas Auto-organizados: el módulo genérico de Mapas Auto-organizados permite al usuario entrenar de una red de Kohonen, mediante el ingreso de datos, en la figura 61 se observa la arquitectura de esta red competitiva. Figura 61. Presentación módulo de Mapas Auto-organizados

Funcionamiento del módulo Mapas Auto-organizados Paso 1: Generar archivo de texto. Primero debe ser creado un archivo “.txt” teniendo en cuenta lo siguiente: 1. Número de filas de la entrada de la matriz auxiliar. 2. Número de columnas de la entrada de la matriz auxiliar. 3. Número de filas (neuronas). 4. Número de columnas (neuronas).

Page 96: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

96

Como se observa en la figura 62. Figura 62. Creación de archivo de texto para el entrenamiento módulo Kohonen

Paso 2: Cargar los datos de entrenamiento. Una vez se despliega el menú de inicio el usuario debe seleccionar “Cargar” este automáticamente abre una ventana de selección donde le mostrará específicamente carpetas y archivos con extensión “.txt” aquí se selecciona el archivo relacionado con la red competitiva una vez se presiona el botón de Abrir de la ventana, esta se cierra y automáticamente aparece sobre la datos como: número de entradas, número de parámetros, número de fila (neuronas) y número de neuronas de columnas (neuronas) como se observa en la figura 63. (Ver Figura 63, página siguiente).

Page 97: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

97

Figura 63. Elección del tipo de Datos Kohonen menú a) Desplegué menú de inicio b) Ventana de selección de archivos

Paso 3: Inicializar la red competitiva. Ya cargado el archivo deberá de nuevo desplegar el menú, seleccionando inicializar (ver figura 64). Figura 64. Inicializando red de Kohonen

Page 98: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

98

Paso 4: Pulsar Entrenar Una vez realizado los pasos anteriores correctamente y definiendo la rata de aprendizaje, radio de vecindad y número de iteraciones se procede a entrenar la red como se observa en la figura 65. Figura 65. Seleccionando Entrenar

Paso 5: Reset Una vez entrenada la red el usuario tendrá la opción de restaurar al esto inicial, pulsado “Reset” con el fin de generar nuevos entrenamientos (ver figura 66). Figura 66. Reset módulo

Page 99: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

99

5. CONCLUSIONES Y TRABAJO FUTURO

5.1 CONCLUSIONES En el transcurso del proyecto fue necesario tener en claro los fundamentos teóricos sobre las Redes Neuronales del tipo Backpropagation y Kohonen, apropiándose y dominando los algoritmos que se implementa para este tipo de Redes Neuronales, además de tener la capacidad de crear y/o diseñar nuevas soluciones para su aplicación. Los Applets de Java son una excelente alternativa para la construcción de componentes dinámicos de las interfaces Web, por su facilidad de uso y capacidad para incluir las ventajas y funcionalidades del lenguaje Java. Por esta razón, se decide construir la interfaz del laboratorio virtual empleando Applets de Java para las simulaciones de sistemas inteligentes y algo de código Java Script para implementar los componentes dinámicos. Para efectos demostrativos resultó más que suficiente utilizar HTML para los componentes estáticos. La interfaz de usuario y la simulación gráfica son muy reales y aptas para cualquier persona. Además, Ejs genera el Applets de la simulación y con ello, la posibilidad de poder ejecutar la aplicación desde otros lugares en cualquier momento. En el desarrollo del módulo del Perceptrón Multicapa se tardó más de lo previsto debido inconsistencia de diseño por lo que se tuvo que revaluar la fase de diseño antes señalada. En el diseño del módulo del Perceptrón Multicapa fue necesario implementar la capa de entrada que muchos autor omiten en los apartados, para garantizar el entrenamiento y a su vez que el error cuadrático convergiera a cero. Con la experiencia tomada en el anterior módulo del Perceptrón Multicapa el desarrollo del módulo de Mapas Auto-organizados en general se trabajo en formas práctica en la fase de diseño y desarrollo. De esta forma se concluye que para propósitos académicos, sí es posible construir recursos interactivos de apoyo a la docencia y práctica de sistemas inteligentes sin

Page 100: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

100

necesidad de ser experto consagrado en computación, siempre y cuando se manejen de forma clara los conceptos teóricos que se desean exponer y se tengan los conocimientos suficientes sobre modelado y simulación. 5.2 TRABAJO FUTURO • Construir un módulo que verifique el entrenamiento del módulo del Perceptrón Multicapa mediante el ingreso de datos, partiendo según la arquitectura utilizada en el entrenamiento, cargar los pesos entrenados y sus respectivas funciones de activación.

• Implementar otro tipo de Redes Neuronales diferentes a las ya trabajadas en la plataforma virtual.

• Habilitar funcionalidades especiales para los instructores de la materia de sistemas inteligentes, con la finalidad de ampliar sus capacidades de orientar y controlar la evolución de las experiencias virtuales de sus estudiantes.

De esta manera, el entorno de simulación complementaria las funcionalidades necesarias para convertirse en un verdadero laboratorio virtual de simulación.

Page 101: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

101

BIBLIOGRAFÍA

ARAGÓN TORRE, Alberto. Métodos Evolutivos para el Aprendizaje de Redes Neuronales [en línea]. Burgos: Universidad de Burgos. Departamento de Economía Aplicada, 2002 [consultado el 17 de marzo de 2009]. Disponible en Internet: http://www2.ubu.es/econapli/profesores/jpacheco/Investigacion/Tesis/Alberto/Tesis_Alberto_Aragon.pdf BARRETO, Miguel. Mapas Auto-organizados [en línea]. Colombia: Slideshare, s.f. [consultado 10 de abril del 2009]. Disponible en Internet: http://www.slideshare.net/askroll/mapas-de-kohonen-como-una-herramienta-visual-de-apoyo-al-soporte-de-decisiones-en-agroecologa-presentation BISHOP, Christopher. Neuronal networks for pattern recognition [en línea]. Oxford: Oxford University Press, 1995 [consultado el 11 de enero de 2009]. Disponible en Internet: http://www.stats.ox.ac.uk/~ripley/PRbook/Compl.pdf CAICEDO BRAVO, Eduardo Francisco y LÓPEZ SOTELO, Jesús Alfonso. Una aproximación practica a las Redes Neuronales Artificiales. Santiago de Cali:Universidad del Valle, 2010. 217 p. GONZÁLES ÁNGELES, José Gustavo y TREJO ÁVILA, Mary Carmen. Data SOMinning: Software para el Descubrimiento de Conocimiento en Grandes Bases de Datos de Información Científico Tecnológica. México: Universidad Nacional Autónoma de México, 2006. 115 p. HAYKIN, Simon. Neural Networks: a Comprehensive Foundation. United States: Prentice Hall, 1998. HERTZ, John, KROGH, Anders and PALMER, Richard G. Introduction to the Theory of Neural Computation. Massachusetts: Addison-Wesley, Reading, 1991. HORNIK, Kurt. Multilayer feed forward networks are universal approximators. 2 ed. Oxford: Elsevier Science, 1989. 450 p. IEEE Std 610.12-1990, “IEEE Standard Glossary of Software Engineering Terminology” [en línea]. Estados Unidos: IEEE, 1990 [consultado el 15 de junio de 2009]. Disponible en internet: http://standards.ieee.org/reading/ieee/std_public/description/se/610.12-1990_desc.

Page 102: Laboratorio Con Accceso Web De Redes Neuronales Artificiales

102

KOHONEN. T. Self-Organizing Maps. 3 ed. Finlandia, Helsinki: University of Technology Neural Network, 2001. 501 p. LOONEY, Carl G. Pattern Recognition and Neural Networks: Theory and Algorithms for Engineers and Scientists. New York: Oxford University Press, 1997. Pérez Muñoz, José. Modelos Computacionales [en línea]. España: ICC, s.f. [consultado el 10 de abril de 2009]. Disponible en internet: <http://www.lcc.uma.es/~munozp/> Reconocedor de Patrones Sonoros [en línea]. España: Terra, junio 2004 [consultado abril de 2009]. Disponible en Internet: http://personal.telefonica.terra.es/web/sixsancal/documentacion/Pdf%20por%20partes/6-2_Aplicaci%F3n%20de%20las%20redes%20neuronales%20para%20el%20reconocimiento%20de%20patrones%20sonoros.pdf ROSENBLATT, F. Principles of Neurodynamics: Perceptrons and the Theory Of Brain Mechanisms. Spartan Books, Washington DC, 1962. TORRES DÍAZ, Leticia Esmeralda. Simulación Sistema de Control en Java: Bases conceptuales y metodológicas para un laboratorio virtual. Trabajo de grado. Ingeniería de Sistemas. Mérida, Venezuela: Universidad de los Andes, 2006. 65 p. ULRICH, Karl T. Diseño y desarrollo de productos. México: McGraw-Hill Interamericana, 2004. UNIVERSIDAD SIMÓN BOLÍVAR. Aplicaciones de las redes de neuronas en supervisión, diagnosis y control de procesos. Caracas: Equinoccio, 1999. WIDROW B. and HOFF, M. E. Adaptive switching circuits. In 1960 IRE WESCON Convention Record, New York, 1960. 104 p.