Download diseño, desarrollo e implementación, de un entrenador de redes
Document related concepts
Transcript
DISEÑO, DESARROLLO E IMPLEMENTACIÓN, DE UN ENTRENADOR DE REDES NEURONALES; PARA LA SALA DE INTELIGENCIA ARTIFICIAL Y ROBÓTICA DE LA UNIVERSIDAD AUTÓNOMA DEL CARIBE ANTONIO JOSE BARROS MOLINARES JOSE LUIS LOBO VASQUEZ LAURA MILENA ZARACHE VARGAS UNIVERSIDAD AUTÓNOMA DEL CARIBE FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERIA DE SISTEMAS BARRANQUILLA 2007 DISEÑO, DESARROLLO E IMPLEMENTACIÓN, DE UN ENTRENADOR DE REDES NEURONALES; PARA LA SALA DE INTELIGENCIA ARTIFICIAL Y ROBÓTICA DE LA UNIVERSIDAD AUTÓNOMA DEL CARIBE ANTONIO JOSE BARROS MOLINARES JOSE LUIS LOBO VASQUEZ LAURA MILENA ZARACHE VARGAS Investigación formativa con fines de graduación: Asesor Metodológico: MsC. CLAUDIA ZAPATA Asesor Técnico: ING. RICHARD AROCA UNIVERSIDAD AUTÓNOMA DEL CARIBE FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERIA DE SISTEMAS BARRANQUILLA 2007 NOTA DE ACEPTACION __________________________ __________________________ __________________________ _________________________ Presidente del jurado _________________________ Jurado _________________________ Jurado Barranquilla, 10 de Noviembre del 2007 Dedicatoria Al Dios de amor que me eximió - su sangre fue el precio -. Asiduo y paciente escultor, que con martillo y cincel perfecciona su obra. A mis padres, protectores escogidos. Las líneas de sus vidas, están llenas de triunfos logrados con esfuerzo. A mi hermana, cómplice y abogada. Ha hecho tantas cosas buenas por mí, que sí me ha herido, no lo recuerdo. A aquellos que mi corazón llama amigos. Artesanos de sonrisas y buenos momentos. Antonio José Barros Molinares Dedicatoria A mi madre quien es recuerdo y vida a mi presente. A Dios quien es luz y sombra a mí caminar. José Luís Lobo Vásquez Dedicatoria A mi hermanita Sigy quien en ocasiones se esmeró por esto mucho más que yo misma y sin saberlo me impulso a luchar por esto. A mi mami, quien ha permanecido fiel y me ha apoyado aun cuando no lo merezca. A mi papi quien no miró las circunstancias, solo pensó en los resultados, decidió creer que era posible y se esforzó hasta él último momento para que yo pudiera alcanzar este triunfo. En tu memoria Papi. No estas conmigo en mi graduación pero siempre estarás en mi corazón. Te amo papito. Por supuesto a Dios porque siempre busca la manera de guiarme hacia sus propósitos. Gracias Señor. Laura Zarache Vargas Agradecimientos A quienes compartieron con nosotros a lo largo de estos 5 años, que ayudaron a lograr este sueño. A nuestros padres por su dedicación y entrega en la formación e instrucción de nuestras vidas. A profesores como Ilma. Bonilla, Richard Aroca y Claudia Zapata, quienes no dudaron en ningún momento, y entregaron sus conocimientos para la realización de este proyecto. Y principalmente a Dios por permitirnos rebasar la meta y compartir con nosotros la verdad de su amor. Los Autores TABLA DE CONTENIDO INTRODUCCION...................................................................................................................... 15 1. PLANTEAMIENTO DEL PROBLEMA ................................................................................... 18 1.1. DESCRIPCIÓN DEL PROBLEMA..................................................................................... 18 1.2. FORMULACIÓN DEL PROBLEMA ................................................................................... 19 1.3. SISTEMATIZACIÓN DEL PROBLEMA .............................................................................. 19 1.4 OBJETIVOS DE LA SOLUCION ......................................................................................... 20 1.4.1. OBJETIVO GENERAL .................................................................................................... 20 1.4.2 OBJETIVOS ESPECÍFICOS ............................................................................................ 20 1.5. JUSTIFICACIÓN................................................................................................................ 21 2. MARCOS DE REFERENCIA .............................................................................................. 23 2.1. ANTECEDENTES CIENTÍFICOS DEL PROYECTO.......................................................... 23 2.2. MARCO TEÓRICO ............................................................................................................ 26 2.2.1. INTRODUCCIÓN A LAS REDES NEURONALES........................................................... 26 2.2.2. REDES NEURONALES BIOLÓGICAS .......................................................................... 27 2.2.2.1. COMPOSICIÓN DE LAS REDES NEURONALES BIOLÓGICAS ............................... 27 2.2.2.2. DESCRIPCIÓN DEL PROCESO SINÁPTICO............................................................. 30 2.2.2.3. TIPOS DE NEURONAS .............................................................................................. 32 2.2.2.3.1. LAS NEURONAS SENSORIALES ............................................................................ 32 2.2.2.3.2. LAS NEURONAS MOTORAS ................................................................................... 32 2.2.2.3.3. LAS INTERNEURONAS ........................................................................................... 33 2.2.3. REDES NEURONALES ARTIFICIALES (RNA).............................................................. 33 2.2.3.1. HISTORIA DE LAS REDES NEURONALES ARTIFICIALES ...................................... 33 2.2.3.1.1. INICIOS CON REDES NEURONALES .................................................................... 34 2.2.3.1.2. ACOGIDA Y CRECIENTE INVESTIGACIÓN ........................................................... 35 2.2.3.1.3. EL DESPRESTIGIO Y ESTANCAMIENTO .............................................................. 36 2.2.3.1.4. NUEVOS HORIZONTES........................................................................................... 36 2.2.3.1.5. EL DESPERTAR Y LA SITUACIÓN ACTUAL ........................................................... 37 2.2.3.1.6. ESTADO ACTUAL DE LAS REDES NEURONALES ARTIFICIALES....................... 38 2.2.3.2. ELEMENTOS DE UNA RED NEURONAL ARTIFICIAL .............................................. 38 2.2.3.2.1. CARACTERÍSTICAS PRINCIPALES DE LAS NEURONAS ARTIFICIALES ............. 39 2.2.3.2.2. LA NEURONA ARTIFICIAL...................................................................................... 40 2.2.3.2.3. FUNCIONES EN EL MODELO DE NEURONA ARTIFICIAL ..................................... 42 2.2.3.3. ESTRUCTURA DE LAS REDES NEURONALES ARTIFICIALES.............................. 44 2.2.3.4. CLASIFICACIÓN DE LAS REDES NEURONALES ARTIFICIALES............................. 47 2.2.3.4.1. TIPOS DE REDES DE ACUERDO CON LAS SEÑALES QUE RECIBE ................... 47 2.2.3.4.2. TIPOS DE REDES DE ACUERDO A LA TOPOLOGÍA ............................................. 47 2.2.3.4.3. TIPOS DE REDES DE ACUERDO AL MECANISMO DE APRENDIZAJE ................ 48 2.2.3.5. EJEMPLOS DE REDES NEURONALES ARTIFICIALES............................................. 49 2.2.3.5.1. EL PERCEPTRON................................................................................................... 50 2.2.3.5.1.1. ARQUITECTURA DEL PERCEPTRON.................................................................. 51 2.2.3.5.1.2. APRENDIZAJE DEL PERCEPTRON ..................................................................... 52 2.2.3.5.1.3. LIMITANTES DEL PERCEPTRON......................................................................... 52 2.2.3.5.2. LA BACKPROPAGATION......................................................................................... 52 2.2.3.5.3. EL MODELO HOPFIELD .......................................................................................... 54 2.2.3.5.3.1. CARACTERISTICAS DE HOPFIELD ..................................................................... 54 2.2.3.5.3.1.2. FUNCIONAMIENTO DE LAS REDES HOPFIELD .............................................. 55 2.2.4. CIRCUITOS ENTRENADORES...................................................................................... 56 2.2.5. MICROCONTROLADORES............................................................................................ 57 2.2.5.1. TIPOS DE MICROCONTROLADORES ....................................................................... 58 2.2.5.1.1 PIC 16F84................................................................................................................ 58 2.2.5.1.2. COMPOSICIÓN DEL PIC 16F84 .............................................................................. 59 2.2.5.1.3. PROGRAMACIÓN DEL PIC 16F84........................................................................... 61 2.2.5.1.3.1. SET DE INSTRUCCIONES DEL PIC 16F84 .......................................................... 61 2.2.5.1.3.1.1. INSTRUCCIONES ORIENTADAS A REGISTROS.............................................. 61 2.2.5.1.3.1.2. INSTRUCCIONES ORIENTADAS A BITS .......................................................... 63 2.2.5.1.3.1.3. INSTRUCCIONES ORIENTADAS A CONSTANTES Y DE CONTROL............... 63 2.2.6. LENGUAJES DE BAJO NIVEL ....................................................................................... 64 2.2.6.1. ASSEMBLER ............................................................................................................... 65 2.2.6.1.1. INSTRUCCIONES ASSEMBLER PARA PIC 16F84 ................................................. 65 2.2.7. TÉCNICAS PEDAGÓGICAS DE APRENDIZAJE ........................................................... 66 2.2.7.1. EL APRENDIZAJE ...................................................................................................... 67 2.2.7.1.1. CONCEPTOS DE APRENDIZAJE ............................................................................ 67 2.2.7.1.2. TIPOS DE APRENDIZAJE........................................................................................ 69 2.2.7.1.2.1. CONDICIONAMIENTO CLÁSICO.......................................................................... 69 2.2.7.1.2.2. CONDICIONAMIENTO OPERANTE ...................................................................... 70 2.2.7.1.2.3. APRENDIZAJE SOCIAL ........................................................................................ 71 2.2.7.2. CONCEPCIÓN PEDAGÓGICA DE UN PROCESO DE ENSEÑANZA – APRENDIZAJE ................................................................................................................................................. 71 2.2.7.2.1 LEYES PEDAGÓGICAS........................................................................................ 72 2.2.7.2.2. CONCEPTUALIZACIÓN DEL APRENDIZAJE COMO PROCESO COGNITIVO AFECTIVO................................................................................................................................ 73 2.2.7.2.3 LAS TAREAS DEL PROCESO DE ENSEÑANZA – APRENDIZAJE.......................... 74 2.2.7.2.4. ETAPAS METODOLÓGICAS DE UN PROCESO DE ENSEÑANZA –APRENDIZAJE ................................................................................................................................................. 75 2.3. MARCO CONCEPTUAL .................................................................................................... 77 3. DELIMITACIÓN .................................................................................................................... 84 3.1. DELIMITACIÓN FINANCIERA ........................................................................................ 84 3.2. DELIMITACIÓN TÉCNICA ................................................................................................ 84 4. DISEÑO METODOLÓGICO.................................................................................................. 87 4.1. TIPO DE INVESTIGACIÓN............................................................................................... 87 4.2. TIPOS DE ESTUDIO. ...................................................................................................... 88 4.3. MÉTODO ........................................................................................................................ 88 4.4. TÉCNICAS DE RECOLECCIÓN DE LA INFORMACIÓN.................................................. 89 4.4.1. TÉCNICAS DE RECOLECCIÓN PRIMARIAS................................................................. 89 4.4.1.1. OBSERVACIÓN DIRECTA ......................................................................................... 90 4.4.1.2. ENCUESTAS .............................................................................................................. 90 4.4.1.3. ENTREVISTAS ........................................................................................................... 90 4.4.2. TÉCNICAS DE RECOLECCIÓN SECUNDARIAS........................................................ 91 4.4.2.1. FICHAS BIBLIOGRÁFICAS ....................................................................................... 91 4.4.2.2. INTERNET ................................................................................................................. 91 4.5. INSTRUMENTOS UTILIZADOS ..................................................................................... 91 4.5.1. CRONOGRAMA DE ACTIVIDADES ............................................................................... 92 4.5.2. PRESUPUESTO............................................................................................................. 92 4.6. POBLACIÓN OBJETIVO ................................................................................................... 92 4.6.1. JUSTIFICACIÓN ESTADÍSTICA DE LA MUESTRA ....................................................... 92 4.6.2. TAMAÑO DE LA MUESTRA. .......................................................................................... 93 5. ANÁLISIS E INTERPRETACIÓN DE RESULTADOS. .......................................................... 95 5.1. TABULACIÓN DE LAS ENCUESTAS............................................................................... 96 5.1.1. NOVENO SEMESTRE DE INGENIERÍA DE SISTEMAS ............................................... 96 5.1.2. DÉCIMO SEMESTRE DE INGENIERÍA DE SISTEMAS .............................................. 102 5.1.3. INGENIERÍA DE SISTEMAS NOVENO Y DÉCIMO SEMESTRE ................................ 108 5.1.4. NOVENO SEMESTRE INGENIERÍA ELECTRÓNICA ................................................. 114 5.1.5. DÉCIMO SEMESTRE INGENIERÍA ELECTRÓNICA................................................... 120 5.1.6. INGENIERÍA ELECTRÓNICA NOVENO Y DÉCIMO SEMESTRE ............................... 126 5.1.7. INGENIERÍA DE SISTEMAS E INGENIERÍA ELECTRÓNICA..................................... 132 6. PROPUESTA...................................................................................................................... 142 6.1. SOLUCIÓN ...................................................................................................................... 142 6.1.2.1. TABLA DE COMPARACIÓN ENTRE LAS DOS SOLUCIONES................................. 144 6.1.3. DESCRIPCIÓN DE LA SOLUCIÓN ............................................................................. 145 6.2. REQUERIMIENTOS DEL SISTEMA ................................................................................ 149 6.2.1. DEFINICIÓN DE REQUERIMIENTOS .......................................................................... 149 6.2.2. REQUERIMIENTOS FUNCIONALES ........................................................................... 151 6.2.3. REQUERIMIENTOS NO FUNCIONALES .................................................................... 151 6.2.4. ESPECIFICACIÓN DE REQUERIMIENTOS................................................................ 153 6.2.4.1. REQUERIMIENTOS FUNCIONALES ....................................................................... 153 6.2.4.2. REQUERIMIENTOS NO FUNCIONALES ................................................................. 155 6.2.5. NEGOCIACION DE REQUISITOS................................................................................ 160 6.2.6. EVOLUCIÓN DEL SISTEMA ........................................................................................ 162 6.2.7. MODELOS DEL SISTEMA............................................................................................ 163 6.2.7.1 ESQUEMA ELECTRÓNICO DEL CIRCUITO ENTRENADOR ................................... 163 6.2.7.2. CONEXIONES ENTRE MICROCONTROLADORES ................................................ 165 6.2.7.3. ESQUEMA DE INTERACCIÓN HOMBRE-CIRCUITO ENTRENADOR .................... 166 6.2.7.4. ESQUEMA DE INTERACCIÓN HOMBRE-QUEMADOR DE PIC............................... 167 6.2.7.5. DIAGRAMAS DE CASOS DE USO............................................................................ 168 6.2.7.5.1. CASOS DE USO ESENCIALES............................................................................. 170 6.2.7.6. MODELO CONCEPTUAL .......................................................................................... 171 6.2.7.7. DIAGRAMA DE SECUENCIA DEL SISTEMA ............................................................ 172 6.2.7.7.1. ENTRENADOR DE RNA........................................................................................ 172 6.2.7.7.2. QUEMADO DE PIC................................................................................................ 172 6.2.7.7.3. MODO ENTRENAMIENTO RNA............................................................................. 173 6.2.7.7.4. MODO EJECUCIÓN RNA....................................................................................... 173 6.2.7.8. DIAGRAMAS DE ESTADOS...................................................................................... 174 6.2.7.8.1. ENTRENADOR RNA .............................................................................................. 174 6.2.7.8.2. QUEMADOR........................................................................................................... 175 6.2.7.8.3. MODO DE EJECUCIÓN NEURONAL.................................................................... 175 6.2.7.8.4. MODO DE ENTRENAMIENTO NO SUPERVISADO NEURONAL.......................... 176 6.2.7.8.5. MODO DE ENTRENAMIENTO SUPERVISADO NEURONAL ................................ 176 6.2.7.9. GLOSARIO ................................................................................................................ 177 6.3. DISEÑO .......................................................................................................................... 179 6.4. IMPLEMENTACIÓN......................................................................................................... 182 6.4.1 CÓDIGO PERCEPTRÓN............................................................................................... 183 6.5 PRUEBAS......................................................................................................................... 202 7. CONCLUSIONES ............................................................................................................... 203 8. BIBLIOGRAFÍA. .................................................................................................................. 205 ANEXOS....................................................................................................................................211 INTRODUCCION Desde sus inicios el hombre ha intentado comprender el entorno en el que esta inmerso, lo cual ha causado la eterna investigación y postulación de hipótesis acerca del origen y funcionamiento del universo; Desde la simple observación de las estrellas, hasta el descubrimiento del complejo código genético de la vida sobre la tierra. A pesar de la gran vastedad de temas a los cuales el hombre podría dedicarse, ningún otro tópico lo ha cautivado tanto como la manera en que el pensamiento humano funciona. Luego de arduas investigaciones ha conseguido entender y descomponer este sistema en todas sus partes. No obstante, no se ha conformado solo con esto, actualmente ha iniciado una apresurada carrera para imitar este funcionamiento e incluso mejorarlo. Explotando así, un viejo concepto que era solo posible en libros de ficción, la renombrada inteligencia artificial. Tecnologías basadas en temas como los sistemas expertos y las redes neuronales artificiales, se están convertido en algo cotidiano en nuestras vidas. Ya no solo en las películas existen, reconocedores de huellas o de retinas y hasta los videojuegos se valen de RNA para sus complicados roles y premisas. Todo lo anterior ha inspirado la investigación y desarrollo de una herramienta que facilite la asimilación de conceptos, tales como el de “neurona artificial”, “topología neuronal” o “el aprendizaje neuronal artificial”. Esenciales para el desarrollo de nuevos proyectos basados en RNA. Este proyecto se basó, en la necesidad hallada en la Universidad Autónoma del Caribe, de crear un Entrenador de Redes Neuronales Artificiales, para la reproducción física de R.N.A. Fue así como se indago sobre las causas y efectos de esta carencia y se estableció el alcance del proyecto, por medio del objetivo general y los objetivos específicos (Capitulo 1). Al tener claro la solución y el alcance, se procedió a recolectar toda la información necesaria para el desarrollo de este proyecto (Capitulo 2). Al ampliar el cuerpo de conocimientos sobre R.N.A y las arquitecturas utilizadas en esta investigación (PIC 16F84A, Circuito Quemador, etc.). Se obtuvo la autoridad necesaria para delimitar el ámbito económico, técnico y geográfico donde estará inmerso este proyecto (Capitulo 3). Luego, para garantizar una satisfactoria investigación, se desarrollaron las herramientas metodologías tales como el tipo de investigación y las técnicas de recolección de la información (Capitulo 4). Además, se tomaron la opinión de los principales actores del sistema (Capitulo 5). Al terminar, lo anterior descrito se diseño e implemento la propuesta, base de esta investigación (Capitulo 6). 1. PLANTEAMIENTO DEL PROBLEMA Para alcanzar un mejor entendimiento de las variables que participan de este problema, así como también de las motivaciones que inspiraron la realización de este proyecto se describe a continuación el problema identificado. 1.1. DESCRIPCIÓN DEL PROBLEMA Pese a las herramientas y al personal calificado con el que cuenta la universidad los estudiantes de ingeniería de sistemas y electrónica no asimilan de manera eficiente los conceptos vistos en áreas como “inteligencia artificial y robótica”. Con el objetivo de precisar las metas que se quieren alcanzar con la realización de este proyecto se describen a continuación las causas que llevaron al grupo investigador a proponer y desarrollar este proyecto. La Universidad Autónoma del Caribe cuenta con un laboratorio de inteligencia artificial y robótica, diseñado con el fin de que el estudiante realice prácticas en el y desarrolle propuestas investigativos. Sin embargo, se ha notado que el laboratorio no posee ningún instrumento físico en el cual hacer prácticas en el área de redes neuronales, lo cual se refleja en la deficiente asimilación de conceptos tales como, métodos de aprendizaje y topologías de estas redes, vistos teóricamente en las aulas de clases. Lo anterior ha generado poco interés investigativo acerca de las redes neuronales y una evidente idealización de esta materia, lo que se evidencia en la escasa realización de proyectos de esta área en específico. De hecho en el último año se han realizado solo unos pocos proyectos concernientes a estos temas. Siendo evidente la problemática nuestro proyecto consiste en la creación de una herramienta que facilite la asimilación de los conceptos vistos acerca de redes neuronales. 1.2. FORMULACIÓN DEL PROBLEMA De acuerdo con la descripción del problema de investigación que se ha realizado, surge la necesidad de responder un interrogante clave: ¿Qué herramienta se puede construir para afianzar los conocimientos adquiridos de redes neuronales en el área de inteligencia artificial, de manera que se contribuya a la dinamización de los procesos teórico-prácticos en el área de inteligencia artificial y robótica? 1.3. SISTEMATIZACIÓN DEL PROBLEMA ¿Cuáles serían los beneficios obtenidos con el desarrollo de hardware que permita la realización de prácticas en redes neuronales? ¿Qué grupos u organizaciones contribuyen a la investigación científica en el área de inteligencia artificial en la Universidad Autónoma del Caribe? ¿Esta la universidad vinculada con alguna entidad dedicada a la investigación y financiación de proyectos basados IA? 1.4 OBJETIVOS DE LA SOLUCION 1.4.1. OBJETIVO GENERAL Construir un entrenador de redes neuronales para el desarrollo de prácticas, que fortalezcan los conocimientos teóricos en el área de inteligencia artificial, de los estudiantes de la Universidad Autónoma del Caribe. 1.4.2 OBJETIVOS ESPECÍFICOS ♦ Simular de manera eficiente, mediante la programación de microcontroladores el comportamiento de las neuronas para posteriormente establecer una red de las mismas con el fin de que el estudiante pueda practicar los conceptos acerca de red neuronales . ♦ Construir el medio apropiado en el que se acoplaran las neuronas, con el fin de intercomunicarlas. ♦ Fomentar la formación de grupos de investigación que aborden temas como la inteligencia artificial a través de la construcción de un prototipo que facilite la comprensión de todos los conceptos relacionados. 1.5. JUSTIFICACIÓN La Universidad Autónoma del Caribe ha puesto a disposición del estudiantado; Docentes, libros y las herramientas necesarias para el estudio, entendimiento, análisis y desarrollo de redes neuronales. Sin embargo, todavía se carece de algunos instrumentos, que faciliten la materialización de los conocimientos teóricos adquiridos en áreas como las Redes Neuronales. Además, si se observa detenidamente la temática desarrollada en los proyectos de grado, se nota el escaso interés que se tiene por la utilización de los recursos propuestos por la universidad en el área de robótica e inteligencia artificial; Hasta el punto que nuestro programa, se ha visto en la necesidad de aumentar considerablemente los requerimientos necesarios para aprobar los proyectos de grado cuyo producto final sea un sistema de información, pues la mayoría de los estudiantes se inclinan por esta vía. Debido a esto hemos querido enfocar nuestro proyecto de grado, al área de inteligencia artificial, para aumentar la gama de equipos con los que cuenta el laboratorio de robótica, y permitir así a los estudiantes un contacto real con circuitos inteligentes, al tiempo que se motiva a las futuras generaciones de ingenieros de sistemas a que se animen a utilizar al máximo todos los recursos que la universidad ha colocado a su disposición. Es nuestro deseo servir de ejemplo a otros para que se decidan por la inteligencia artificial como opción de grado. 2. MARCOS DE REFERENCIA Para la realización de este proyecto se hace necesario recopilar distintas clases de información que permitan hallar cuales son las mejores opciones y los conceptos vinculados tanto a la creación como al funcionamiento del un entrenador de redes neuronales. 2.1. ANTECEDENTES CIENTÍFICOS DEL PROYECTO Las redes neuronales en Colombia, están en etapa de investigación; Sin embargo, el interés en estas, ha aumentado considerablemente en los últimos años. Por medio, de un sondeo a través de la Web, se han encontrado proyectos de universidades colombianas referentes a inteligencia artificial. En los cuales, se utilizan conceptos de RNA. Entre estos cabe mencionar “Utilizando Inteligencia Artificial Para La Detección De Escaneo De Puertos” 1 También se hallaron investigaciones de tipo exploratorio basadas en RNA: • “Definiciones de redes neuronales y aprendizaje supervisado (usando temple simulado).2 • “Comparación de la aplicación de métodos de primer y segundo orden para el aprendizaje de redes neuronales”3 1 AMADOR, Soler. ARBOLEDA, Andrés. BEDON, Charles. Universidad del Cauca. 2006 PAZMIÑO, Catherine. HEREDIA, Lorena. RAMOS, Rosalyn. 2005. 3 Ph. Dr. RIBEIRO, Ricardo Gudwin, Ing. LINERO, Suárez, Lic. SÁNCHEZ, José Antonio Guerrero. 2 No obstante, el proyecto más cercano al que se quiere desarrollar se titula “Entrenamiento de una red neuronal utilizando algoritmos genéticos”4 En el caso de la Universidad Autónoma del Caribe los proyectos desarrollados en el área de inteligencia artificial que están registrados en la base de datos, en su mayoría son sistemas expertos basados en conocimiento. Proyectos cuyo objetivo sea la implementación de algún tipo de red neuronal, no se encontraron. Luego de analizar los distintos proyectos hallados; Se notó, que la implementación de las Redes Neuronales Artificiales es lógica (software). Este proyecto además del software propone la construcción física (circuito entrenador) de una red neuronal artificial. Debido a esto se quiso indagar acerca de circuitos entrenadores existentes y se han encontrado proyectos que contemplen la elaboración de circuitos entrenadores en entornos PIC’S. Pero, nadan tienen que ver con las RNA: • “Equipamiento Programables” • 4 Experimental: Entrenador Para Circuitos Controladores 5 “Entrenador para Circuitos Lógicos y de Control con Aplicaciones” 6 MÉNDEZ, Ricardo Rodríguez. Universitario Autónomo del Sur. Montevideo. Argentina. 2004. Este proyecto fue aplicado a un proyecto específico, cuya realización tuvo lugar en ese mismo lugar. 5 ZARECHT, Julio Ortega. CLERICUS, Pedro Rey. MUÑOZ, Luis Jaramillo. Universidad Austral de Chile. 6 Hamilton Institute. • Finalmente en esta categoría de proyectos, se descubrió un entrenador que consta de una interfaz grafica titulado: “Interfaz gráfica para el circuito entrenador de microelectrónica” 7 Así mismo, en el área de la enseñanza, se consiguieron entrenadores destinados a la práctica de diferentes conceptos electrónicos (Ninguno basado en RNA): • Entrenador Con 300 Practicas Electrónica Cebekit.8 • Entrenador Con 150 Practicas Electrónica Cebekit.9 • Entrenador 75 Prácticas Electrónica Estudio Grabación Digital. 10 • “Entrenador 10 Prácticas Electrónica Elemental Cebek”. 1112 Por ultimo; Se podría decir, que todos los circuitos artificialmente inteligentes, deben ser entrenados. Pero este entrenamiento es específico. Este depende de la finalidad de cada proyecto. Este proyecto tiene como una de sus metas sentar las bases para entrenamiento y ejecución de redes neuronales, por medio de un circuito entrenador. 7 RAMÍREZ, Tomas. Escuela Técnica Superior de Ingenieros Industriales. 1998. Uno de los más completos laboratorios de prácticas de electrónica del mercado, que ofrece la posibilidad de realizar 300 prácticas de un nivel medio/alto. 9 130 experimentos de electrónica de nivel medio para empezar a familiarizarse con los montajes y desarrollos TTL, con las puertas NOR, AND, OR y NAND. 10 Consta de 75 prácticas muy didácticas para experimentar desde la tecnología electrónica más básica hasta voz digital y grabación de sonidos. 11 Mini laboratorio para realizar 10 experimentos de nivel muy elemental con un auricular y una lámpara de fijación. 12 Tomados de: http://www.electan.com/catalog/kits-educativos-cebek-entrenadores-electronicac-320_315.html. 8 de octubre de 2007. 8 2.2. MARCO TEÓRICO El hombre ha conseguido descifrar muchas de las leyes que rigen el universo, de igual manera ha logrado reproducir algunos de los modelos biológicos encontrados dentro del, ejemplo de esto es el radar que tuvo su origen en el sonar, pieza clave en el sistema de navegación de los murciélagos o el helicóptero inspirado en el vuelo del colibrí. En este afán de clonar las funciones biológicas se han dedicado a imitar el funcionamiento de los diferentes órganos de cuerpo, de hecho existen riñones artificiales y válvulas especializadas para mejorar el funcionamiento de un corazón en mal estado. El próximo paso que el hombre decidió dar es la reproducción del pensamiento humano lo que hasta hace muchos años, representaba un gran obstáculo para la ciencia. Sin embargo hace unas décadas, el hombre ha logrado entender las bases del funcionamiento del cerebro humano, generando teorías y formulas que le han permitido simular rústicamente el funcionamiento neuronal. Es así como tienen origen las redes neuronales pieza clave para el desarrollo de esta investigación. 2.2.1. INTRODUCCIÓN A LAS REDES NEURONALES Las redes neuronales artificiales RNA surgen en el intento de reproducir la forma de procesamiento de información en el Sistema Nervioso Humano y algunas funcionalidades de este. En especial se busca imitar el hecho de que el cerebro humano puede realizar muchas operaciones simultáneamente (paralelismo) lo que es una gran ventaja frente a la secuencialidad de los computadores convencionales13. Se hace necesario para entender mejor los lineamentos que rigen una RNA y los elementos que la conforman estudiar aunque, de manera muy somera, estos mismos aspectos del sistema nervioso humano al cual en este documento se denominará Red Neuronal Biológica (RNB). 2.2.2. REDES NEURONALES BIOLÓGICAS Si se quiere conceptuar este termino, podría decirse que una RNB es el conjunto de los elementos que en los organismos animales se relacionan con la recepción de los estímulos y la transmisión de los impulsos nerviosos”14. 2.2.2.1. COMPOSICIÓN DE LAS REDES NEURONALES BIOLÓGICAS Las RNB tienen como elemento principal las células nerviosas, las cuales son conocidas también como neuronas; De hecho se estima que en cada milímetro del cerebro hay cerca de 50.0000 neuronas15. 13 Adaptado de http://www.uta.cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.pdf pagina Web vigente al 11-05-07 14 Adaptado de Biblioteca de Consulta Microsoft ® Encarta ® 2005. © http://www.ilustrados.com/publicaciones/EpylElpAZuyzPaNKYx.php, página Web vigente al 23 de marzo 2007. 15 El tamaño y la forma de una neurona es variable; las hay bipolares y multipolares, en forma de T, entre otras (Figura 1); pero independiente de esto, todas se subdividen en un cuerpo celular, dentritas y un axón. FIGURA 1: FORMA DE UNA NEURONA BIOLÓGICA16 El cuerpo celular o soma, contiene dentro de sí el núcleo y los demás orgánulos habituales de las células; se encarga de las actividades metabólicas y de recibir la información procedente de otras neuronas a través de las sinapsis. 17 16 http://www.iibce.edu.uy/uas/neuronas/#y, página Web vigente al 12 de marzo de 2007. Dr. Blowin Claude-B., La salud, enciclopedia medica familiar, Circulo de lectores, Barcelona, 1982, Pág. 89. 17 FIGURA 2: COMPONENTES DE UNA NEURONA BIOLÓGICA18 Las dentritas comienzan en el soma y son prolongaciones o ramificaciones cortas y muy finas. Ellas, reciben las señales de las otras neuronas a través de las terminaciones sinápticas o botones sinápticos de los axones. De lo anterior, podría decirse que las dentritas son las conexiones de entrada de las neuronas. El axón por su parte es una ramificación mucho más gruesa que las dentritas y también mas larga, de hecho existen axones que pueden medir varios metros19. El axón tiene la función de transmitir señales electroquímicas hacia otras neuronas. Los axones más largos están a menudo recubiertos con una capa de mielina, la cual sirve para algo similar al aislamiento de los cables eléctricos. 18 Tomado de Biblioteca de Consulta Microsoft ® Encarta ® 2005. © Dr. Blowin Claude-B., La salud, enciclopedia medica familiar, Circulo de lectores, Barcelona, 1982, Pág. 89. 19 2.2.2.2. DESCRIPCIÓN DEL PROCESO SINÁPTICO La sinapsis es el proceso mediante el cual las neuronas se interconectan para transmitir señales. Estas señales se codifican como una serie de breves pulsos periódicos o potenciales de acción, que tienen su origen en el soma y se propagan a través del axón con destino a otra neurona.20 Durante la sinapsis, entre la terminación del axón y la dendrita de la siguiente neurona hay un pequeño espacio llamado salto sináptico. Cuando el axón de la célula pre-sináptica (quien genera el impulso), se encuentra cerca de la célula destino (post-sináptica), este se ramifica en fibras conocidas como botones sinápticos. Es en este punto donde la señal electroquímica que ha recorrido la longitud del axón se convierte en un mensaje químico que viaja hasta la siguiente neurona. De esta forma; “Los potenciales de acción producidos por el soma de la neurona presináptica, llegan a los botones sinápticos (figura 3). Allí, estos hacen que las vesículas sinápticas (en azul) se rompan, liberándose así una sustancia llamada neurotransmisor. La cual, se difunde a través del salto sináptico. Siendo captada por las dentritas de la neurona pre-sináptica” 21 20 http://www.uta.cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.pdf página Web vigente al 11 de mayo de 2007. 21 Adaptado de http://www.uta.cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.pdf, pagina web vigente al 6 de agosto de 2007. FIGURA 3: DESCRIPCIÓN DEL PROCESO SINÁPTICO22 Las dentritas pasan las señales captadas al soma donde de acuerdo a la cantidad de neurotransmisor absorbido, se eleva o disminuye el potencial eléctrico de este. Esto se define mediante la sumatoria de las señales captadas por las dentritas si estas alcanzan un cierto umbral se disparan uno o más impulsos que se propagaran a lo largo del axón. Si los neurotransmisores elevan el potencial de la neurona se dice que la célula se excito y si lo disminuyen se dice que se inhibió. Para cada neurona, hay entre 1000 y 10.000 sinapsis. 23 Es de la manera anteriormente descrita como se va transmitiendo la información y es procesada a través de las conexiones sinápticas. El aprendizaje se produce entonces mediante la variación de la efectividad de la sinapsis, esto es la facultad de las sinapsis de inhibir o excitar a una neurona, cambiando así la influencia que tienen unas neuronas sobre otras. El aprendizaje es definido entonces como la generación o anulación de conexiones entre neuronas. “La sinapsis se clasifica según el área de contacto de la neurona receptora en tres tipos: • 22 axo-somática; unión entre el axón y el soma. http://www.uta.cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.pdf pagina web vigente al 6 de agosto de 2007. 23 http://www.iibce.edu.uy/uas/neuronas/#y, página Web vigente al 12 de marzo de 2007. • axo-dendrítica; unión entre el axón y las dentritas. • axo-axónica; unión entre los axones.”24 2.2.2.3. TIPOS DE NEURONAS Se dijo que las neuronas pueden ser físicamente de varios tipos pero adicionalmente se pueden clasificar en tres grupos de acuerdo con su función: 2.2.2.3.1. LAS NEURONAS SENSORIALES Estas son sensibles a estímulos no neuronales. Se encuentran localizadas en la piel, los músculos, articulaciones, y órganos internos e indican presión, temperatura y dolor. También hay neuronas sensoriales en la nariz y la lengua, estas son más especializadas y sensibles a las formas moleculares como sabores y olores. Este tipo de neuronas está ubicadas también en el oído interno y la retina; nos informan acerca del sonido y nos permiten ver respectivamente. 25 2.2.2.3.2. LAS NEURONAS MOTORAS Son las que producen estímulos en las células musculares de todos los órganos del cuerpo, por ejemplo los músculos del corazón, intestinos, vejiga, y glándulas. 26 24 http://ohm.utp.edu.co/paginas/docencia/neuronales/Capitulo1/RNBiologica.htm, página Web vigente al 11de mayo de 2007. 25 http://www.iibce.edu.uy/uas/neuronas/#y, página Web vigente al 12 de marzo de 2007. 26 http://www.iibce.edu.uy/uas/neuronas/#y, página Web vigente al 12 de marzo de 2007. 2.2.2.3.3. LAS INTERNEURONAS Interconectan las neuronas sensoriales, las motoras e inclusive a ellas mismas. Las neuronas del sistema nervioso central, incluyendo el cerebro (neuronas), son todas interneuronas. 27 2.2.3. REDES NEURONALES ARTIFICIALES (RNA) Las redes neuronales artificiales son estructuras de hardware y software programados para que simulen el comportamiento normal de las neuronas biológicas presentes en los seres vivos. Estas estructuras basan su diseño y comportamiento en dos principios de las neuronas biológicas: • “El impulso que entra a una neurona por medio de la sinapsis no es el mismo que sale. El tipo depende de la efectividad de la sinapsis, la cual es modificada mediante el aprendizaje, reforzando o debilitando el impulso. • En el soma se suman las entradas de todas las dentritas. Si estas sobrepasan un umbral se transmite un impulso sino, no se transmite nada. Después de transmitir un impuso la neurona no puede transmitir durante un tiempo de 0,5ms a 2ms, lo que se conoce como periodo refractario.” 28 2.2.3.1. HISTORIA DE LAS REDES NEURONALES ARTIFICIALES Contrario a lo que podría pensarse las simulaciones e investigaciones en redes neuronales no son temas recientes. Por el contrario, su desarrollo se ha dado a la par 27 http://www.iibce.edu.uy/uas/neuronas/#y, página Web vigente al 12 de marzo de 2007. Adaptado de http://www.uta.cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.pdf, pagina web vigente al 6 de agosto de 2007. 28 con la evolución de los sistemas de cómputo, siendo el clímax el periodo en el que las simulaciones por computador fueron factibles por capacidad de procesamiento y bajo costo. En sus inicios las redes neuronales provocaron gran entusiasmo en los investigadores, algún tiempo después muchos se desanimaron gracias a las teorías de Marvin Minsky y Seymour Papert, quienes eran considerados autoridades en el tema de redes neuronales, publicadas en “Perceptrons”, libro en el cual descalificaban altamente a este tipo de redes, aun así, aunque muy pocos, los investigadores siguieron su camino y lograron hacer grandes avances, sobrepasando las limitaciones postuladas. Actualmente, ha resurgido el interés y la financiación de las investigaciones ha aumentado. Si se quisiera hacer un recuento de la historia de las redes neuronales podría dividirse de la siguiente forma: 2.2.3.1.1. INICIOS CON REDES NEURONALES En este periodo se realizaron algunas simulaciones usando lógica formal. McCulloch y Pitts en 1943, hicieron uso de su conocimiento en neurología para desarrollar modelos de redes neuronales. Sus redes se componían de neuronas simples; dispositivos binarios con umbrales fijos. Los resultados de sus modelos fueron funciones lógicas elementales. 29 “En 1949, el fisiólogo Donald Hebb, dio conocer la conocida regla de aprendizaje en la que aseguro que la activación repetida de una neurona por otra a través de la sinapsis 29 Adaptado de http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html, Pagina Web vigente al 10 de junio de 2007. aumenta su conductividad, y la hace más propensa a ser activada sucesivamente, induciendo la formación de un circuito de neuronas estrechamente conectadas entre sí. En 1951, Minsky y Edmons, montaron la primera maquina basada en redes neuronales “Sharc”, Sharc constaba de 300 tubos al vació y un piloto automático de un bombardero B-24, articulados en una red de 40 neuronas artificiales que buscaban simular el cerebro de una rata atrapada en un laberinto, la idea era que cada neurona representaba una posición en el laberinto y la decisión entre derecha o izquierda, es decir la ruta a seguir, estaba dada por la fuerza de sus conexiones y era realizada por el piloto, pronto este invento fue desechado pues se concluyo que no era inteligencia ya que, la red no ideaba ningún plan.”30 Por su lado Farley y Clark en 1954 y Rochester, Holland, Haibit y Duda en 1956; lo intentaron usando simulaciones computacionales. 2.2.3.1.2. ACOGIDA Y CRECIENTE INVESTIGACIÓN Para este entonces no solo la neurología influía en el desarrollo de las redes neuronales, ya los físicos y los ingenieros hacían sus contribuciones para el progreso de las simulaciones de redes neuronales. En el año 1958, Frank Rosenblatt avivo el interés y la actividad en esta área cuando diseñó y desarrollo una red neuronal a la que llamo “Perceptron”. Esta tenia tres capas y hacia uso de la regla de aprendizaje publicada por Hebb. Este sistema pudo aprender a conectar y asociar unas entradas dadas a una unidad de salida aleatoria. 30 Adaptado de http://jkharlos.wordpress.com/2007/09/03/redes-neuronales-artificiales/ Widrow y Hoff desarrollaron en 1960 otro sistema basado en el perceptron de Rosenbalt; El ADALINE (ADAptive LInear Element). El ADALINE fue un dispositivo electrónico analógico hecho de componentes simples, en él la adaptación de los pesos se realiza teniendo en cuenta la diferencia de la salida deseada con la dada por la red (error), tal como en el perceptron, pero el método de aprendizaje utilizado era diferente. 31 2.2.3.1.3. EL DESPRESTIGIO Y ESTANCAMIENTO En 1969 Minsky y Papert escribieron un libro en el cual ellos generalizaban las limitaciones de un Perceptron monocapa a sistemas multicapa. En el libro ellos decían: "...nuestro intuitivo juicio es que la extensión (a sistemas multicapa) es una tarea estéril". Todo lo anterior tuvo como resultado la eliminación de la financiación para los investigadores que trabajaban con simulaciones de redes neuronales. Perjudicando así las investigaciones en este campo pues la mayoría de los investigadores se apartaron del tema. 32 2.2.3.1.4. NUEVOS HORIZONTES A pesar del oscuro panorama que enfrentaban las redes neuronales como tema de investigación, algunos valientes investigadores continuaron trabajando en el desarrollo de métodos computacionales basados en neuromorfología para problemas de 31 Adaptado de http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html, Pagina Web vigente al 10 de junio de 2007. 32 Adaptado de http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html, Pagina Web vigente al 10 de junio de 2007. identificación de patrones. Durante este periodo nuevos paradigmas fueron generados, los cuales aun continúan vigentes; • Los desarrolladores de la ART Teoría de la resonancia adaptativa, (Adaptive Resonance Theory); Steve Grossberg y Gail Carpenter. • Anderson y Kohonen quienes en 1982 desarrollaron técnicas para aprendizaje asociativo, consistente en neuronas que sumaban sus entradas. • John Hopfield quien en 1982, presentó ante la Academia Nacional de las Ciencias una red descrita con Claridad y rigor matemático la cual era una variación del Asociador Lineal. En el mismo año Paul Werbos desarrolló y usó el método de aprendizaje conocido como Backpropagation, destacando que es actualmente la arquitectura de red neuronal mejor conocida y más utilizada en las aplicaciones de redes neuronales. 33 2.2.3.1.5. EL DESPERTAR Y LA SITUACIÓN ACTUAL Durante el final de la década de los 70s y principios de los 80s, fue importante el resurgimiento del interés en el campo de las redes neuronales. Siendo este movimiento altamente influenciado por factores como la aparición de libros y conferencias que dieron a conocer las ventajas de esta técnica a personas de diferentes áreas, la introducción de cursos en los programas académicos de las principales universidades europeas y americanas y el financiamiento a proyectos de investigación en redes 33 Adaptado de http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html, Pagina Web vigente al 10 de junio de 2007. neuronales en Europa, EUA y Japón que han hecho que aparezcan una gran variedad de aplicaciones comerciales e industriales.34 2.2.3.1.6. ESTADO ACTUAL DE LAS REDES NEURONALES ARTIFICIALES La IA esta aun muy lejana a la inteligencia animal; por ejemplo la máquina más “inteligente”, no tiene la capacidad de un niño de 3 años y mucho menos el sentido común de un adulto. Sin embargo, se han hecho grandes avances en este campo en menos de un siglo, o por lo menos lo suficientes como para generar las financiaciones de investigaciones. Se encuentran comercialmente circuitos integrados basados en RNAs y las aplicaciones desarrolladas resuelven problemas cada vez más complejos. Sin lugar a dudas, hoy es un periodo de transición y fuerte evolución para la tecnología en redes neuronales. 35 2.2.3.2. ELEMENTOS DE UNA RED NEURONAL ARTIFICIAL Las redes neuronales artificiales han sido creadas para imitar o igualar el funcionamiento del cerebro humano, en este sentido y a pesar de que las RNA no alcanzan la complejidad del cerebro, existen ciertos aspectos similares, de hecho se han definido términos que hacen referencia a fenómenos que ocurren en el cerebro durante el funcionamiento normal de una RNB. 34 Dichos términos se explican a Tomado de http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html, Pagina Web vigente al 10 de junio de 2007. 35 Adaptado de http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html, Pagina Web vigente al 10 de junio de 2007. continuación puesto que son la base de todas las teorías formuladas y adelantos alcanzados en este campo. 2.2.3.2.1. CARACTERÍSTICAS PRINCIPALES DE LAS NEURONAS ARTIFICIALES Como se anuncio las características principales de las neuronas artificiales, fueron captadas a través de los estudios realizados a las neuronas biológicas; su comportamiento y funcionamiento fueron adaptados a las neuronas artificiales, pues el único fin de estas ultimas es simular a las neuronas biológicas. Una vez mencionado lo anterior se puede decir que las neuroredes tienen entre sus características: • Adquirir conocimientos de las experiencias e irlo almacenando en el peso de las conexiones entre neuronas. • Tienen alta plasticidad y adaptabilidad, esto es, capacidad del sistema nervioso de remodelar los contactos entre neuronas y la eficiencia de las sinapsis. La plasticidad puede explicar la capacidad de aprendizaje. • Son tolerantes ante los fallos, pueden sufrir daños considerables y continuar con un buen desempeño. • Son masivamente paralelas; el procesamiento de la información es realizado por un número elevado de unidades procesadoras (neuronas), cada una de la cual realiza un tipo de procesamiento simple. • Son un sistema distribuido, puesto que la información no es almacenada en un solo ente sino a través de las conexiones entre neuronas. 2.2.3.2.2. LA NEURONA ARTIFICIAL Siendo una red de neuronas, el principal elemento de estas es precisamente la neurona. Ahora bien en cuanto a RNA, existen varias formas de llamar a una neurona artificial; unidad de procesamiento, neuronodo, nodo, ente otros. En este documento la llamaremos simplemente nodo. Un nodo no es más que un artefacto electrónico creado para emular el funcionamiento de una neurona biológica, de manera que cada nodo (nodo) tendrá, en lo posible, las mismas características fisiológicas y funcionales de las neuronas biológicas. (Figura 4) FIGURA 4: COMPARACIÓN DE UNA NEURONA ARTIFICIAL Y UNA BIOLÓGICA (COMPLETAR)[36] [37] Al igual que en el cerebro, los nodos captan señales del exterior y producen una única salida hacia sus neuronas vecinas (una o más) luego de la realización de un calculo interno, es decir que los neuronodos también sinaptan. En el nodo podemos identificar los siguientes elementos; básicos en su composición. (Figura 5). 36 CIDISI. Redes Neuronales y sus aplicaciones. Facultad regional santa fe. Universidad tecnológica nacional. Argentina. 2007. 37 http://www.inf.unitru.edu.pe/~giia/trabajos/rnonline1.pdf FIGURA 5: ELEMENTOS BÁSICOS DE UNA NEURONA BIOLÓGICA)38 • “Un conjunto de conexiones, cada una de las cuales esta caracterizada por un coeficiente o peso. Estas conexiones, con su peso asociado, modelan el contacto entre neuronas. • Una función de red o de propagación; la cual calcula la entrada combinada total de todas las conexiones de entrada • Un núcleo central de procesamiento que se encarga de aplicar la función de activación, la cual suele ser una función umbral • La salida que es por donde se transmite el valor de activación a las demás neuronas.”[39] [40] 38 http://www.iim.umich.mx/publica/bajar/BARRERA/Articulo%204.pdf pagina Web vigente el 10 de marzo de 2007 39 Adaptado de http://www.iim.umich.mx/publica/bajar/BARRERA/Articulo%204.pdf pagina Web vigente el 10 de marzo de 2007 40 Adaptado de http://es.tldp.org/Presentaciones/200304curso-glisa/redes_neuronales/curso-glisaredes_neuronales-html/c14.html pagina Web vigente el 10 de marzo de 2007 2.2.3.2.3. FUNCIONES EN EL MODELO DE NEURONA ARTIFICIAL Una neurona recibe las entradas de sus vecinas mediante un proceso electroquímico y entrega una salida de acuerdo a la cual se sigue propagando o no un impulso hacia las neuronas vecinas. Ahora bien para modelar este comportamiento se han definido una serie de funciones complementarias, puesto que usan como parámetros los resultados de las otras por ello se describe de manera mas especifica las funciones que participan en una RNA. • Función de propagación (Netj) Equivale a la combinación de las señales excitadoras e inhibidoras. En términos matemáticos, es generalmente la suma ponderada de todas las entradas recibidas, es decir, se suma cada entrada multiplicada por el peso correspondiente. Este valor se conoce como potencial post-sináptico o sináptico. Ecuación 1. Netj = ∑ (wij ⋅ yi (t ) ) Ecuación 1. Función de propagación41 • Función de activación (F) Combina el potencial sináptico arrojado por la función de propagación, con el estado actual de la neurona para conseguir el futuro estado o nivel de activación [aj(t)] de la misma (Ecuación 2). Existen varias clases de funciones de activación lineales, de escalón o signoidales, las cuales se muestran en la figura 6. aj (t + 1) = F (aj (t ), Netj ) Ecuación 2. Función de activación42 41 Tomado de http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/la-neuronaartificial-como-simil-de-la-neurona-biologica.htm pagina web vigente al 10 de junio de 2007 FIGURA 6: TIPOS DE FUNCIONES ACTIVACIÓN, DE IZQUIERDA A DERECHA ESCALÓN Y 43 SIGMOIDEA • Función de salida (Yj) Convierte el estado de activación de la neurona en la salida de la misma hacia la siguiente neurona. En algunos modelos esta función es la función identidad es decir que la salida generada es el mismo nivel de activación. Ecuación 3. ver Anexo 12. fj (aj (t )) = aj (t ) Ecuación 3. Función de salida44 42 http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/la-neurona-artificial-comosimil-de-la-neurona-biologica.htm pagina web vigente al 10 de junio de 2007 43 http://es.tldp.org/Presentaciones/200304curso-glisa/redes_neuronales/curso-glisaredes_neuronales.pdf pagina web vigente al 15 de marzo de 2007 44 http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/la-neurona-artificial-comosimil-de-la-neurona-biologica.htm pagina web vigente al 10 de junio de 2007 2.2.3.3. ESTRUCTURA DE LAS REDES NEURONALES ARTIFICIALES Las neuronas reciben información del exterior la procesan y la transmiten a sus vecinas, según esto es entendible que las neuronas puedan organizarse según la función que cumplen dando como resultado varias capas en una RNA. • Capa de entrada Estas neuronas reciben la información procedente de cada sinapsis para ser procesada. • Capa de salida Recibe la información procedente de la capa oculta y la envía a la red. En ocasiones realiza una parte del procesamiento. • Capa oculta Las neuronas de esta capa toman la información de las neuronas de entrada, la procesan y la entregan a las neuronas de salida. El número de estas neuronas presentes en la red dependen del tipo de red que se quiera representar.45 FIGURA 7: CAPAS DE UNA RED NEURONAL ARTIFICIAL.46 45 Adaptado de http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/la-neuronaartificial-como-simil-de-la-neurona-biologica.htm pagina web vigente al 10 de agosto de 2007. 46 http://supervisadaextraccionrecuperacioninformacion.iespana.es/working/RedNeuronalArtificial.png pagina web vigente al 10 de marzo de 2007. De esta manera se tiene la red organizada según la función de sus neuronas, pero aun no se ha descrito la manera como sus nodos se interconectan formando diversas estructuras, en relación a esto también se puede clasificar las neuronas en tres tipos diferentes de acuerdo a como la información fluye en la red neuronal. • Redes con conexiones hacia delante En este tipo de redes cada neurona de una capa se interconecta con todas las neuronas de la capa siguiente (unión 1-n). La clave en estas redes es que ninguna de las salidas de la neurona de una capa es entrada de otra neurona de la misma capa. De esta forma se asegura el fluido de la información únicamente hacia delante (feedforward). Figura 8. FIGURA 8: RED FEED-FORWARD47 • Redes con conexiones hacia atrás Para este tipo de redes las conexiones también se dan desde una neurona de una capa hacia todas las neuronas de la capa siguiente, la diferencia radica en que en estas si esta permitida la conexión entre neuronas de la misma capa e incluso con las de los 47 http://logicalgenetics.com/assorted/recurrent-nns/feedforward-small.jpg. Pagina web vigente al 10 de mayo de 2007. niveles anteriores (n-n). Se hace obvio el hecho de que estas neuronas deben tener por lo menos dos capas. Figura 9. FIGURA 9: RED FEED-BACK48 • Redes con conexiones lineales En este caso las conexiones se dan entre dos neuronas de diferentes capas (1-1). Figura 10. Este modelo se usa cuando la capa de entrada es algún dispositivo lector, display, switch. FIGURA 10: RED CON CONEXIONES LINEALES49 48 http://www.monografias.com/trabajos38/redes-neuronales/Image10688.gif. Pagina web vigente al 10 de mayo de 2007. 49 http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/clasificacion-de-redesneuronales-respecto-al-aprendizaje.htm. Pagina web vigente al 10 de marzo de 2007. 2.2.3.4. CLASIFICACIÓN DE LAS REDES NEURONALES ARTIFICIALES Al momento de estudiar una RNA se pueden apreiar aspectos características para distinguir un modelo de otro; en base a esos aspectos se puede efectuar una clasificación; Puesto que el conjunto de estos aspectos constituyen el modelo. 2.2.3.4.1. TIPOS DE REDES DE ACUERDO CON LAS SEÑALES QUE RECIBE Para que se efectúe el entrenamiento, la red debe recibir un conjunto de información, de l naturaleza de esta información depende el procesamiento y la salida arrojada. De acuerdo con el tipo de entrada que admite una RNA se puede clasificar en tres grupos; • Redes analógicas o continuas Los datos de entrada son valores reales continuos, acotado generalmente, por los intervalos [-1,1] o [0,1]. En estas redes las salidas son igualmente análogas. Usan habitualmente una función de activación sigmoidea o lineal. • Redes discretas Procesan entradas binarias y la respuesta es de la misma naturaleza. Usa una función de activación escalonada. • Redes híbridas Por su parte estas redes reciben entradas discretas y la respuesta arrojada es binaria. Un ejemplo de este tipo de redes es el perceptron. 2.2.3.4.2. TIPOS DE REDES DE ACUERDO A LA TOPOLOGÍA La topología de una red esta enmarcada por el número de capas que esta posea, según este criterio las RNA pueden ser de dos tipos: • Redes monocapa Estas solo poseen una capa de neuronas que emiten y reciben señales del exterior, es decir que son a la vez entradas y salidas. En este tipo de redes es permitido conexiones de una neurona hacia ella misma. • Redes multicapa En estas redes existen al menos las capas de entrada y la salida aunque en ciertos casos puede haber una o varias capas intermedias. 2.2.3.4.3. TIPOS DE REDES DE ACUERDO AL MECANISMO DE APRENDIZAJE Siendo el aprendizaje la base fundamental de los mecanismos que se dan en la neurona, se explica pues la importancia que tiene el método de aprendizaje que se elija. Detalles como la eficiencia y la rapidez del método son fundamentales para elegir la técnica de aprendizaje adecuada, a continuación se describen los cuatro tipos de aprendizaje existentes: • Aprendizaje supervisado Consiste en la introducción de un conjunto de entradas a la red, a la vez, que se le indica la salida que se espera. Un aplicativo x se encarga de la comparación de las entradas (la obtenida y la deseada) y de acuerdo a lo obtenido, se hace una variación en los pesos con el fin de reducir la discrepancia. Este aprendizaje suele llevar un tiempo considerable, pero es muy exacto. • Aprendizaje no supervisado En este tipo se presentan a la red una serie de entradas pero no las salidas deseadas, por lo cual la red internamente va creando un vector de salidas, es decir que para una entrada cualquiera las respuestas serán siempre las mismas. • Aprendizaje reforzado Su principio de funcionamiento es similar al propuesto en el supervisado, pero en este la información que se presenta a la red, es la mínima para su funcionamiento, solo se dice si la respuesta es correcta o no. 50 Adicionalmente el aprendizaje puede dividirse según el periodo donde se lleve a cabo el aprendizaje en: • Redes on-line Pueden adquirir nuevos conocimientos cuando se desee. Trabajan en tiempo real. • Redes off-line Solo puede adquirir conocimiento durante el aprendizaje. No aprenden en tiempo real. 2.2.3.5. EJEMPLOS DE REDES NEURONALES ARTIFICIALES Se menciono la popularidad que las redes neuronales han ganado en el periodo actual, por lo cual se ha logrado avanzar en torno al desarrollo de nuevas teorías y de nuevas investigaciones, sin embargo aun en la actualidad sigue haciéndose uso de modelos propuestos hace décadas y que en su momento sentaron las bases –y continúan haciéndolo- para las redes neuronales. 50 http://www.redes-neuronale.netfirms.com/tutorial-redes-neuronales/clasificcion-de-redesneuronales-respecto-al-aprendizaje.htm 2.2.3.5.1. EL PERCEPTRON Fue el primer modelo de RNA desarrollado (1958), fue hecho con base a la regla de aprendizaje de Hebb. Tan pronto como Rosenbalt saco a la luz al perceptron, se produjo en la comunidad científica un gran interés, de hecho se hicieron estudios con redes de todos los tamaños, pero el único resultado favorable fue arrojado por el perceptron de una capa, en la actualidad se consideran sinónimos RNA de una capa y perceptron. En la figura 11 se hace descripción del modelo de una neurona artificial, en donde el soma se representa como un sumador de los estímulos externos zj, seguida de un función no lineal yj = f(zj), en donde f(zj) es la función de activación.51 FIGURA 11: NEURONA ARTIFICIAL52 51 Adaptado de www.electronica.com.mx/neural/information/perceptron.html pagina web vigente al 5 de mayo de 2007. 52 http://www.depi.itch.edu.mx/apacheco/lengs/ann/pagina2.gif pagina web vigente al 5 de mayo de 2007. La efectividad de la sinapsis, aquí esta dada por los pesos asignado para cada interconexión, desde la neurona i hasta la j. en el perceptron cada entrada se multiplica por el peso de la conexión, los resultados se suman y se comparan con un valor umbral, el cual si es sobrepasado, se dice que la neurona se activo. 2.2.3.5.1.1. ARQUITECTURA DEL PERCEPTRON El perceptron es una red de dos capas de neuronas, la primera se encarga de recibir las señales y la segunda realiza todo el procesamiento. Existen autores quienes afirman que la capa de entrada en los perceptrones, no es en si misma capa puesto que solo recepciona las señales. En el perceptron las capas se conectan entre si con conexiones completas, esto es, cada neurona de una capa esta conectada con todas las del siguiente nivel. FIGURA 12: PERCEPTRON53 53 http://es.wikipedia.org/wiki/Red_neuronal_artificial pagina web vigente al 5 de abril de 2007. 2.2.3.5.1.2. APRENDIZAJE DEL PERCEPTRON El algoritmo de aprendizaje del perceptron es de tipo no supervisado. Para entender de mejor manera el funcionamiento del perceptron, se han descrito a continuación los pasos necesarios para que una red de tipo perceptron aprenda: 1. Se inicializan los pesos y el umbral. 2. Se entrega a la red un par de (entrada, salida esperada) 3. Se calcula la salida actual. 4. Si salida obtenida > 0, entonces se calcula el error 5. Adaptación de los pesos. 6. Se vuelve al paso uno.54 2.2.3.5.1.3. LIMITANTES DEL PERCEPTRON El perceptron tiene solo una capa de entrada y otra de salida, lo cual no le permite representar patrones complejos, de hecho solo puede hacerlo con patrones separables en el plano, lo cual se conoce como separabilidad lineal. Como respuesta a este inconveniente, se le agrego una capa mas la oculta, y una neurona mas para salida. 2.2.3.5.2. LA BACKPROPAGATION “Backpropagation es un tipo de red de aprendizaje supervisado, que emplea un ciclo propagación – adaptación de dos fases. Una vez que se ha aplicado un patrón a la entrada de la red como estímulo, este se propaga desde la primera capa a través de las 54 Tomado de http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/la-neuronaartificial-como-simil-de-la-neurona-biologica.htm pagina web vigente al 10 de junio de 2007 capas superiores de la red, hasta generar una salida. La señal de salida se compara con la salida deseada y se calcula una señal de error para cada una de las salidas. Las salidas de error se propagan hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa oculta que contribuyen directamente a la salida. Sin embargo las neuronas de la capa oculta solo reciben una fracción de la señal total del error, basándose aproximadamente en la contribución relativa que haya aportado cada neurona a la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido una señal de error que describa su contribución relativa al error total. Basándose en la señal de error percibida, se actualizan los pesos de conexión de cada neurona, para hacer que la red converja hacia un estado que permita clasificar correctamente todos los patrones de entrenamiento”55. FIGURA 13: BACKPROPAGATION56 55 Tomado de ttp://ohm.utp.edu.co/paginas/docencia/neuronales/Capitulo2/Backpropagation/ AntecedentesB.htm 1 mayo de 2007 56 http://www.depi.itch.edu.mx/apacheco/lengs/ann/pagina3.gif pagina web vigente al 5 de mayo de 2007. 2.2.3.5.3. EL MODELO HOPFIELD Este modelo ha sido el responsable de la mayoría de los avances en la investigación acerca de redes neuronales, puesto que esta construido con tan alto grado de simplificación que se hace sencillo extraer las características importantes del sistema. El modelo propuesto por Hopfield inicialmente era monocapa con n neuronas las cuales, tenían valores de entrada y salida binarios y funciones de activación escalonadas. Posteriormente se presento un modelo continuo que usaba funciones de activación sigmodales. Las redes basadas en el modelo de Hopfield, son redes de adaptación probabilística, recurrentes. Su arquitectura tiene solo una capa pero posee interconexión total, la regla de aprendizaje es el no supervisado. Contrario a lo definido para las redes recurrentes, Hopfield brinda estabilidad, pues J. Hopfield, su creador, sentó las bases para que una red que pudiera operar con memoria autoasociativa, es decir almacenar la información y luego poder recuperarla aunque halla sufrido deterioro. 57 2.2.3.5.3.1. CARACTERISTICAS DE HOPFIELD Consiste en un conjunto n de nodos interconectados entre si, que actualizan sus valores de manera asíncrona e independiente del resto de los nodos. 57 www.electronica.com.mx/neural/information/hopfield.html pagina web vigente al 2 de mayo de 2007. Define el estado del sistema aplicando a los valores de activación, una función umbral; si un nodo mantiene su valor de activación se dice que el elemento se estabilizo. Dependiendo de cómo las neuronas actualicen sus salidas se dividen en paralelas y secuenciales; en la paralela cada neurona hace la actualización simultáneamente, la secuencial, se actualiza en cada interacción solo la salida de una neurona. Las redes Hopfield son off-lines pues el entrenamiento y la ejecución son dos etapas diferentes. 2.2.3.5.3.1.2. FUNCIONAMIENTO DE LAS REDES HOPFIELD Para estas redes son diferenciables dos procesos esenciales, el primero de ellos el proceso de entrenamiento y el segundo la ejecución; la red esta en capacidad de almacenar en si misma toda la información que necesite durante el entrenamiento, luego cuando se presente un estimulo, ella evolucionara hasta generar una salida que valla de acuerdo con la entrada o la mas parecida si la entrada fue distorsionada. El funcionamiento de una neurona en las redes Hopfield es básicamente: • Cada neurona recibe la entrada del exterior y envía como salida esa misma información a sus vecinas. • Cada neurona recibe la información de sus vecinas y la de ella y las suma multiplicadas por el peso correspondiente. Obteniendo la entrada neta. • A la entrada se le aplica la función de transferencia. Y esa es la salida en ese instante. • Se repite el proceso hasta que las neuronas se estabilicen. 2.2.4. CIRCUITOS ENTRENADORES Son herramientas, que nos facilita la comprensión y aplicación controlada, de los conocimientos adquiridos en las distintas áreas de la electrónica (En este caso en especial, los conocimientos de IA). FIGURA 15: ENTRENADOR LÓGICO CE300 CON SERVO MOTOR CE300B 58 Este, a su vez consta de varios censores receptores de información, cuya función es la de capturar señales del medio externo al sistema, para luego procesarlas. Y cuyo resultado es arrojado por medio de salidas tales como, pantallas, motores, luces, etc. Entre sus ventajas se encuentra, la de permitir montar o desmontar fácilmente circuitos electrónicos diseñados por las personas que manipulan dichos dispositivos. El diseñador es el encargado de adaptar el modelo a la configuración del circuito entrenador, es decir, de establecer las conexiones físicas entre éste y el microcontrolador59. 58 http://www.control-systems-principles.co.uk/whitepapers/spanishwp/02ServoPaper2SP.pdf 20 de agosto de 2007 2.2.5. MICROCONTROLADORES Un microcontrolador es un dispositivo programable capaz de realizar diferentes actividades que requieran de procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos. 60 FIGURA 16: MICROCONTROLADOR61 “Los microcontroladores poseen una memoria interna que almacena dos tipos de datos; las instrucciones, que corresponden al programa que se ejecuta, y los registros, es decir, los datos que el usuario maneja, así como registros especiales para el control de las diferentes funciones del microcontrolador.”62 De igual forma, requiere de un programa lógico, el cual busca administrar los recursos internos del microcontrolador y realizar las funciones para las que fue programado. El programa es almacenado en la memoria ROM del microcontrolador. Los microcontroladores poseen principalmente una ALU, memoria de programa, memoria de registros, y pines I/O de entrada y salida. De igual forma, requiere de un 59 http://server-die.alc.upv.es/asignaturas/LSED/2002-g03/Soft_Hard/herramientas_para_pic.pdf . pagina web vigente al 16 de Marzo de 2007 60 http://www.alos.5u.com/indexpic877.htm pagina web vigente al 16 de Marzo de 2007 61 http://www.superrobotica.com/images/S310130.JPG. pagina web vigente al 16 de Marzo de 2007 62 http://www.superrobotica.com/images/S310130.JPG. pagina web vigente al 16 de Marzo de 2007 programa lógico, el cual busca administrar los recursos internos del microcontrolador y realizar las funciones para las que fue programado. El programa es almacenado en la memoria ROM del microcontrolador. Las aplicaciones, están realizadas en lenguaje maquina (assembler) para microcontroladores, el cual es interpretado en forma binaria. Es necesario transferir las aplicaciones a la memoria interna del microcontrolador y para realizar esta tarea se emplea un programador físico, que es una herramienta hardware cuyo propósito es el de escribir el programa en la memoria interna del dispositivo63. 2.2.5.1. TIPOS DE MICROCONTROLADORES Existen numerosas clases de microcontroladores, cada uno orientado hacia una aplicación especifica. Se considero pertinente mencionar solo los microcontroladores relacionados con esta investigación. El PIC 16F84. 2.2.5.1.1 PIC 16F84 Este microcontrolador es fabricado por MicroChip Tecnologies, familia a la cual se le denomina PIC. El modelo 16F84 posee varias características que hacen a este microcontrolador un dispositivo muy versátil, eficiente y practico, de hecho es el mas usado en el mercado. Algunas de estas características se mencionan a continuación: • 63 Soporta modo de comunicación serial, posee dos pines para ello. Adaptado de: - http://www.electronicaestudio.com/microcontrolador.htm. 16 de Marzo de 2007 - http://es.wikipedia.org/wiki/Microcontrolador. 16 de Marzo de 2007 • Amplia memoria para datos y programa. • Memoria reprogramable. • Set de instrucciones tipo RISC que aunque reducido, posee las instrucciones necesarias para facilitar su manejo.64 • Poseen gran documentación a nivel mundial en Internet. • Son baratos y fáciles de programar. 2.2.5.1.2. COMPOSICIÓN DEL PIC 16F84 El PIC 16F84, contiene dentro de sí una serie de circuitos integrados que no cabe enunciar, estos circuitos funcionan en base a las entradas que reciben del exterior, esto a través de unos pines incrustados cuya función se describe a continuación: FIGURA 17: ESTRUCTURA DEL PIC 16F8465 64 http://www.monografias.com/trabajos18/descripcion-pic/descripcion-pic.shtml pagina web vigente al 15 de mayo de 2007. 65 http://www.mstracey.btinternet.co.uk/pictutorial/picmain.htm. pagina web vigente al 23 de octubre de 2007. • RA0 hasta RA4 El RA es un Puerto bidireccional, es decir puede ser configurado como entrada o salida. El numero que sigue a RA es el numero del puerto, así que cuenta con 5 bits. • RB0 hasta RB7 RB es también un Puerto bidireccional igual que el RA pero la diferencia radica en que este cuenta con 8 bits. • VSS y VDD Estos puertos suministran la electricidad al PIC. VDD es la entrada positiva y VSS es la entrada es negativa. El voltaje máximo que acepta el PIC es 6V y el mínimo 2V. • OSC1/CLK IN y OSC2/CLKOUT Estos van conectados a un reloj externo al PIC. Proporcionando un timer para el mismo. • MCLR Este pin es usado para borrar las posiciones de memorias en el PIC, cuando se esta reprogramando. • INT Este pin se usa para monitorear el PIC, dependiendo del valor se puede reiniciar o detener cualquier programa que se este ejecutando. • T0CK1 Este es otro reloj, pero este funciona internamente.66 66 http://www.mstracey.btinternet.co.uk/pictutorial/picmain.htm pagina web vigente al 23 de octubre de 2007. 2.2.5.1.3. PROGRAMACIÓN DEL PIC 16F84 Cada microcontrolador tiene un programa asociado en el cual se programa en el caso del PIC no es la excepción, este cuenta con unas instrucciones básicas que permiten programarlo, estas son descritas a continuación al igual que las instrucciones para el ensamblador. 2.2.5.1.3.1. SET DE INSTRUCCIONES DEL PIC 16F84 Para entender mejor cada instrucción se explica a continuación el significado de algunos parámetros: f: Registro al que afecta la instrucción. W: Acumulador. b: Número de bit. k: constante. d: selección de destino del resultado de la instrucción, puede ser "0" o "1", si es "0" el resultado se guarda en el acumulador (W) y si es "1" se guarda en el registro f al que afecta la instrucción. 2.2.5.1.3.1.1. INSTRUCCIONES ORIENTADAS A REGISTROS • ADDWF f,d Suma W y el registro f, el resultado lo guarda según d (sí d=0 se guarda en W y sí d=1 se guarda en f). • ANDWF f,d Realiza la operación AND lógica entre W y f, el resultado lo guarda según d. • CLRF f Borra el registro f (pone todos sus bits a cero). • CLRW Borra el acumulador. • COMF f,d Calcula el complementario del registro f (los bits que están a "0" los pone a "1" y viceversa. Resultado según d. • DECF f,d Decrementa f en uno (le resta uno). Resultado según d. • DECFSZ f,d Decrementa f y se salta la siguiente instrucción si el resultado es cero. Resultado según d. • INCF f,d Incrementa f en uno (le suma uno). Resultado según d. • INCFSZ f,d Incrementa f y se salta la siguiente instrucción si el resultado es cero (cuando se desborda un registro vuelve al valor 00h). Resultado según d. • IORWF f,d Realiza la operación lógica OR entre W y f. Resultado según d. • MOVF f,d Mueve el contenido del registro f a W sí d=0 (sí d=1 lo vuelve a poner en el mismo registro) • MOVWF f mueve el valor de W a f. • NOP No hace nada, solo pierde el tiempo durante un ciclo. • RLF f,d Rota el registro f hacia la izquierda a través del bit CARRY. • RRF f,d Lo mismo que RLF pero hacia la derecha. • SUBWF f,d Resta f y W (f - W). Resultado según d. • SWAPF f,d Intercambia los 4 primeros bit de f por los otros cuatro. Resultado según d. • XORWF f,d Realiza la operación lógica XOR (OR exclusiva) entre W y f. Resultado según d. 2.2.5.1.3.1.2. INSTRUCCIONES ORIENTADAS A BITS • BCF f,b Pone a "0" el bit b del registro f • BSF f,d Pone a "1" el bit b del registro f • BTFSC f,b Se salta la siguiente instrucción si el bit b del registro f es "0" • BTFSS f,b Se salta la siguiente instrucción si el bit b del registro f es "1" 2.2.5.1.3.1.3. INSTRUCCIONES ORIENTADAS A CONSTANTES Y DE CONTROL • ADDLW k Le suma el valor k al acumulador (W). • ANDLW k Operación lógica AND entre W y el valor k (resultado en W). • CALL k Llamada a subrutina cuyo inicio esta en la dirección k • CLRWDT Borra el registro Watchdog • GOTO k Salta a la dirección k de programa. • IORLW k Operación lógica OR entre W y el valor k (resultado en W) • MOVLW k carga el acumulador con el valor k. • RETFIE Instrucción para volver de la interrupción • RETLW k Carga el valor k en W y vuelve de la interrupción • RETURN Vuelve de una subrutina. • SLEEP El PIC pasa a modo de Standby 67 2.2.6. LENGUAJES DE BAJO NIVEL Lenguaje de programación que proporciona poca abstracción del microprocesador de un ordenador. Este tipo de lenguajes es utilizado para la programación de drivers. Se trabaja en líneas de instrucciones y con orientación a la maquina. 68 67 Tomado de http://perso.wanadoo.es/chyryes/tutoriales/pic6.htm Pagina web vigete al 23 de octubre de 2007. 68 http://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel pagina web vigente al 15 de mayo de 2007. Estos lenguajes presentan característica frente a los otros tipos de lenguajes por que se ejecuta rápidamente y con poco uso de memoria. El traslado desde él a lenguaje maquina es mucho más fácil. Aunque en termino de facilidad de lectura de las instrucciones y programación en él es considerablemente difícil; el programador debe conocer las instrucciones. 69 Existen varios lenguajes ensambladores; lenguajes usados para generar códigos de bajo nivel, uno de los mas usados es Assembler.70 2.2.6.1. ASSEMBLER El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador. 2.2.6.1.1. INSTRUCCIONES ASSEMBLER PARA PIC 16F84 69 70 http://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel pagina web vigente al 15 de mayo de 2007. http://es.wikipedia.org/wiki/Lenguaje_ensamblador pagina web vigente al 15 de mayo de 2007. Existen una serie de instrucciones que son para el ensamblador y hacen de programación una tarea mucho más sencilla y sobre todo más legible. • EQU A través de esta instrucción se puede colocar nombre a un registro de memoria. (VARIABLE1 EQU 0CH). • #DEFINE Similar a EQU, pero en este caso el nombre se le coloca a la instrucción entera. (#DEFINE BANCO1 BSF STATUS,5) • ORG Indica al ensamblador la dirección de memoria de programa donde se guardará la instrucción que vaya a continuación. • END Se escribe al final del programa para indicar que ya ha acabado. Si no se coloca arrojara error. A la hora de empezar a programar es importante tener un orden de esta forma: • Los EQU y los #DEFINE van al principio y luego va el programa. • El programa debe ser escrito en cuatro columnas separadas por tabuladores, • En la primera columna se ponen las etiquetas a direcciones de programa. • En la segunda columna se ponen las instrucciones En la tercera columna se ponen Los registros o parámetros a los que afecta la instrucción. • En la cuarta columna se ponen los comentarios que creas pertinentes seguidos de un punto y coma.71 2.2.7. TÉCNICAS PEDAGÓGICAS DE APRENDIZAJE 71 http://perso.wanadoo.es/chyryes/tutoriales/pic7.htm. pagina web vigente al 23 de octubre de 2007. Durante mucho tiempo se pensó que el aprendizaje solo dependía de la cantidad esfuerzo invertido en la aprehensión de conocimientos, en la actualidad de ha establecido que existen factores externos al estudiante que mejorar o imposibilitan de asimilación de los conocimientos. 2.2.7.1. EL APRENDIZAJE Si bien es cierto que el ser humano, es un ser biológico; Algo que lo separa de las demás especies terrestres, es su capacidad de adaptarse al medio hostil en el cual se encuentra. La base del conocimiento, ingenio e innovación humana es su capacidad para modificar su conducta a partir de la experiencia. Que obtiene, al interactuar con factores extrínsecos, en un escenario externo. En pocas palabras su “capacidad de aprendizaje”. 2.2.7.1.1. CONCEPTOS DE APRENDIZAJE “Aunque no hay una definición de aprendizaje plenamente satisfactoria y absolutamente compartida por todos los especialistas, sí existe una definición que recibe el máximo consenso, y es ésta: se entiende por aprendizaje "un cambio más o menos permanente de conducta que se produce como resultado de la práctica" (Kimble, 1971; Beltrán, 1984) “.72 72 Jesús Beltrán, Ed. Síntesis. Madrid, 2002. Tomado de: http://www.elprisma.com/apuntes/curso.asp? id=11846. Pagina web vigente al 1 de octubre de 2007. En otras palabras es:”El mecanismo psicológico que mediatiza el proceso experiencia (la adquisición de conocimiento en relación con una realidad externa)”. 73 El aprendizaje está condicionado a la experiencia. Sin esta no, podríamos sortear situaciones parecidas a las ya vividas, de una forma satisfactoria. De esta relación constante entre el hombre y el medio nace el conocimiento, base de nuestra ciencia moderna. Sin embargo, en la búsqueda de un nuevo conocimiento -más próximo a la verdadmuchas veces es necesario “desaprender lo aprendido”. Lo que significa que en el aprendizaje, es primordial la retroalimentación y la depuración de los errores. Los seres humanos “Somos los únicos capaces de compartir, experiencias de éxito o fracaso y dirigir conscientemente y voluntariamente la actividad de aprendizaje”. 74 Por ejemplo: La observación de los astros permitieron a científicos como Galileo y Copernico. Revolucionar la ciencia de su época, al asegurar que la tierra giraba alrededor del sol. Convirtiéndose así, en la antitesis del sistema geocéntrico. Aceptado al menos durante 1000 años. Nadie en la actualidad pone en duda al sistema heliocéntrico. Pero, tal vez en unos años las conclusiones de Albert Einstein, serán rebatidas y darán paso a un nuevo cuerpo del conocimiento. 73 http://medmayor.cl/apuntes/apuntes/psico/aprendizaje.ppt. Pagina web vigente al 1 de octubre de 2007. 74 www.gestiopolis.com/recursos3/docs/rh/tecapren.htm. Pagina web vigente al 1 de octubre de 2007. 2.2.7.1.2. TIPOS DE APRENDIZAJE Existen varias formas con las cuales se logra que un ser humano aprenda. Por medio de la utilización de estímulos que provienen del entorno donde se encuentra. 2.2.7.1.2.1. CONDICIONAMIENTO CLÁSICO Es la asociación que surge entre dos estímulos. Cuando el primero de ellos (condicionado) y otro que libera en el sujeto una respuesta involuntaria (estimulo incondicionado). Se relacionan repetitivamente en un lapso de tiempo; logrando así, que en el sujeto, el primer estimulo provoque una nueva respuesta, Semejante a la inhibida por el estimulo incondicionado. Es decir, que se produce una nueva asociación en el árbol del sentido común del sujeto, por medio del aprendizaje. Fue el neurólogo ruso Iván P. Pávlov el que desarrolló la teoría del reflejo condicionado junto con su colega ruso Vladimir M. Bechterev. “Pávlov, que en un principio lo denominó ‘secreción psíquica’, observó que la salivación provocada en los perros al oler el alimento se podía producir ante un estímulo que nada tenía que ver con comida, Pero que había sido presentado constantemente a la hora de comer. La salivación del perro ante un pedazo de carne es un reflejo innato o incondicionado, pero si se hace sonar una campana en el momento en que el perro recibe la carne, después de varias ocasiones éste salivará sin necesidad de olerla. Bastará el sonido de la campana para provocar en el animal un reflejo condicionado. Según Pávlov, cuando se asocia el reflejo incondicionado al reflejo condicionado, éste se refuerza. Si el estímulo no se refuerza o ejercita, el reflejo condicionado terminará por debilitarse y desaparecer.” 75 2.2.7.1.2.2. CONDICIONAMIENTO OPERANTE Ocurre cuando la conducta de un sujeto es inducida a seguir ciertos patrones de comportamiento. Es decir, es premiada si es correcta (refuerzo positivo) y castigada si es errónea (refuerzo negativo). Este tipo de aprendizaje se basa, en la manipulación de las posibilidades que ocurra un suceso o estimulo proveniente del entorno del sujeto. La utilización de un refuerzo positivo logrará que el individuo repita su conducta en un futuro y al usar un refuerzo negativo se logrará que el sujeto inhiba la conducta por la cual fue castigado. FIGURA 18:TEORÍA DEL CONDICIONAMIENTO OPERANTE DE SKINNER76 75 76 Tomado de Biblioteca de Consulta Microsoft ® Encarta ® 2005. Biblioteca de Consulta Microsoft ® Encarta ® 2005. “Como se ve en la imagen, los refuerzos positivos condicionan al ratón para que encuentre el final del laberinto. El ratón es recompensado con un alimento cuando llega a la primera etapa (A). Una vez que este tipo de conducta se ha arraigado, el ratón no recibe más recompensas, hasta que alcanza la segunda etapa (B). Después de varios intentos, el ratón debe encontrar el final del laberinto para recibir su recompensa (C). La investigación de Skinner sobre condicionamiento operante le llevó a la conclusión de que las recompensas más simples pueden condicionar formas complejas de comportamiento”. 77 2.2.7.1.2.3. APRENDIZAJE SOCIAL “Es un proceso mediante el cual la conducta de un individuo de modifica como resultado de observar, escuchar o leer sobre la conducta de un modelo. Este modelo a imitar es valorado positivamente por el observador, en cuanto a status, prestigio. Los modelos pueden ser reales o simbólicos.” 78 2.2.7.2. CONCEPCIÓN PEDAGÓGICA DE UN PROCESO DE ENSEÑANZA – APRENDIZAJE. Para valorar las relaciones existentes entre estos conceptos se debe primero entender los cada uno de los términos relacionados; por educación se entiende, la educación como un sistema de influencias conscientemente organizado, dirigido y sistematizado sobre la base de una concepción pedagógica determinada. 77 78 Tomado de Biblioteca de Consulta Microsoft ® Encarta ® 2005. www.gestiopolis.com/recursos3/docs/rh/tecapren.htm. Pagina web activa al 1 de octubre de 2007 Ahora bien, educación e instrucción son términos diferentes, siendo el segundo el sistema de información, los conocimientos y procedimientos a los que el estudiante debe alcanzar. En otras palabras la instrucción esta relacionada con los métodos didácticos de los que se hace uso en la educación. 79 La articulación de estos conceptos da origen a la enseñanza, la cual se define desde un punto de vista pedagógico como la dirección, orientación y control del aprendizaje, incluyendo el autocontrol y la auto dirección en el proceso. Desde el mismo punto de vista el aprendizaje se define como un proceso en el que el estudiante, en un contexto especifico y con un método de dirección; desarrolla capacidades, hábitos y habilidades que le permiten apropiarse de la cultura y de los medios para conocerla y enriquecerla. Al concebir la relación entre la enseñanza y el aprendizaje a partir del enfoque histórico, se asume que la educación y la enseñanza guían el desarrollo y a su vez toman en cuenta las regularidades del propio desarrollo, este es un producto de la actividad y de la comunicación del estudiante con dicho proceso. Según la concepción pedagógica, todo proceso de enseñanza aprendizaje debe ser; individual, comunicativo, motivante, cooperativo y significativo. 2.2.7.2.1 LEYES PEDAGÓGICAS El aprendizaje es un proceso unido a la enseñanza, integrado por categorías, configuraciones y componentes. Las relaciones entre las configuraciones del proceso de enseñanza aprendizaje adquieren una significación especial en tanto establecen la 79 http://www.monografias.com/trabajos26/aprendizaje-desarrollador/aprendizajedesarrollador.shtml#conceppedag Pagina web activa al 1 de octubre de 2007 dinámica de sus componentes y permiten la explicación de cada uno de estos y del proceso en su conjunto. • La escuela en la vida, que expresa la relación entre las categorías pedagógicas: problema, objeto y objetivo. • La enseñanza mediante la afectividad, que expresa la relación entre las configuraciones o categorías pedagógicas: objetivo, contenido y método. El problema abarca todas aquellas lagunas del conocimiento, presentes en el objeto las cuales deben solucionarse. El problema se convierte pues en el eje central del proceso de enseñanza, pues se camina en busca de la solución al mismo. El objeto es básicamente todo el contenido del cual el estudiante debe apropiarse. El objetivo es la meta o modelo pedagógico a alcanzar. El contenido debe ser el mismo objeto para que resulte importante al individuo. El método es la técnica que utiliza el estudiante para apropiarse del contenido. 2.2.7.2.2. CONCEPTUALIZACIÓN DEL APRENDIZAJE COMO PROCESO COGNITIVO AFECTIVO En todo proceso de enseñanza aprendizaje la apropiación de conocimientos es un tipo de actividad mediante la cual se produce la conjugación de los productos de la experiencia ajena con los indicadores de la propia. El método de enseñanza debe ser motivador y generar al máximo el interés por aprender y a la vez debe ofrecer una respuesta a la necesidad de que los estudiantes aprendan con las vivencias diarias, es decir con la realidad social que se torna cambiante y es muy dinámica. En cualquier método de enseñanza debe haber centrado un objetivo, o sea los logros que se deben alcanzar en el proceso de enseñanza-aprendizaje: • Logros cognoscitivos; saber. • Logros procedimentales; saber hacer. • Logros actitudinales; ser, convivir. Todos estos logros deben estar en función de desarrollar en la persona su capacidad de pensar, sentir y actuar. En el proceso de enseñanza- aprendizaje las personas deben afrontar la solución de problemas nuevas, para que de esta manera aprendan a adquirir nuevos conocimientos y a emplear dichos conocimientos. 2.2.7.2.3 LAS TAREAS DEL PROCESO DE ENSEÑANZA - APRENDIZAJE En un proceso de enseñanza se proponen tareas que tiene por objetivo dirigir, de manera óptima, el proceso autónomo y consciente de construcción de conocimientos, habilidades y valores por parte de las personas, en cuyo orden y organización se evidencia el método empleado por estos para estructurar el proceso. Estas tareas, se implementan a través de procedimientos, técnicas y recursos, que se estructuran en función de los medios materiales de los que se disponga. La finalidad de las tareas de enseñanza es dirigir el aprendizaje de los estudiantes para que su actuación este acorde con las exigencias de la sociedad. Las tareas de enseñanza aprendizaje que deben desarrollarse para dirigir un proceso de aprendizaje autónomo y consciente, vivencial y desarrollador se caracteriza por: • Encauzar la formulación de conceptos • Promover la emisión de hipótesis y las posibles vías de la solución • Orientar la construcción de conocimientos y habilidades, que permitan el empleo de métodos y procedimientos. • Valorar la reflexión y la profundidad de las soluciones alcanzadas. De igual forma la dirección de un proceso, como es el proceso de enseñanza aprendizaje, tiene que partir de la consideración de una metodología integrada por etapas, eslabones o momento a través d e los cuales transcurre el aprendizaje. Estas etapas no implican una estricta sucesión temporal de pasos, por el contrario se superponen y se desarrollan de manera integrada, no es un algoritmo, aunque en determinado momento prevalezca una de ellas. 2.2.7.2.4. ETAPAS METODOLÓGICAS DE UN PROCESO DE ENSEÑANZA APRENDIZAJE Las etapas de la metodología de un proceso de enseñanza aprendizaje son: • Motivación Etapa inicial del aprendizaje donde se crea una expectativa que mueve el aprendizaje. Se motiva haciendo el planteamiento del problema. • Comprensión Es la atención de las personas sobre lo que es importante, consiste en el proceso de percepción de aquellos aspectos que ha seleccionado y que le interesa aprender. • Sistematización Es la etapa crucial en el proceso de enseñanza aprendizaje, aquí es donde el estudiante se apropia de los conocimientos habilidades y valores. Aquí se desarrolla el dominio del contenido que le fue inicialmente mostrado. • Transferencia Es la ejercitación y aplicación del contenido asimilado. • Retroalimentación En esta etapa se compara el resultado con respecto a lo planteado inicialmente, valorando como fue asimilada toda la información vista. En palabras más sencillas se evalúan los procesos, se identifica que tanto se aprendió. 2.3. MARCO CONCEPTUAL Aprendizaje: Es la capacidad de las neuronas artificiales de adiestrarse por medio de su experiencia. Aprendizaje supervisado: Es un tipo de aprendizaje en cuanto a las redes neuronales, en el cual se suministra a la red la entrada y salida deseada y esta debe ajustar su peso tratando de minimizar el error de su salida. Aprendizaje no supervisado: Es este caso solo se le proporciona a la red los estímulos y esta es quien debe decidir a través de un parámetro predefinido cual será la salida. Artificial: Algo hecho por el hombre, no natural. Axón: Es la salida de la neurona. Se utiliza para enviar impulsos o señales a otras células nerviosas. Capa: Conjunto de neuronas cuyas entradas provienen de la misma fuente y sus salidas se dirigen al mismo destino, el cual puede ser otra capa de neuronas. Célula: Unidad fundamental de los organismos vivos. Circuito: Conjunto de conductores que recorre una corriente eléctrica, y en el cual hay generalmente intercalados aparatos productores o consumidores de esta corriente. Condicionado80: Cuando dos eventos o situaciones se asocian de manera que la aparición de uno genera la presencia de otro. Conexión: Punto de unión entre el axón y las dentritas de 2 o mas neuronas. Dentritas: Inicia en el soma en forma de delgadas ramificaciones. Son las que reciben señales provenientes de otras neuronas. En otras palabras son las conexiones de entrada a la neurona. Depuración81: Eliminar fallas. Corregir un problema en hardware (Significa encontrar los errores en el diseño del circuito) o software (encontrar los errores en la lógica del programa). Entrenamiento: proceso que consiste en presentar de forma repetida las entradas y sus correspondientes salidas. Para lo cual, la red produce una salida que se compara con el peso ideal y se genera un error. El valor del error se utiliza como realimentación para aplicar a un algoritmo de corrección de los valores o pesos de conexión entre las neuronas. Estímulo82: Agente físico, químico, mecánico, etc., que desencadena una reacción funcional en un organismo. Error: Es la diferencia entre la salida deseada de la red y la arrojada por la misma. 80 81 82 http://medmayor.cl/apuntes/apuntes/psico/aprendizaje.ppt. 1 de octubre de 2007. Alan Freedman. Diccionario de Computación Bilingüe. Mc Graw Hill. Séptima edición. Volumen 3. 1996. Biblioteca de Consulta Microsoft® Encarta® 2005 Experiencia: Conocimiento adquirido por medio de las situaciones vividas y sirve de plan de acción, para solucionar problemas semejantes a los cuales nos permitieron adquirirla. Factores Extrínsecos: Agentes externos, procedentes del medio que pueden influenciar en el comportamiento de un sujeto. IA: Siglas de Inteligencia Artificial. Inteligencia: Palabra que hace parte del término “Inteligencia artificial”. Es la capacidad de entender o comprender y de resolver problemas. 83 Inteligencia artificial84: Desarrollo y utilización de ordenadores con los que se intenta reproducir los procesos de la inteligencia humana. Medio: Ecosistema, entorno o contexto con el cual interactúa un sujeto. Microcontrolador Es un chip que contiene pequeños circuitos que pueden ejecutar comandos básicos de una computadora. Mielina: Lipoproteína que constituye la vaina de las fibras nerviosas. 85 Neurona artificial: Es un circuito eléctrico que procesa las señales que recibe de otras unidades iguales, produciendo en la salida un uno o un cero. 83 Biblioteca de consulta Microsoft Encarta 2005. http://es.wikipedia.org/wiki/M%C3%A1quina pagina web vigente al 7 de octubre de 2007 85 Biblioteca de consulta Microsoft Encarta 2005. 84 Neurona calculadora u ocultas: Son aquellas que no tienen contacto con el medio, sirven de puente entre las neuronas de entrada y de salida. Ayudan a disminuir el error de la salida final de la red. Neurona de entrada: Sirven de receptores de la información proveniente del medio con el que interactúa la neurona. Neurona de salida: Entrega la respuesta de la red, la cual, dependiendo del valor, afecta el comportamiento de toda la red. Orgánulo: Unidad estructural y funcional de una célula u organismo unicelular.86 Patrón87: Modelo que sirve de muestra para sacar otra cosa igual. Modelo que sirve de muestra para sacar otra cosa igual. Peso: Es el valor optimo o ideal al que debe llegar la relación entre uniones neuronales, se incrementa su valor a través de la sinapsis entre dos neuronas. Placa Base: Placa principal que contiene los componentes fundamentales de un sistema de computación. Procesar88: Inferir sobre una información dada, sometiendo la aun aserie de cálculos para obtener una respuesta deseada. Redes informáticas: Interconexión de dos o más dispositivos informáticos cuyo objetivo es compartir los recursos que cada uno tiene. 86 Biblioteca de consulta Microsoft Encarta 2005. Biblioteca de Consulta Microsoft® Encarta® 2005. 88 Biblioteca de Consulta Microsoft® Encarta® 2005. 87 Red neuronal Conjunto de neuronas interconectadas. Dependiendo de la topología a implementar. Reflejo: Acción involuntaria producida por un estimulo externo. Retroalimentación89: Es un mecanismo, mediante el cual una parte de la salida de un sistema o de una maquina retorna como entrada. También llamada servomecanismo. Sirve para comparar la manera como un sistema funciona en relación con el patrón establecido para su funcionamiento. Sensor90: Dispositivo que detecta una determinada acción externa, y la transmite adecuadamente para ser procesada. Sentido común: Es una recopilación constante de conocimientos adquiridos mediante la estimulación de los sentidos, que sirven de base para decidir cursos de acción en situaciones similares a las vividas. Sinapsis: Establece la comunicación entre dos células. Se origina del acercamiento entre el axón de una neurona con las dentritas de otra. Esta cuasi unión puede ser excitadora o inhibidora según el transmisor que las libere. Socket: Artefacto electrónico donde se acopla un microprocesador microcontrolador. Soma: Es el cuerpo de la neurona, contiene el núcleo. 89 90 Chavenato Idalberto. Introducción a la teoria general de la administracion. Mc Graw Hill. 3 edición. 1990 Biblioteca de Consulta Microsoft® Encarta® 2005. o un Switch: Mecanismo destinado a interrumpir o establecer un circuito eléctrico. Interruptor Umbral: valor de comparación dependiendo del cual si es sobrepasado o no la neurona se excita o se inhibe. Unión excitadora: Produce, mediante un estímulo, un aumento de la actividad de una neurona. Unión inhibidora: Suspende transitoriamente la función o actividad de una neurona. Topología: Forma. Aplicado a las redes neuronales es la forma como se conectan las neuronas y como realizan los cálculos. Umbral Valor mínimo de una magnitud a partir del cual se produce un efecto determinado. Voltaje: Cantidad de voltios que actúan en un aparato o sistema eléctrico. 3. DELIMITACIÓN Una vez definido el proyecto a realizar y sistematizada la información relacionada con este, es necesario establecer los parámetros de tiempo, espacio, técnico y financiero; en otras palabras el alcance del proyecto. 3.1. Delimitación Financiera Para el desarrollo y puesta en marcha del entrenador de redes neuronales, se requiere de una serie de recursos los cuales están estipulados en el presupuesto del proyecto, dichos recursos provienen de los investigadores del proyecto. Ver anexo 11. 3.2. Delimitación Técnica Para el desarrollo del proyecto se deben tener conocimientos en lenguajes de programación secuencial, lenguaje ensamblador -de bajo nivel- para el microcontrolador de referencia 16F84, técnicas de enseñanza-aprendizaje, Inteligencia Artificial, sistemas neuronales biológicos, métodos de recopilación de información, así como también es de mucha importancia tener conocimientos de electrónica (circuitos digitales). 3.2.1. Delimitación Tecnológica Para realizar este proyecto necesitamos un simulador de PIC se usara simupic84 uno de los más conocidos, un traductor de código ensamblador a código hexadecimal en este caso MPASM, una tarjeta quemadora de PIC con su respectivo software de quemado WINPIC800; También se hará uso de microcontroladores PIC16F84. 3.3. Delimitación Temporal Y Espacial Con el fin de acotar de manera más precisa nuestro proyecto, procedemos a definir a continuación límites de tiempo de desarrollo y ubicación del mismo. 3.3.1. Delimitación Temporal El tiempo estipulado para el desarrollo completo del proyecto es de 8 meses, el cual incluye los dos periodos académicos cursados desde Febrero a Octubre del año 2007. 3.3.2. Delimitación Espacial La Universidad Autónoma del Caribe, cuyas instalaciones se encuentran ubicadas en el departamento del Atlántico; al norte de la ciudad de Barranquilla entre la calle 90 y la carrera 46, la cual cuenta con un laboratorio de robótica epicentro de esta investigación. Ver anexo 5. 4. DISEÑO METODOLÓGICO En toda investigación lo significativos son los resultados que esta arroje y los aportes que pueda realizar a su línea de estudio, estos deben ser lo mas exactos posible, para ello es necesario hacer uso de pautas que guíen rigurosamente el curso de acción de la investigación y que garanticen la representatividad y confiabilidad de los resultados arrojados por esta. De estas pautas surgen una serie de aspectos a tener en cuenta, que para este caso específico se describen a continuación. 4.1. TIPO DE INVESTIGACIÓN. Esta investigación es aplicada, puesto que como su nombre lo indica su objetivo es la aplicación, utilización y consecución de resultados por medio de la práctica de los conocimientos ya publicados y aceptados sobre RNA, por medio de la implementación de un entrenador. Es de tipo descriptiva, puesto que con este proyecto se quiere representar de forma mecánica una neurona biológica, basándonos en las características que a través de estudios previos, se han logrado percibir y simular. Como lo es la interacción entre ellas para lograr un objetivo común. Para una efectiva simulación de estas redes se hace necesaria no solo conocer las características, sino también alterar los valores de las variables que inciden en el comportamiento de la neurona, por lo que bajo ese orden de ideas, la investigación es también experimental. 4.2. TIPOS DE ESTUDIO. Debido a que el objetivo central de este proyecto, es describir, mostrar y simular el funcionamiento de una RNA. Será necesario, para un correcto desarrollo metodológico, la utilización de un método de estudio descriptivo. Que como su nombre lo indica, Nos servirá para examinar como son, como funcionan y cuales son los factores que influyen en las RNA. Además, será imprescindible la utilización de un método de estudio experimental. Ya que; Si bien es cierto, que con el método descriptivo podremos analizar el funcionamiento neuronal. Solo con el experimental podremos percibir, Cuales son los efectos que causan en el funcionamiento de la red, la manipulación de agentes internos y externos a la misma. Tal es el caso de las entradas, el peso de la sinapsis neuronal, las funciones de activación, etc. 4.3. MÉTODO En sus inicios el método de investigación de este proyecto, se basó en la observación directa; Que permitió identificar la situación problema (Falta de herramientas Hardware para procesos de enseñanza–aprendizaje en ramas de la inteligencia artificial, teles como las RNA), a resolver por medio de esta investigación descriptiva-experimental. Así mismo, se reflexionó sobre las posibles causas y efectos, de esta problemática en la Universidad y se formuló una posible solución (Entrenador de RNA). Por medio de las encuestas y entrevistas, se logró recoger la opinión e los actores principales (Alumnos y docentes) del sistema que se pretendía desarrollar. Gracias a estas técnicas de recolección de información, se demostró que el problema era real; Confirmando así, la necesidad de crear un entrenador de RNA. Por consiguiente, se reunió a través de consultas bibliográfícas y el Internet, la información necesaria para el diseño del entrenador RNA. Tanto en su parte física (circuito entrenador), como en su parte lógica (Códigos neuronales). Todo, lo anteriormente descrito, se sistematizó en un cronograma de actividades, que se utilizó para la administración del tiempo. Asegurando así, el cumplimiento de lo pactado en los objetivos y el alcance del proyecto. 4.4. TÉCNICAS DE RECOLECCIÓN DE LA INFORMACIÓN Para delimitar y conocer a ciencia cierta, que componentes integraran nuestro proyecto es necesaria la utilización de distintas técnicas de recolección de información tales como encuestas, entrevistas entre otras, además de la revisión bibliografíca y de fuentes secundarias. 4.4.1. TÉCNICAS DE RECOLECCIÓN PRIMARIAS Son las fuentes principales de las que se recopila la información necesaria, confiables por lo que se tiene un contacto directo con la fuente de información sin ningún tipo de cambio o manipulación. Las manejadas en este caso se listan a continuación. 4.4.1.1. OBSERVACIÓN DIRECTA Se materializo en el laboratorio de inteligencia artificial y robótica de la Universidad Autónoma del Caribe, al observar la falta de herramientas hardware que permitan la puesta en práctica de conocimientos en temas como redes neuronales. 4.4.1.2. ENCUESTAS Se realizaron al personal estudiantil implicado, esto es, los estudiantes de ingenierías electrónica y de sistemas de noveno y décimo semestre de la universidad, quienes utilizan el laboratorio de IA y robótica, la encuesta se hizo en base a preguntas cerradas a un numero total de 167 estudiantes; 84 de ingeniería de sistemas y 85 de ingeniería electrónica, que fueron tabuladas para un análisis posterior. (Ver anexo 6, 7 y 8). 4.4.1.3. ENTREVISTAS Por medio de la entrevista se obtuvo de manera explicita el aval para la realización de este proyecto; dada la respuesta de los entrevistados, en este caso los expertos en IA con los que cuenta la universidad. La entrevista fue elaborada con respuestas abiertas con el fin de conocer a fondo la opinión de los entrevistados. (Ver anexo 9 y10). 4.4.2. TÉCNICAS DE RECOLECCIÓN SECUNDARIAS Para la realización de este proyecto se acudió a fuentes secundarias como medio de consulta, con el objetivo de documentarnos sobre los temas necesarios para el desarrollo de esta investigación, estas fuentes secundarias fueron las siguientes: 4.4.2.1. FICHAS BIBLIOGRÁFICAS Con el fin de de identificar claramente los libros que han servido de apoyo para el desarrollo de esta investigación, se han diseñado fichas bibliográficas en las que se proporciona toda la información necesaria para que el lector pueda profundizar los conceptos estudiados en esta investigación. Ver Anexo 14 4.4.2.2. INTERNET Debido al carácter investigativo de los conceptos relacionados con RNA, se utilizo la Internet como una poderosa herramienta para obtener la mayor cantidad de información. Ver Anexo 13 4.5. INSTRUMENTOS UTILIZADOS Adicional a las técnicas de recolección ya mencionadas se utilizaron algunas otras como apoyo a la investigación buscando hacer un mejor monitoreo y estructuración de la investigación. 4.5.1. CRONOGRAMA DE ACTIVIDADES Se identificaron las actividades críticas que hacen parte de la realización de este proyecto y se delimitaron en términos del tiempo destinado para la realización de cada una. El cronograma se referencia en el anexo 3. 4.5.2. PRESUPUESTO Se estimó un presupuesto de gastos para la realización de este proyecto con el fin de valorar la viabilidad del mismo en cuanto a términos económicos. El Presupuesto se referencia en el anexo 11. 4.6. POBLACIÓN OBJETIVO Estudiantes de noveno y décimo semestre de ingeniería de sistemas y de ingeniería electrónica de la Universidad Autónoma del caribe que hayan cursado o estén cursando actualmente la asignatura Tecnología de sistemas II (Inteligencia artificial). El número total de estos es 300, descritos de mejor maneja en el Anexo 4. 4.6.1. JUSTIFICACIÓN ESTADÍSTICA DE LA MUESTRA Para sacar el tamaño de la muestra se tomó la población total de los estudiantes de Ingeniería electrónica e ingeniería de sistemas que estén cursando actualmente noveno (9) y décimo (10) semestre. De esta población se tomó una muestra que representara el total de la población y a la cual se va a tomar para realizar las encuestas. 4.6.2. TAMAÑO DE LA MUESTRA. Para determinar el tamaño de la muestra, se realizaron cálculos basados en una formula estadística, de tipo estratificado, de la siguiente manera: n= N 1+ N e Donde; 2 N = La población Objetivo e = Error, del 5,08% n = Muestra de la población objetivo Por lo cual, la selección de la muestra, en esta investigación se obtuvo al analizar la población objetivo, que fueron los estudiantes de noveno y décimo semestre de ingeniería electrónica y de sistemas (300 estudiantes); Siendo el resultado de la muestra: 169 estudiantes Programa Semestre discriminados Ingeniería de sistemas de la siguiente Ingeniería electrónica Total Noveno 41 41 82 Décimo 43 44 87 Total 84 85 169 Tabla 1: Población objetivo manera: 5. ANÁLISIS E INTERPRETACIÓN DE RESULTADOS. Teniendo en cuenta, que este proyecto está destinado a facilitar el proceso enseñanzaaprendizaje de las redes neuronales, materia cursada en los grados 9 y 10 de ingeniería electrónica y de sistemas, hemos considerado como objeto de nuestra encuesta precisamente a estos estudiantes, ya que de sus verdaderas necesidades depende la implementación satisfactoria de nuestra solución (Entrenador RNA). Por ello, los interrogamos sobres sus conocimientos acerca de las RNA y descubrimos que estos son muy escasos (solo el 17.16% conoce sobre aplicaciones que utilicen esta tecnología). El tema esta tildado erróneamente de complicado y de accesible solo para unos cuantos. Sin embargo, La mayoría (84,62%) sabe que la universidad cuenta con un laboratorio especializado en el área de robótica e inteligencia artificial. Pero, solo el 37,28 conoce sobre los proyectos que se están realizando sobre este tema en la actualidad. Además percibimos la necesidad, que tienen de herramientas físicas, como nuestro entrenador, que les permita palpar los conocimientos teóricos adquiridos en las aulas de clase (el 98,82% dijo necesitar una herramienta física para practicar los conceptos de R.N.A.). Contradictoriamente, el 100% piensa, que la IA será necesaria en un futuro no muy lejano y ven en ella un método para realizarse profesionalmente, por lo cual, desean profundizar sus conocimientos sobre estos temas. 5.1 TABULACIÓN DE LAS ENCUESTAS A continuación se muestra el gráficamente el resultado de la encuesta practicada a los estudiantes de noveno y décimo semestre de los programas de ingeniería mecánica y electrónica. 5.1.1 NOVENO SEMESTRE DE INGENIERÍA DE SISTEMAS 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 1.- ¿Conoce usted alguna herram ienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 7 17% No Si 34 83% 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 12 29% No Si 29 71% 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? 2 5% No Si 39 95% 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 4.- ¿Ha m anejado alguna herram ienta softw are o hardw are en el laboratorio de Inteligencia Artificial y robótica? 8 20% No Si 33 80% 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? 5.- ¿Sabe usted si actualm ente se están realizando, practicas con herramientas hardw are en el laboratorio de inteligencia artificial y robótica? 19 46% 22 54% No Si 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? 6.- ¿Cree usted que las herram ientas con las que cuenta el laboratorio facilita la com prensión de los conocim ientos vistos en el área de inteligencia artificial? 24 59% 17 41% No Si 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7.- ¿Esta inform ado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7 17% No Si 34 83% 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? 8.- ¿Piensa que la IA será indispensable para el hom bre en su vida diaria? 8 20% No Si 33 80% 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? 9.- ¿Para usted el conocer m as acerca de inteligencia artificial le es útil? 2 5% No Si 39 95% 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? 10.- ¿Ve usted en la inteligencia artificial una m anera para adquirir ingresos? 11 27% No Si 30 73% 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? 11.- ¿Es para usted necesaria la im plem entación de nuevas herram ientas hardw are para reforzar prácticam ente los conocim ientos aprendidos? 2 5% No Si 39 95% 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? 12.- ¿Le gustaría contar con una herram ienta hardw are que le perm ita observar m ejor el proceso de aprendizaje de las neuronas artificiales? 0 0% No Si 41 100% 5.1.2. DÉCIMO SEMESTRE DE INGENIERÍA DE SISTEMAS 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 1.- ¿Conoce usted alguna herram ienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 9 21% No Si 34 79% 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 10 23% No Si 33 77% 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? 0 0% No Si 43 100% 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 4.- ¿Ha manejado alguna herram ienta softw are o hardw are en el laboratorio de Inteligencia Artificial y robótica? 10 23% No Si 33 77% .5- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? 5.- ¿Sabe usted si actualm ente se están realizando, practicas con herram ientas hardw are en el laboratorio de inteligencia artificial y robótica? 21 49% 22 51% No Si 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? 6.- ¿Cree usted que las herram ientas con las que cuenta el laboratorio facilita la com prensión de los conocim ientos vistos en el área de inteligencia artificial? 17 40% 26 60% No Si 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7.- ¿Esta inform ado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 9 21% No Si 34 79% 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? 8.- ¿Piensa que la IA será indispensable para el hom bre en su vida diaria? 6 14% No Si 37 86% 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? 9.- ¿Para usted el conocer m as acerca de inteligencia artificial le es útil? 0 0% No Si 43 100% 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? 10.- ¿Ve usted en la inteligencia artificial una m anera para adquirir ingresos? 8 19% No Si 35 81% 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? 11.- ¿Es para usted necesaria la im plem entación de nuevas herram ientas hardw are para reforzar prácticam ente los conocim ientos aprendidos? 0 0% No Si 43 100% 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? 12.- ¿Le gustaría contar con una herram ienta hardw are que le perm ita observar m ejor el proceso de aprendizaje de las neuronas artificiales? 0 0% 1 2 43 100% 5.1.3. INGENIERÍA DE SISTEMAS NOVENO Y DÉCIMO SEMESTRE 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 1.- ¿Conoce usted alguna herram ienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 16 19% 1 2 68 81% 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 22 26% Si No 62 74% 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? 2 2% Si No 82 98% 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 4.- ¿Ha m anejado alguna herram ienta softw are o hardw are en el laboratorio de Inteligencia Artificial y robótica? 18 21% Si No 66 79% 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? 5.- ¿Sabe usted si actualm ente se están realizando, practicas con herram ientas hardw are en el laboratorio de inteligencia artificial y robótica? 44 52% 40 48% Si No 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? 6.- ¿Cree usted que las herram ientas con las que cuenta el laboratorio facilita la com prensión de los conocim ientos vistos en el área de inteligencia artificial? 34 40% Si 50 60% No 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7.- ¿Esta inform ado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 16 19% Si No 68 81% 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? 8.- ¿Piensa que la IA será indispensable para el hom bre en su vida diaria? 14 17% Si No 70 83% 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? 9.- ¿Para usted el conocer m as acerca de inteligencia artificial le es útil? 0 0% Si No 84 100% 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? 10.- ¿Ve usted en la inteligencia artificial una m anera para adquirir ingresos? 19 23% Si No 65 77% 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? 11.- ¿Es para usted necesaria la im plem entación de nuevas herram ientas hardw are para reforzar prácticam ente los conocim ientos aprendidos? 2 2% Si No 82 98% 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? 12.- ¿Le gustaría contar con una herram ienta hardw are que le perm ita observar m ejor el proceso de aprendizaje de las neuronas artificiales? 0 0% Si No 84 100% 5.1.4. NOVENO SEMESTRE INGENIERÍA ELECTRÓNICA 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 1.- ¿Conoce usted alguna herram ienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 6 15% No Si 35 85% 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 7 17% No Si 34 83% 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? 12 29% No Si 29 71% 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 4.- ¿Ha manejado alguna herram ienta softw are o hardw are en el laboratorio de Inteligencia Artificial y robótica? 6 15% No Si 35 85% 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? 5.- ¿Sabe usted si actualm ente se están realizando, practicas con herram ientas hardw are en el laboratorio de inteligencia artificial y robótica? 10 24% No Si 31 76% 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? 6.- ¿Cree usted que las herram ientas con las que cuenta el laboratorio facilita la com prensión de los conocim ientos vistos en el área de inteligencia artificial? 18 44% 23 56% No Si 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7.- ¿Esta inform ado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 3 7% No Si 38 93% 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? 8.- ¿Piensa que la IA será indispensable para el hom bre en su vida diaria? 3 7% No Si 38 93% 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? 9.- ¿Para usted el conocer m as acerca de inteligencia artificial le es útil? 0 0% No Si 41 100% 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? 10.- ¿Ve usted en la inteligencia artificial una m anera para adquirir ingresos? 2 5% No Si 39 95% 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? 11.- ¿Es para usted necesaria la im plem entación de nuevas herram ientas hardw are para reforzar prácticam ente los conocim ientos aprendidos? 1 2% No Si 40 98% 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? 12.- ¿Le gustaría contar con una herram ienta hardw are que le perm ita observar m ejor el proceso de aprendizaje de las neuronas artificiales? 0 0% 1 2 41 100% 5.1.5. DÉCIMO SEMESTRE INGENIERÍA ELECTRÓNICA 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 1.- ¿Conoce usted alguna herram ienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 7 16% No Si 37 84% 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 7 16% No Si 37 84% 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? 12 27% No Si 32 73% 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 4.- ¿Ha manejado alguna herram ienta softw are o hardw are en el laboratorio de Inteligencia Artificial y robótica? 9 20% No Si 35 80% 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? 5.- ¿Sabe usted si actualm ente se están realizando, practicas con herram ientas hardw are en el laboratorio de inteligencia artificial y robótica? 13 30% No Si 31 70% 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? 6.- ¿Cree usted que las herram ientas con las que cuenta el laboratorio facilita la com prensión de los conocim ientos vistos en el área de inteligencia artificial? 25 57% 19 43% No Si 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7.- ¿Esta inform ado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 6 14% No Si 38 86% 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? 8.- ¿Piensa que la IA será indispensable para el hom bre en su vida diaria? 1 2% No Si 43 98% 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? 9.- ¿Para usted el conocer m as acerca de inteligencia artificial le es útil? 0 0% No Si 44 100% 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? 10.- ¿Ve usted en la inteligencia artificial una m anera para adquirir ingresos? 4 9% No Si 40 91% 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? 11.- ¿Es para usted necesaria la im plem entación de nuevas herram ientas hardw are para reforzar prácticam ente los conocim ientos aprendidos? 3 7% No Si 41 93% 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? 12.- ¿Le gustaría contar con una herram ienta hardw are que le perm ita observar m ejor el proceso de aprendizaje de las neuronas artificiales? 2 5% 1 2 42 95% 5.1.6. INGENIERÍA ELECTRÓNICA NOVENO Y DÉCIMO SEMESTRE 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 1.- ¿Conoce usted alguna herram ienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 13 15% 1 2 72 85% 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 9 11% Si No 76 89% 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? 24 28% Si No 61 72% 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 15 18% Si No 70 82% 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? 5.- ¿Sabe usted si actualm ente se están realizando, practicas con herram ientas hardw are en el laboratorio de inteligencia artificial y robótica? 23 27% Si No 62 73% 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? 6.- ¿Cree usted que las herram ientas con las que cuenta el laboratorio facilita la com prensión de los conocim ientos vistos en el área de inteligencia artificial? 37 44% 48 56% Si No 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7.- ¿Esta inform ado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 9 11% Si No 76 89% 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? 8.- ¿Piensa que la IA será indispensable para el hom bre en su vida diaria? 4 5% Si No 81 95% 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? 9.- ¿Para usted el conocer m as acerca de inteligencia artificial le es útil? 0 0% Si No 85 100% 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? 10.- ¿Ve usted en la inteligencia artificial una m anera para adquirir ingresos? 6 7% Si No 79 93% 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? 11.- ¿Es para usted necesaria la im plem entación de nuevas herram ientas hardw are para reforzar prácticam ente los conocim ientos aprendidos? 4 5% Si No 81 95% 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? 12.- ¿Le gustaría contar con una herram ienta hardw are que le perm ita observar m ejor el proceso de aprendizaje de las neuronas artificiales? 2 2% Si No 83 98% 5.1.7. INGENIERÍA DE SISTEMAS E INGENIERÍA ELECTRÓNICA 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 1.- ¿Conoce usted alguna herram ienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? 29 17% Si No 140 83% 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? 18,34 12% Si No 138 88% 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? 26 15% Si No 143 85% 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? 4.- ¿Ha m anejado alguna herram ienta softw are o hardw are en el laboratorio de Inteligencia Artificial y robótica? 33 20% Si No 136 80% 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? 5.- ¿Sabe usted si actualm ente se están realizando, practicas con herram ientas hardw are en el laboratorio de inteligencia artificial y robótica? 63 37% 106 63% Si No 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? 6.- ¿Cree usted que las herram ientas con las que cuenta el laboratorio facilita la com prensión de los conocim ientos vistos en el área de inteligencia artificial? 71 42% Si 98 58% No 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 7.- ¿Esta inform ado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? 25 15% Si No 144 85% 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? 8.- ¿Piensa que la IA será indispensable para el hom bre en su vida diaria? 18 11% Si No 151 89% 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? 9.- ¿Para usted el conocer m as acerca de inteligencia artificial le es útil? 0 0% Si No 169 100% 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? 10.- ¿Ve usted en la inteligencia artificial una m anera para adquirir ingresos? 25 15% Si No 144 85% 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? 11.- ¿Es para usted necesaria la im plem entación de nuevas herram ientas hardw are para reforzar prácticamente los conocim ientos aprendidos? 6 4% Si No 163 96% 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? 12.- ¿Le gustaría contar con una herram ienta hardw are que le perm ita observar m ejor el proceso de aprendizaje de las neuronas artificiales? 2 1% Si No 167 99% Tabulación de la encuesta ver Anexo 7. Ficha técnica de la encuesta ver anexo 8. 5.2 ANÁLISIS E INTERPRETACIÓN DE LOS RESULTADOS DE LA ENTREVISTA Con el propósito de conocer mas a fondo la situación de las redes neuronales artificiales en nuestra universidad y habiendo ya conocido la perspectiva de los estudiantes nos ha parecido necesario acudir a las autoridades en el tema, existentes en la universidad. Para esto se redacto una entrevista tocante a los temas de redes neuronales y se valoro la opinión de Richard Aroca, profesor involucrado con el manejo del laboratorio de Inteligencia artificial y robótica. Una vez realizada la ronda de entrevistas se pudo apreciar situaciones interesantes relacionadas con el entorno de nuestro proyecto. El primero de los hallazgos, fue que debido a la naturaleza de los temas y la cantidad de conceptos que se relacionan con la IA, el desarrollo a fondo de los mismos en un semestre es casi imposible por lo cual, se toman los temas de manera general, con el fin de que el estudiante pueda interesarse y continuar estudios independientes, adicional a esto se hace imposible la realización de practicas en hardware en cuanto a la parte de redes neuronales, el laboratorio solo cuenta con una aplicación que permite la administración de sistemas expertos. También se descubrió que la universidad no esta al tanto de los estándares actuales en cuanto a redes neuronales (no esta vinculada a ninguna organización dedicada a la investigación y/o desarrollo de RNA), lo que se manifiesta en el desfase de los conocimientos manejados en la universidad con respecto al desarrollo que estas redes han tenido en la actualidad. De igual manera, se descubrió que los estudiantes se muestran apáticos con respecto a los temas, por lo cual se ha tenido que idear estrategias para incentivar a la investigación y desarrollo de nuevos proyectos afines a RNA que conlleven a un nuevo nivel educacional en el alma mater. Finalmente, se evidenció, al igual que en las encuestas realizadas a los estudiantes, la necesidad de un entrenador de redes neuronales, incluso los docentes a cargo de esta materia aprueban la realización del mismo. Libreto de entrevista Ver Anexo 10. 6. PROPUESTA 6.1. SOLUCIÓN La solución es el diseño, desarrollo e implementación, de un entrenador de redes neuronales; Para la sala de inteligencia artificial y robótica de la Universidad Autónoma Del Caribe. 6.1.1. ALTERNATIVAS DE SOLUCIÓN. Al analizar el entorno del sistema a desarrollar y al aumentar el cuerpo de conocimientos; necesarios para la elaboración de este proyecto. Se encontraron varias alternativas que podrían solucionar la situación problema, que es objeto de estudio en esta investigación. Estas serán enunciadas a continuación: Solución 1 Solución 2 Adquisición, del módulo (Neural La solución es el diseño, desarrollo e Network Toolbox). Perteneciente al implementación, de un entrenador de software. redes neuronales; Para la sala de inteligencia artificial y robótica de la Universidad Autónoma Del Caribe. Tabla 2: Alternativas de solución 6.1.2. ANÁLISIS COSTO BENEFICIO Luego formular las posibles soluciones, Se procedió a realizar un análisis sobre estas; El cual, arrojó los siguientes resultados. La adquisición del modulo “Neural Network Toolbox” que es anexado a Matlab91, era viable. Debido a que la universidad cuenta con la licencia de Matlab (este esta altamente difundido entre los estudiantes, quienes están familiarizados con su funcionamiento y programación). Sin embargo, el modulo es costoso (alrededor de 900 dólares). Además de esto, el problema no sería complemente resuelto, puesto que la simulación del comportamiento neuronal seguiría siendo software y la parte hardware continuaría sin implementar, que es el objetivo central del proyecto. Por ello, se opto por encargar la elaboración del circuito entrenador a la empresa “E&T SOLUTIONS LTDA”, especializada en circuitos electrónicos (el costo era mucho menor que el módulo de Matlab. Alrededor de 202 dólares) 92 . Tanto el diseño del circuito entrenador, como la elaboración de los códigos neuronales serian responsabilidad de los integrantes del proyecto. 91 “MATLAB es la abreviatura de Matrix Laboratory (laboratorio de matrices). Es un programa de análisis numérico creado por The MathWorks en 1984. Está disponible para las plataformas Unix, Windows y Mac OS X. Se pueden ampliar sus capacidades con Toolboxes, algunas de ellas están destinadas al procesado digital de señal, adquisición de datos, economía, inteligencia artificial, lógica difusa... También cuenta con otras herramientas como Simulink, que sirve para simular sistemas. Es un software muy usado en universidades, centros de investigación y por ingenieros. En los últimos años ha incluido muchas más capacidades, como la de programar directamente procesadores digitales de señal, crear código VHDL y otras.” Tomado de www.Wikipedia.Com. 16 de octubre de 2007. 92 Tasa representativa del mercado para el dólar: $1978,97 pesos. Tomado del Periódico el Tiempo (Colombia). 16 de octubre de 2007. 6.1.2.1. TABLA DE COMPARACIÓN ENTRE LAS DOS SOLUCIONES Características Contiene una interfaz gráfica de usuario Permite el entrenamiento de neuronas Implementación de varias Topologías (Perceptron, Backpropagation, Hopfield) Genera estadísticas sobre el proceso de Entrenamiento y ejecución Permite el diseño de redes Neuronales Permite trabajar con distintas funciones de transferencia Soporta redes multícapa Permite el reconocimiento de patrones Neural Network Entrenador de Redes Toolbox. Extend of Neuronales Matlab Artificiales Permite la creación y posterior ejecución física de una red neuronal Precio en el mercado 900 dólares 202 dólares93. Tabla 3: Comparación de las soluciones 93 Tasa representativa del mercado para el dólar: $1978,97 pesos. Tomado del Periódico el Tiempo (Colombia). 16 de octubre de 2007. 6.1.3. DESCRIPCIÓN DE LA SOLUCIÓN El entrenador de redes neuronales para el laboratorio de inteligencia artificial y robótica consta de dos componentes principales: ♦ Hardware ♦ Software El componente hardware esta básicamente conformado por una placa base la cual esta dividida en cuatro módulos principales: ♦ Modulo De Acoplamiento Neuronal FIGURA 18: MODULO DE ACOPLAMIENTO NEURONAL En este modulo se encuentran los sockets donde serán acopladas las neuronas (microcontroladores pic16f84) que harán parte de la red, a su vez en este modulo se encontraran los receptores de entrada (Interruptores) y los receptores encargados de mostrar al estudiante las salidas de la red (Leds). En el se encontrará un switch que permitirá colocar al entrenador en modo entrenamiento o en modo ejecución. ♦ Modulo De Quemado Puerto Serial PC FIGURA 19: MODULO DE QUEMADO En este modulo externo del sistema, se acoplaran los microcontroladores que simularan el funcionamiento de una neurona. Con el objetivo de escribir en ellos los códigos desarrollados en lenguaje ensamblador. ♦ Alimentación Eléctrica FIGURA 20: MODULO DE ALIMENTACIÓN ELÉCTRICA Deberá estar conectado a un adaptador de corriente de 5V que proveerá la electricidad necesaria para que el entrenador pueda funcionar. ♦ Módulo Alternativo De Entrada Y Salida FIGURA 21: MODULO ALTERNATIVO DE ENTRADA O SALIDA Es un modulo de respaldo que da la opción de agregar a el entrenador otras salidas y entradas diferentes a las por defecto. Con respecto a la parte software de la solución es necesario mencionar que esta no contara con una interfaz usuario-maquina, y que toda la programación se hará en lenguaje de bajo nivel (assembler). 6.2. REQUERIMIENTOS DEL SISTEMA Durante esta etapa se recopiló información que ayudó a la identificación de los puntos que se van a satisfacer mediante la realización de este proyecto, además se realiza una breve descripción de aquellos que intervienen en el problema tratado, y las diferentes alternativas que se pueden implementar para solucionarlos. Como resultado de esta investigación se pretende establecer los requerimientos de un nuevo sistema, además de los recursos necesarios para su implantación. 6.2.1. DEFINICIÓN DE REQUERIMIENTOS • Deberá realizarse el entrenador para el PIC 16f84 • El sistema (entrenador) deberá incluir un sistema de quemado, sea externa o internamente para el PIC 16f84. • Deberá ser capas de soportar diferentes tipos de topologías de red. (Al menos 3) • Contara con interruptores para proporcionar señales a la red (uno por cada PIC que soporte el entrenador) • Contara con LEDs para conocer las salidas de los microcontroladores (uno por cada PIC que soporte el entrenador) • Contara con el mismo número en señales que vengan fuera del entrenador • Deberá contar con una manera de repetir señales en el entrenador. • Contara con los elementos necesarios para el buen funcionamiento de lis microcontroladores. • Los PIC deberán ser colocados o instalados manualmente en el entrenador • El entrenador no tendrá conexiones entre los distintos elementos (ej: PICs con interruptores), sino contara con orificios al lado de los elementos, para conectarse por medio de cables de cobres delgado. • Los PICs Deberán tener los puertos de entrada/salida disponibles para establecer conexiones y deshacerlas manualmente. • Los LEDs Deberán tener conexiones disponibles para establecer conexiones y deshacerlas manualmente. • Los interruptores Deberán tener conexiones disponibles para establecer conexiones y deshacerlas manualmente. 6.2.2. REQUERIMIENTOS FUNCIONALES ♦ Se deberán acoplar los microcontroladores necesarios para la implementación de la red. ♦ Se deberán establecer cuales son los puertos de entrada y cual será el de salida para los microcontroladores. ♦ El entrenador debe mostrar si el proceso de entrenamiento es activo o inactivo. ♦ Cada neurona tendrá varias entradas pero una sola salida. ♦ Cada neurona tendrá como máximo once entradas. ♦ Las entradas pueden estar dadas por interruptores o señales externas. ♦ La salidas deberán ser vistas en los LEDs. ♦ Las entradas y las salidas de la red deben ser solo ceros y unos. ♦ La red debe pasar por una etapa de aprendizaje y una de ejecución. ♦ Se deberán establecer las conexiones entre los PICs, interruptores y LEDs. ♦ Las entradas o salidas se acoplaran a repetidores en caso que sea necesario. 6.2.3. REQUERIMIENTOS NO FUNCIONALES ♦ El entrenador deberá ser realizado para el PIC 16f84. ♦ El entrenador contara con repetidores de señales en diferentes lados del entrenador. ♦ El entrenador contara con los elementos necesarios para el buen funcionamiento de los microcontroladores. ♦ El entrenador contara con ranuras para la colocación y el desprendimiento de estas manualmente. ♦ El entrenador no tendrá conexiones entre los distintos elementos, sino contara con orificios al lado de los elementos, para conectarse por medio de cables de cobres delgados. ♦ Los PICs Deberán tener los puertos de entrada/salida disponibles para establecer conexiones y deshacerlas manualmente. ♦ En el entrenador se permitirá como máximo el acoplamiento de doce neuronas a la vez. ♦ El entrenador permitirá simular como mínimo 3 topologías Perceptron, Hopfield y Backpropagation. ♦ La aplicación que será quemada en los PICs (neuronas), deberá programarse en lenguaje ensamblador. ♦ El entrenador no contará con una interfaz grafica de usuario. ♦ EL circuito entrenador tendrá 12 LEDs como mínimo para mostrar a sus usuarios las salidas de la red. ♦ EL circuito entrenador tendrá 12 interruptores como mínimo para dar entradas a la red. ♦ El entrenador, solo poseerá una única unidad de memoria permanente. Disponible en los PICs. ♦ EL circuito entrenador tendrá un modulo de quemado externo o interno. ♦ Será necesario un software para controlar el “modulo de quemado”. ♦ El software para el quemado de los PICs, será el proporcionado por la casa productora de los mismos. ♦ El software para el quemado de pic`s, correrá solo bajo plataformas Windows. ♦ La entrada del modo de alimentación eléctrica, Solo soportará una entrada de 110 voltios. ♦ El modulo de quemado se comunicara con el PC, por medio del puerto paralelo Com. 6.2.4. ESPECIFICACIÓN DE REQUERIMIENTOS A continuación se detallara cada uno de los requerimientos del sistema 6.2.4.1 REQUERIMIENTOS FUNCIONALES ♦ Se deberán acoplar los microcontroladores necesarios para la implementación de la red: El usuario tendrá la elección de elegir cuantos PICs deberá escoger. Pero deberá acoplarlos al entrenador para el funcionamiento. ♦ Se deberán establecer cuales son los puertos de entrada y cual será el de salida para los microcontroladores: El usuario tendrá que elegir cuales de los diferentes puertos que tienen los PICs serán de entrada o de salida. ♦ El entrenador debe mostrar si el proceso de entrenamiento es activo o inactivo: El usuario elegirá si quiere conectar un LED del entrenador conectado con el interruptor como señal de que la red esta en modo de ejecución. ♦ Cada neurona tendrá varias entradas pero una sola salida: El usuario debe definir lógicamente un puerto de salida en cada PIC que desee utilizar. ♦ Cada neurona tendrá como máximo once entradas: El numero de puertos con que cuenta el PIC 16f84 son de 13 y el usuario elegirá según su necesidad el numero de puertos que necesite como entradas, pero debe elegir máximo 11, debido a que un puerto es empleado para la salida y otro para indicarle al PIC si esta en modo de entrenamiento o de ejecución. ♦ Las entradas pueden estar dadas por interruptores o señales externas: Lo más común es que las entradas a la red estén dadas por los interruptores, pero si es necesario utilizar señales externas que sean escalonadas podrá utilizarlas. ♦ Las salidas deberán ser vistas en los LEDs: Es necesario conocer la salida de la red y la manera de conocerla estraves de los LEDs. ♦ Las entradas y las salidas de la red deben ser solo ceros y unos: El microcontrolador 16f84 solo cuenta con instrucciones para la manipulación y operación con números binarios. Debido a esto las únicas señales que puede mandar y recibir son bits. Si es requerido para aprendizajes con números decimales o diferentes señales, deberán convertir las entradas en bits y mandarlas en serie a los PICs y estos a su vez mandaran señales de bits y será necesario un convertidor de señal. ♦ La red debe pasar por una etapa de aprendizaje y una de ejecución: Si no se conocen los pesos para que la red reconozca los patrones correctamente. Es necesario un proceso de aprendizaje o de ajuste de pesos. ♦ Se deberán establecer las conexiones entre los PICs, interruptores y LEDs: Si no se crean conexiones entre los interruptores y los PICs la red no resolverán problemas y si no hay conexiones con los LEDs no se conocerán las salidas. ♦ Las entradas o salidas se acoplaran a repetidores en caso que sea necesario: Debido que los PICs solo tiene una sola salida y se presentaran circunstancias donde es necesitara conectar esa salida con varias entradas en otras neuronas, es necesario la ayuda de repetidores de señales. 6.2.4.2. REQUERIMIENTOS NO FUNCIONALES ♦ El entrenador deberá ser realizado para el PIC 16f84. Cada microcontrolador cuenta con especificaciones distintas a otras, como lo son las ubicaciones de los cristales de cuarzo, potencia del cristal de cuarzo, numero de puertos, etc. Por esta causa son pocos o nulos los PICs que trabajan con las mismas especificaciones. ♦ El entrenador contara con repetidores de señales en diferentes lados del entrenador. Los repetidores corresponden una ayuda necesaria cuando se debe conectar una salida con varias entradas en otras neuronas y en otras ocasiones. Por eso son requeridos los repetidores y se colocaran a los lados para una mayor organización. ♦ El entrenador contara con los elementos necesarios para el buen funcionamiento de los microcontroladores. Los microcontroladores necesitan de elementos externos como cristales de cuarzo, alimentación de corriente, resistencias para el buen funcionamiento así mismo como para interruptores y LEDs. ♦ El entrenador contara con ranuras para la colocación y el desprendimiento de estas manualmente. Los PICs no deberán ser fijos a la tarjeta, puesto que las redes no siempre necesitarán del mismo número de PICs. ♦ El entrenador no tendrá conexiones entre los distintos elementos, sino contara con orificios al lado de los elementos, para conectarse por medio de cables de cobres delgados. Así como tampoco se necesitan los mismos números de PICs, así tampoco se necesitan el mismo número de conexiones para formar una red con los diferentes PICs. ♦ Los PICs Deberán tener los puertos de entrada/salida disponibles para establecer conexiones y deshacerlas manualmente. Debido a que los usuarios deberán establecer y deshacer conexiones, utilizando los puertos de los PIC, el entrenador deberá disponer estos puertos solo para establecer conexiones a través de cables de cobre. ♦ En el entrenador se permitirá como máximo el acoplamiento de doce neuronas a la vez. El entrenador no deberá ser demasiado grande y ni demasiado pequeño. Por esta razón se escogieron doce PICs. ♦ El entrenador permitirá simular como mínimo 3 topologías Perceptron, Hopfield y Backpropagation. El entrenador de redes neuronales estará en la capacidad de soportar estas tres redes, a causa que son las más frecuentemente utilizadas. ♦ La aplicación que será quemada en los PICs (neuronas), deberá programarse en lenguaje ensamblador. Esto es debido, a que los recursos de los PICs son limitados y no están en la capacidad de almacenar programas de alto nivel. ♦ El entrenador no contará con una interfaz grafica de usuario. El entrenador de redes neuronales esta orientado hacia la parte hardware, mas que la parte software. ♦ EL circuito entrenador tendrá 12 LEDs como mínimo para mostrar a sus usuarios las salidas de la red. Puesto que, en el entrenador solo se podrán acoplar 12 microcontroladores, es necesaria como mínimo una salida por cada microcontrolador que soporta el entrenador. ♦ EL circuito entrenador tendrá 12 interruptores como mínimo para dar entradas a la red. Puesto que, en el entrenador solo se podrán acoplar 12 microcontroladores, es necesario como mínimo un interruptor por casa microcontrolador que soporta el entrenador. ♦ El entrenador, solo poseerá una única unidad de memoria permanente, Disponible en los PICs. No es necesaria la implementación de otro tipo de memoria, ya que los PICs serán los encargados de realizar todos los cálculos de la red. ♦ EL circuito entrenador tendrá un módulo de quemado externo o interno. Para poder almacenar los códigos neuronales en el microcontrolador es necesario un hardware que sirva de puente entre el computador y el PIC. ♦ Será necesario un software para controlar el “modulo de quemado”. Como es sabido cualquier hardware necesita de un software que lo administre, en este caso el encargado será “MPASAM”. ♦ El software para el quemado de los PICs, será el proporcionado por la casa productora de los mismos. A raíz de la compatibilidad, es necesario contar con el sistema que nos proporciona la casa que desarrolla los PICs. ♦ El software para el quemado de pic`s, correrá solo bajo plataformas Windows. La mayoría de ordenadores con que cuenta la Universidad Autónoma Del Caribe operan bajo sistemas operativos Windows. ♦ La entrada del modo de alimentación eléctrica, Solo soportará una entrada de 5v voltios. A causa del microcontrolador que solo soporta esta capacidad de energía eléctrica. ♦ El modulo de quemado se comunicara con el PC, por medio del puerto paralelo LPT1. Debido a que el software que manipula el quemador de PICs, trabaja con el puerto com, se decidió implementarlo en el quemador de PIC. 6.2.5. NEGOCIACION DE REQUISITOS Requisito Se deberán acoplar los microcontroladores necesarios para la implementación de la red. Se deberán establecer cuales son los puertos de entrada y cual será el de salida para los microcontroladores. El entrenador debe mostrar si el proceso de entrenamiento es activo o inactivo. Prioridad Obligatorio Obligatorio Opcional Cada neurona tendrá varias entradas pero una sola salida. Obligatorio Cada neurona tendrá como máximo once entradas. Obligatorio Las entradas pueden estar dadas por interruptores o señales externas. Obligatorio La salidas deberán ser vistas en los LEDs. Obligatorio Las entradas y las salidas de la red deben ser solo ceros y unos. Obligatorio La red debe pasar por una etapa de aprendizaje y una de ejecución. Se deberán establecer las conexiones entre los PICs, interruptores y LEDs. Las entradas o salidas se acoplaran a repetidores en caso que sea necesario. El entrenador deberá ser realizado para el PIC 16f84. El entrenador contara con repetidores de señales en diferentes lados del entrenador. El entrenador contara con los elementos necesarios para el buen funcionamiento de los microcontroladores. El entrenador contara con ranuras para la colocación y el desprendimiento de estas manualmente. El entrenador no tendrá conexiones entre los distintos elementos, sino contara con orificios al lado de los elementos, para conectarse por Opcional Obligatorio Opcional Obligatorio Obligatorio Obligatorio Obligatorio Obligatorio medio de cables de cobres delgados. Los PICs Deberán tener los puertos de entrada/salida disponibles para establecer conexiones y deshacerlas manualmente. En el entrenador se permitirá como máximo el acoplamiento de doce neuronas a la vez. El entrenador permitirá simular como mínimo 3 topologías Perceptron, Hopfield y Backpropagation. La aplicación que será quemada en los PICs (neuronas), deberá programarse en lenguaje ensamblador. El entrenador no contará con una interfaz grafica de usuario. EL circuito entrenador tendrá 12 LEDs como mínimo para mostrar a sus usuarios las salidas de la red. EL circuito entrenador tendrá 12 interruptores como mínimo para dar entradas a la red. El entrenador, solo poseerá una única unidad de memoria permanente. Disponible en los PICs. Obligatorio Obligatorio Obligatorio Obligatorio Obligatorio Obligatorio Obligatorio Obligatorio EL circuito entrenador tendrá un modulo de quemado externo o interno. Obligatorio Será necesario un software para controlar el “modulo de quemado”. Obligatorio El software para el quemado de los PICs, será el proporcionado por la casa productora de los mismos. El software para el quemado de pic`s, correrá solo bajo plataformas Windows. La entrada del modo de alimentación eléctrica, Solo soportará una entrada de 110 voltios. El modulo de quemado se comunicara con el PC, por medio del puerto paralalelo LPT1. Tabla 4: Negociación de requisitos Obligatorio Obligatorio Obligatorio Obligatorio 6.2.6. EVOLUCIÓN DEL SISTEMA De manera inicial la parte software del proyecto se especializara en las dos topologías ya mencionadas, sin embargo, de acuerdo con el interés de otros estudiantes se podrá aumentar el numero de topologías implementadas en el entrenador. Hasta nuestro aporte el entrenador tendrá como entrada Switches y de salida lets, otros estudiantes podrán adaptar nuevas clases de entradas y salidas diferentes, para lo cual se ha dejado establecido el modulo alternativo de entrada/salida. Otra importante evolución seria la elaboración de una interfaz grafica de usuario con la que se pueda interactuar y coordinar todos los procesos del entrenador. Construcción de otros entrenadores que se intercomuniquen entre si para expandir la red y realizar practicas en ellos. Se podrá incorporar otros sockets para agregar otras neuronas a la red, con el fin de hacer combinaciones entre las diferentes topologías existentes. 6.2.7. MODELOS DEL SISTEMA. 6.2.7.1 ESQUEMA ELECTRÓNICO DEL CIRCUITO ENTRENADOR Entrenador RNA Modulo de Alimentación ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( ) + + + + + + + + + + + + + + + + Socket Salidas (leds) leds) ( )( )( )( )( )( )( )( ) ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( ) + + + + + + + + + + + + + + + + + Entradas de la red (Interruptores) Interruptores) + + Modulo alternativo de entradas o salidas FIGURA 22: CIRCUITO ENTRENADOR. VISTA SUPERIOR + + + + + FIGURA 22: CIRCUITO ENTRENADOR. VISTA INFERIOR 6.2.7.2. CONEXIONES ENTRE MICROCONTROLADORES Sw: Modo Ejecución/Modo Entrenamiento Oscilador XT Alimentación FIGURA 23: MODELO ESQUEMÁTICO DE CONEXIÓN DEL MICROCONTROLADOR 16F84 6.2.7.3. ESQUEMA DE INTERACCIÓN HOMBRE-CIRCUITO ENTRENADOR FIGURA 24: ESQUEMA INTERACCIÓN HOMBRE-MAQUINA (E.R.N.A.) 6.2.7.4. ESQUEMA DE INTERACCIÓN HOMBRE-QUEMADOR DE PIC FIGURA 25: ESQUEMA INTERACCIÓN HOMBRE-MAQUINA (QUEMADOR.) 6.2.7.5. DIAGRAMAS DE CASOS DE USO Entrenador RNA Acoplar PIC Establecer Red Neuronal Estudiante Estudiante Colocar en modo Entrenamiento Colocar en modo Ejecución Proporcionar entradas a la Red Generar salida de la Red Las entradas; Pueden provenir de otra neurona, de un interruptor o cualquier otro receptor de información. Ejecución Neuronal Colocar en modo Ejecución Leer Entradas Estudiante Estudiante Generar Salidas de la Red 6.2.7.5.1. CASOS DE USO ESENCIALES Entrenador RNA Acoplar PIC Establecer Red Neuronal Estudiante Estudiante Colocar en modo Entrenamiento Colocar en modo Ejecución Proporcionar entradas a la Red Generar salida de la Red 6.2.7.6. MODELO CONCEPTUAL -Manipula -Contiene Estudiant Entrenador 1 Neuron 1 1 1 12 1 0..12 -Tiene 1 -Tiene 24 1 1..12 Salida Entrada -Tiene 0..12 0..12 -Puede ser Interna 0..12 -Puede ser Extern 6.2.7.7. DIAGRAMA DE SECUENCIA DEL SISTEMA 6.2.7.7.1. ENTRENADOR DE RNA 6.2.7.7.2. QUEMADO DE PIC :APLICACION :ESTUDIANTE :QUEMADOR Ejecutar() Aplicación Ejecutando() Configuración del PIC( ) Configuración Guardada() Código del PIC() Código Compilado() Quemar PIC () Código hexadecimal (C) PIC quemado () Programa quemado ( ) Almacenar Programa() Programa almacenado () :PIC 6.2.7.7.3. MODO ENTRENAMIENTO RNA 6.2.7.7.4. MODO EJECUCIÓN RNA 6.2.7.8. DIAGRAMAS DE ESTADOS 6.2.7.8.1. ENTRENADOR RNA 6.2.7.8.2. QUEMADOR 6.2.7.8.3. MODO DE EJECUCIÓN NEURONAL 6.2.7.8.4. MODO DE ENTRENAMIENTO NO SUPERVISADO NEURONAL 6.2.7.8.5. MODO DE ENTRENAMIENTO SUPERVISADO NEURONAL 1 Esperar Modo Entrenamiento 2 Entrenamiento (true) 3 Generar Salida de la Red Salida (Y) Calcular Error Modificar Pesos y umbral (Error) 4 5 Modificar Umbral Modificar Peso Pesos Modificados Umbral Modificado 6.2.7.9. GLOSARIO Acoplar PIC Consiste en insertar físicamente un microcontrolador 16f84 en una de las 12 ranuras con las que cuenta el Circuito Entrenador. (Ver figura 17). Calcular Error Este se halla, para conocer en que porcentaje difiere la salida de la red, de la salida esperada por el usuario. Código hexadecimal Código en base 16. Este sistema numérico se utiliza como una forma abreviada para reconocer números binarios (Los números binarios, son el principio fundamental en que se basan los computadores digitales. Todo lo que ingresa o sale de un computador se convierte en: 1 Voltaje alto y en 0 voltaje bajo). Esperar modo de ejecución El entrenador siempre estará pendiente del Switch que le indicara si debe trabajar en este modo (Ver figura 18). Esperar modo entrenamiento El entrenador siempre estará pendiente del Switch que le indicara si debe trabajar en este modo (Ver figura 18). Establecer Red Neuronal Es el proceso, mediante el cual se realizan las conexiones físicas entre las distintas neuronas (este enlace entre microcontroladores, se hará por medio de cables de cobre). Dependiendo de la topología a implementar. Generar Salidas De La Red Son los resultados que arroja la red neuronal. Este depende de la topología; Pero, básicamente son señales eléctricas mostradas a los usuarios por medio de los Leds. Leer entradas Las neuronas (microcontroladores) estarán siempre a la espera de las entradas a procesar. Estas pueden, provenir del medio o de la misma red neuronal. Leer estados El circuito entrenador, estará constantemente atento del estado del Switch (Ver figura 17) que le indicará en cual de los dos modos debe funcionar; Si en modo entrenamiento o en modo ejecución (Ver modo entrenamiento y modo ejecución). Modificar pesos y umbrales Los pesos y umbrales se ajustan para tratar de minimizar el error, en las salidas de la red. Modo Ejecución Uno de los dos estados de funcionamiento del Circuito Entrenador. En el, las neuronas reciben las entradas externas a la red provenientes de los pulsadores, las procesan y envían sus respuestas a los Leds. Modo Entrenamiento Uno de los dos estados de funcionamiento del Circuito Entrenador. En el, las neuronas se adiestran; Para que respondan satisfactoriamente a las necesidades del usuario (reconocimiento de patrones, compuertas lógicas, etc.). Puede usar dos modos de entrenamiento: supervisado o no supervisado. Proporcionar Entradas a la Red Las entradas a la red pueden ser introducidas por el usuario (Utilizando los interruptores) o pueden ser la misma salida de la red; Que las retroalimenta para mejorar su respuesta. 6.3. DISEÑO El circuito entrenador, será una tarjeta madre, que tiene como finalidad proporcionar un medio físico donde las neuronas puedan ensamblarse; Para formar entre ellas una topología de red neuronal. Estas topologías, se lograrán establecer por medio de la conexión de los distintos microcontroladores, a través de cables de cobre. La entramada de la red, dependerá de la topología a implementar. Como se ha dicho anteriormente las neuronas, serán simuladas en microcontroladores 16F84, con encapsulado “dual in line”. Que cuenta con 1Kb de memoria EEPROM (User Memory), 64 bytes de memoria RAM, 64 bytes de memoria EEPROM y 13 pines de entrada/salida (el puerto A cuenta con 5 pines y el B con 8 pines). Ver figura 23. Para el correcto funcionamiento de los microcontroladores, será necesario anexar en el Circuito Entrenador Osciladores XT94. Que serán conectados a los pines 15 y 16 del PIC. Ver figura 23. Solo uno de los pines del microcontrolador 16f84 se configurará como salida (Por lo cual, será necesario la utilización de repetidores de señal), esto con el propósito de simular el proceso de interconexión neuronal biológica (sinapsis). Es importante conocer; Que aunque, en este proyecto solo se desarrollarán dos topologías (Perceptrón y Kohonen), el entrenador estará en la capacidad de soportar cualquier topología detallada en el marco teórico; Solo dependiendo, de los recursos del PIC 16f84 (1Kb de memoria de usuario se representan en 1024 líneas de código). 94 Oscilador XT (cristal de cuarzo): Cristal ≤ 4MHz Por el Circuito Entrenador, se introducirían las entradas externas a la red (interruptores) y se visualizarían las salidas (lets) de la misma. El circuito, podrá utilizarse en dos modos distintos de trabajo: • Modo entrenamiento: Donde las entradas externas de la red, no son significativas; Se utiliza, para que las neuronas ajusten su vector de pesos. • Modo ejecución: En este las entradas externas de la red, son enviada a las neuronas, las cuales las procesan y arrojan un resultado, que dependiendo de su entrenamiento será o no será representativo. En el entrenador, se ajustará a uno de estos dos modos, por medio de un interruptor, que estará conectado al bit 0 del puerto A (Porta A,0) de todos los microcontroladores95. Indicándoles a estos (por medio de impulsos eléctricos) si deben “entrenarse” o “ejecutarse”. Ver figura 17. Para el almacenamiento de los códigos neuronales en los microcontroladores, será necesario el desarrollo de un modulo periférico para el quemado de los PIC´S. Este se comunicará con el computador utilizando el puerto paralelo. En el PC, será necesario la instalación del software gratuito “MPASAM” que se encargará de transformar el código ensamblador a hexadecimal y de administrar el proceso de quemado se encargará el software ”WINPIC800” de los programas, en el PIC 16f84. Ver figura 19. Para la alimentación eléctrica será necesario un adaptador de 5V. El entrenador tendrá conectado internamente a cada uno de los orificios donde 95 Pin 17 del microcontrolador se insertarán, el pin 5 de cada microcontrolador96, esta entrada de energía. Ver figura 23. Como nuestro proyecto no contará con una interfaz grafica y los códigos neuronales deberán ser realizados en código ensamblador; No será necesario, la utilización de ningún lenguaje de alto nivel. Para finalizar si las nuevas topologías a implementar, exigen una mayor capacidad de procesamiento, que la brindada por el microcontrolador 16f84. Este se podrá reemplazar por el PIC 16f28 gama alta sin ningún inconveniente, solo sería necesario configurarlo por medio de códigos para que funcione con un oscilador externo. 96 Pin de alimentación (5V) 6.4. IMPLEMENTACIÓN. Para la implementación de los códigos neuronales, se utilizo programación de bajo nivel. Más específicamente los códigos de lenguaje ensamblador, utilizados para la programación del microcontroladores 16f84 (instrucciones en lenguaje máquina). Como no se necesitó una interfaz grafica de usuario, no se diseñaron, ni se desarrollaron pantallazos para estos programas. Para, la compilación y posterior depuración de los errores de los Códigos Neuronales (al programas en bajo nivel la programación y depuración de errores es mas compleja, pero tienen la contrapartida que los códigos generados, son más rápidos y eficientes), se utilizo la herramienta software SIMUPIC 84, que permitió simular el comportamiento que asumiría el microcontrolador al ejecutar dichos códigos. FIGURA XX: SIMUPIC 84. MYCROSYSTEMS ENGINEERING. Los Códigos Neuronales, desarrollados fueron el código para las topologías Perceptrón y Kohonen. A continuación serán descritos. 6.4.1 CÓDIGO PERCEPTRÓN list p=16f84 status equ 03h portA equ 05h trisA equ 05h num1 equ 0Ch num2 equ 0dh sig1 equ 0eh sig2 equ 0fh numr equ 10h sigr equ 11h x equ 12h y equ 13h s equ 14h w1 equ 15h w2 equ 16h v equ 17h t equ 18h umbral equ 19h err equ 1ah tmp equ 1bh Switch equ 1ch sigerr equ 28h sigw1 equ 1dh sigw2 equ 1eh sigs equ 1fh sigumbral equ 20h sigtmp equ 21h pinentrenar equ 22h jinc equ 23h jdec equ 24h iinc equ 25h idec equ 26h sum equ 27h #define BANK1 bsf status,5 #define BANK0 bcf status,5 Org 0 BANK1 movlw 1Dh ;00011101 num en binario: Configura los puertos movwf trisA BANK0 ;******************************************* ;**///Coloca todos los signos positivos///** clrf sigw1 clrf sigw2 clrf sigs clrf sigumbral clrf sigtmp ;**///Coloca todos los signos positivos///** ;******************************************* ;********************************** ;**///Inicializa las variables///** bcf portA,4 movlw 01h movwf w1 movwf w2 movwf v movlw 03h movwf t clrf umbral ;t = 0011 los primeros 4 valores ;**///Inicializa las variables///** ;********************************** movlw 00h movwf pinentrenar ;***************************** ;**///Sub Main Perseptron///** Inicio btfss portA,0 ; si pinentrenar = 1 goto ejecucion goto entrenar ejecucion call entradas call salidared btfss portA,4 ; si pin terminar = 1 se sale goto inicio goto FIN ;***************************** ;**///Etapa Entrenamiento///** entrenar clrf sum clrf iinc movlw 02h movwf idec clrf Switch ;Se queda en 0 si esta entrenada la red clrf jinc movlw 02h movwf dec sicloi1 sicloj1 btfss jinc,0; coloca los valores de x goto sicj0 goto sicj1 sicj0 bcf x,0 goto sici sicj1 bsf x,0 sici btfss iinc,0 goto sici0 goto sici1 sici0 bcf x,1 goto finsici sici1 bsf x,1 finsici call salidared movlw 01h movwf err movlw 3h subwf sum,0 ;sum-3 btfsc status,2 goto sict3 movlw 2h subwf sum,0 btfsc status,2 ;sum-2 goto sict2 movlw 1h subwf sum,0 ;sum-1 btfsc status,2 goto sict1 goto sict0 ;***************************** sict3 btfsc t,3 goto sict3err2 goto sict3err1 sict3err1 movlw 01 movwf sigerr clrw goto finsict sict3err2 clrf sigerr movlw 01 ;para el valor de la resta de T - Y goto finsict sict2 btfsc t,2 goto sict2err2 goto sict2err1 sict2err1 movlw 01 movwf sigerr clrw goto finsict sict2err2 clrf sigerr movlw 01;para el valor de la resta de T - Y goto finsict sict1 btfsc t,1 goto sict1err2 goto sict1err1 sict1err1 movlw 01 movwf sigerr clrw goto finsict sict1err2 clrf sigerr movlw 01;para el valor de la resta de T - Y goto finsict sict0 btfsc t,0 goto sict0err2 goto sict0err1 sict0err1 movlw 01 movwf sigerr clrw goto finsict sict0err2 clrf sigerr movlw 01;para el valor de la resta de T - Y finsict ;***************************** subwf y,0 btfsc status,2 goto finsicw ;***************************** movlw 01h movwf Switch movf err,0 movwf num2 movf sigerr,0 movwf sig2 btfsc goto sicw11 goto sicw2 sicw11 x,0 movf w1,0 movwf num1 movf sigw1,0 movwf sig1 call sumsig movf numr,0 movwf w1 movf sigr,0 movwf sigw1 sicw2 btfsc x,1 goto sicw21 goto sicumbral sicw21 movf w2,0 movwf num1 movf sigw2,0 movwf sig1 call sumsig movf numr,0 movwf w2 movf sigr,0 movwf sigw2 sicumbral movf umbral,0 ;modifica el umbral movwf num1 movf sigumbral,0 movwf sig1 btfsc sigerr,0 goto sicumbmas goto sicumbmenos sicumbmas movlw 00h goto sumumb sicumbmenos movlw 01h sumumb movwf sig2 call sumsig movf numr,0 movwf umbral movf sigr,0 movwf sigumbral finsicw incf sum,1 incf jinc,1 decfsz jdec,1 goto sicloj1 ;fin modifica el umbral incf iinc,1 decfsz idec,1 goto sicloi1 ;btfsc Switch,0 ;goto entrenar btfss portA,4 ; si pin terminar = 1 se sale goto inicio goto FIN ;**///Etapa Entrenamiento///** ;***************************** ;**///Sub Main Perseptron///** ;***************************** entradas clrf btfss portA,2 goto entx10 goto entx11 entx10 bcf x,0 goto entx2 entx11 bsf x,0 entx2 btfss portA,3 x goto entx20 goto entx21 entx20 bcf x,1 goto entx3 entx21 bsf x,1 entx3 return ;*************************** ;**///Función salidared///** salidared btfss x,0 goto sldsum11 goto sldsum12 sldsum11 clrw goto sldsum2 sldsum12 movf w1,0 sldsum2 movwf num1 btfss x,1 goto sldsum21 goto sldsum22 sldsum21 clrw goto sldsum3 sldsum22 movf w2,0 sldsum3 movwf num2 movf sigw1,0 movwf sig1 movf sigw2,0 movwf sig2 call sumsig movf numr,0 movwf s movwf num1 movf sigr,0 movwf sigs movwf sig1 movf umbral,0 movwf num2 movf sigumbral,0 movwf sig2 call Mayorque movwf y btfss goto sldy0 goto sldy1 y,0 sldy0 bcf portA,1 goto sldreturn sldy1 bsf portA,1 sldreturn return ;**/// End Función salidared///** ;*************************** ;************************** ;**--///Función Suma///--** sumsig movf sig2,0 subwf sig1,0 btfss status,2 goto sumdesigual goto sumigual sumigual movf num1,0 addwf num2,0 movwf numr movf sig1,0 movwf sigr return ;sig1-sig2 sumdesigual movlw 00h subwf num2,0 ;0 - num2 btfss status,2 ;si num2 es 0 salta goto num2noes0 movf sig1,0 movwf sigr movf num1,0 ;pasa sig1 a w y lo pasa a sigr ;pasa num1 a w y lo pasa a numr goto movnumr num2noes0 movf num2,0 subwf num1,0 ;num1 - num2 btfsc status,2 ;si el bitCarreo = 0 num1 es > num2 goto sigr0 btfss status,0 goto asigs2 goto asigs1 clrf sigr sigr0 goto resul asigs1 movf sig1,0 movwf sigr goto resul ;si el bitCarreo = 0 num1 es > num2 asigs2 resul movf sig2,0 movwf sigr btfss status,0 ;si el num1 >= num2 num2,0 ;sino se guarda num1 en w movf num1,0 ;entonces se guarda num2 en w btfss status,0 ;si el num1 >= num2 goto num1w goto num2w num2w movf goto btfsig btfsig goto subnum2 goto subnum1 subnum1 subwf num1,0 ;sino se resta num1- num2 goto movnumr subnum2 subwf num2,0 movnumr movwf numr ;entonces se resta num2 - num1 return ;**--///End Función Suma \\\--** ;************************** ;*************************** ;**-//Función Mayor que\\-** Mayorque movf sig2,0 subwf sig1,0 btfss status,2 ;sig1-sig2 goto Mayordesigual goto Mayorigual Mayorigual movf num2,0 subwf num1,0 ;num1 - num2 btfsc sig1,0 ;si sig1 = 0 goto iglmenos goto iglmas iglmas btfsc status,2 ;si num1 - num2 no es 0 retlw 00h btfsc status,0 retlw 01h movlw 0h subwf num2,0 ;num2 - 0h btfss status,2 ;si num2 - 0h es 0 retlw 00h retlw 01h btfsc status,0 ;si num1 - num2 es neg iglmenos ;si num1 - num2 es neg retlw 00h movlw 0h subwf num2,0 ;num2 - 0h btfss status,2 ;si num2 - 0h es 0 retlw 01h retlw 00h Mayordesigual btfsc sig1,0 retlw 00h retlw 01h ;si num1 - num2 es neg ;**-// End Función Mayor que\\-** ;*************************** FIN End 6.5 PRUEBAS. En el transcurso de la investigación y posterior desarrollo del entrenador, fue muy importante la retroalimentación y depuración de errores, fue así como el diseño del entrenador cambió varias veces, para ajustarse a las nuevas necesidades que encontramos al ahondar en la situación problema. Así mismo, los códigos neuronales, al ser desarrollados en lenguaje maquina y debido a la complejidad de este; fueron sometidos a pruebas constantes para obtener el mejor resultado en el menor número de líneas de código (solo contábamos con 1024 líneas de código). Al disminuir la vida útil de los microcontroladores con cada proceso de quemado, se opto por simular en el computador; Cada código neuronal hasta que se lograrán los resultados deseados; Es decir, que estos se ajustarán a las premisas de las dos topologías a implementar en este proyecto. Esta simulación, fue echa gracias a el programa SIMUPIC 84, donde se observo con detalle el comportamiento de los códigos y se monitoreo al máximo si la neurona (microcontrolador) lograba culminar con éxito su proceso de entrenamiento y posterior ejecución de lo aprendido en el anterior proceso. El cual, no siempre fue exitoso y fue necesario en muchas ocasiones rediseñar los códigos, hasta que se logró obtener neuronas inteligentes que se retroalimentaban y aprendían de sus errores, para luego dar una respuesta optima a los impulsos, que llegaban a ella de su entorno. 7. CONCLUSIONES A pesar de las dificultades encontradas en la realización de este proyecto; como, la falta de información veraz para el diseño de los códigos neuronales basados en la topología “Back Propagation” o las carencias del lenguaje ensamblador utilizado para la programación de los PIC 16f84 (Se debieron realizar procedimientos de sumas con números negativos, simular vectores y sus operaciones, comparación con números negativos, etc.); Se lograron los resultados propuestos al inicio de esta investigación. Así mismo, al profundizar los conocimientos sobre los distintos temas en que se basan este proyecto y al desarrollar la aplicación, pudimos percibir las diferencias entre las dos arquitecturas implementadas; Tanto en sus métodos de aprendizaje, como en las salidas de dichas redes. Estas topologías fueron escogidas debido a su popularidad entre las RNA, abarcan los dos tipos de aprendizaje (supervisado y no supervisado), sus distintas formas de ejecución e interacción entre las neuronas y su implementación en la actualidad. Fue un acierto, la selección de la arquitectura Perceptron, para su implementación, Debido a que históricamente fue la primera red neuronal que se implemento; Además, su sencillez frente a las demás topologías, facilita el aprendizaje de conceptos tales como pesos sinápticos y reglas de activación. Se vislumbro, que esta arquitectura a pesar de ser llamada una red neuronal, solo cuenta con una sola neurona (en este caso, para la implementación de las compuertas ADN y OR), ya que las entradas a la red son los interruptores del Circuito Entrenador (estos en los diagramas son las neuronas de la capa de entrada) por ello en el circuito entrenador no se percibe una red perceptron entre varios microcontroladores. En el caso de Hopfield, se pusieron en práctica conceptos aprendidos en algebra lineal, tales como la transpuesta de un vector, producto punto entre vectores y matrices y la suma entre una matriz A y la matriz identidad. Lo que facilito la asimilación del método de aprendizaje y ejecución de estas redes, basados primordialmente en estos conceptos. Por medio de esta arquitectura se pueden percibir la conexión entre varios microcontroladores e introducirnos en el reconocimiento de patrones. Como se fuera poco, el entrenador permitirá ensamblar las dos topologías mencionadas simultáneamente, percibiendo así las diferencias descritas con anterioridad. Para finalizar, al desarrollar el circuito entrenador y los códigos neuronales (almacenados en los PIC 16f84) los estudiantes de la Universidad Autónoma del Caribe tendrán un medio físico que les permitirá visualizar el funcionamiento de una RNA y podrán entramar cualquier topología, diseñar nuevos códigos y percibir la capacidad de aprendizaje de una red neuronal artificial. 8. BIBLIOGRAFÍA. • ANGULO, José Ma Usuategui. Microcontroladores PIC diseño práctico de sus aplicaciones. McGraw Hill. • DR. BLOWIN, Claude-B. La salud, enciclopedia médica familiar. Circulo de lectores. Pág. 89. Barcelona. 1982. • FEEDMAN, Alan. Diccionario de computación bilingüe. McGraw Hill. • http://es.tldp.org/Presentaciones/200304cursoglisa/redes_neuronales/curso-glisa-redes_neuronales.pdf Pagina Web vigente al 18 de marzo de 2007. • http://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel Pagina Web Pagina Web vigente al 25 de marzo de 2007. • http://es.wikipedia.org/wiki/Lenguaje_ensamblador vigente al 26 de marzo de 2007. • http://es.wikipedia.org/wiki/Microcontrolador. Pagina Web vigente al 26 de marzo de 2007. • http://es.wikipedia.org/wiki/Red_neuronal_artificial Pagina Web vigente al 18 de marzo de 2007. • http://jkharlos.wordpress.com/2007/09/03/redes-neuronales-artificiales. Pagina Web vigente al 18 de marzo de 2007. • http://logicalgenetics.com/assorted/recurrent-nns/feedforward-small.jpg Pagina Web vigente al 27 de mayo de 2007. • http://medmayor.cl/apuntes/apuntes/psico/aprendizaje.ppt Pagina Web vigente al 30 de marzo de 2007. • http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html. Pagina Web vigente al 12 de marzo de 2007. • http://ohm.utp.edu.co/paginas/docencia/neuronales/Capitulo1/RNBiolo gica.htm Pagina Web vigente al 18 de marzo de 2007. • http://perso.wanadoo.es/chyryes/tutoriales/pic6.htm. Pagina Web pagina Web vigente al 23 de octubre de 2007. • http://perso.wanadoo.es/chyryes/tutoriales/pic7.htm. vigente al 23 de octubre de 2007. • http://server-die.alc.upv.es/asignaturas/LSED/2002g03/Soft_Hard/herramientas_para_pic.pdf Pagina Web vigente al 03 de agosto de 2007. • http://supervisadaextraccionrecuperacioninformacion.iespana.es/worki ng/RedNeuronalArtificial.png. Pagina Web vigente al 18 de marzo de 2007. • http://www.alos.5u.com/indexpic877.htm Pagina Web vigente al 03 de agosto de 2007. • http://www.depi.itch.edu.mx/apacheco/lengs/ann/pagina2.gif Pagina Web vigente al 18 de marzo de 2007. • http://www.depi.itch.edu.mx/apacheco/lengs/ann/pagina3.gif Pagina Web vigente al 18 de marzo de 2007. • http://www.electan.com/catalog/kits-educativos-cebek-entrenadoreselectronica-c-320_315.html. Pagina Web vigente al 8 de octubre de 2007. • http://www.electronica.com.mx/neural/information/hopfield.html Pagina Web vigente al 18 de marzo de 2007. • http://www.electronica.com.mx/neural/information/perceptron.html Pagina Web vigente al 18 de marzo de 2007. • http://www.electronicaestudio.com/microcontrolador.htm Pagina Web vigente al 27 de marzo de 2007. • http://www.elprisma.com/apuntes/curso.asp?id=11846. Pagina Web vigente al 18 de marzo de 2007. • http://www.gestiopolis.com/recursos3/docs/rh/tecapren.htm Pagina Web vigente al 19 de Agosto de 2007. • http://www.iibce.edu.uy/uas/neuronas/#y Pagina Web vigente al 19 de Agosto de 2007. • http://www.iim.umich.mx/publica/bajar/BARRERA/Articulo%204.pdf Pagina Web vigente al 19 de Agosto de 2007. • http://www.ilustrados.com/publicaciones/EpylElpAZuyzPaNKYx.php, Pagina Web vigente al 19 de Agosto de 2007. • http://www.monografias.com/trabajos18/descripcion-pic/descripcionpic.shtml pagina Web vigente al 15 de mayo de 2007. • http://www.monografias.com/trabajos26/aprendizajedesarrollador/aprendizaje-desarrollador.shtml#conceppedag. Pagina Web vigente al 19 de Agosto de 2007. • http://www.monografias.com/trabajos38/redesneuronales/Image10688.gif. Pagina Web vigente al 17 de Marzo de 2007. • http://www.mstracey.btinternet.co.uk/pictutorial/picmain.htm pagina Web vigente al 23 de octubre de 2007. • http://www.redes-neuronales.netfirms.com/tutorial-redesneuronales/clasificacion-de-redes-neuronales-respecto-alaprendizaje.htm. Pagina Web vigente al 19 de Agosto de 2007. • http://www.redes-neuronales.netfirms.com/tutorial-redesneuronales/la-neurona-artificial-como-simil-de-la-neuronabiologica.htm Pagina Web vigente al 17 de Marzo de 2007. • http://www.superrobotica.com/images/S310130.JPG vigente al 19 de Agosto de 2007. Pagina Web • http://www.uta.cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.pdf Pagina Web vigente al 17 de Marzo de 2007. • NILSON, Nils. Inteligencia artificial una nueva síntesis. McGraw Hill. • ORTIZ, Alexander Luís Ocaña. Metodología del aprendizaje significativo problemico y desarrollador. Hacia una didáctica integrada. Editorial antillas. 2004. • QUESADA, Miguel. Metodología de la investigación. Mytis. • RATIONAL, Software. Ingeniería de requisitos. Circulo de lectores. • RUSSELS, Stuar. Inteligencia artificial un enfoque moderno. Pentice Hall. LISTA DE ANEXOS ANEXO 1: FICHA DEL PROYECTO ANEXO 2: PLANIFICACION DE LAS ACTIVIDADES ANEXO 3: CRONOGRAMA DE ACTIVIDADES ANEXO 4: POBLACIÓN OBJETIVO ANEXO 5: UBICACIÓN DELPROYECTO ANEXO 6: FORMATO DE ENCUESTA. ANEXO 7: TABULACIÓN DE LAS ENCUESTAS. ANEXO 8: FICHA TÉCNICA DE LA ENCUESTA ANEXO 9: FORMATO DE LA ENTREVISTA ANEXO 10: LIBRETO DE LA ENTREVISTA ANEXO 11: PRESUPUESTO. ANEXO 12: CUADRO COMPARATIVO NEURONAS ANEXO 13: FICHAS DE CONSULTA. ANEXO 14: FICHAS BIBLIOGRAFICAS. ANEXO 15: TABLAS Y GRAFICOS ANEXO No. 1: FICHA DEL PROYECTO TITULO Diseño, desarrollo e implementación de un entrenador de redes neuronales que reforzara los conocimientos vistos en el curso de inteligencia artificial. INVESTIGADORES Nombre Antonio José barros molinares Dirección Calle 3 No. 1A – 158 Puerto Colombia (Atlántico) Teléfono 3096125 Nombre José Luís Lobo Vásquez Dirección Calle 65 No. 27 – 24 Barranquilla (Atlántico) Teléfono 3650873 Nombre Laura Milena Zarache Vargas Dirección Transversal 14D No. 42 – 75 Soledad (Atlántico) Teléfono 316 3113460 – 3432487 PROFESIONALES DE APOYO DE LA INVESTIGACIÓN Director de Proyecto: ING. RICHARD AROCA ACOSTA. Profesión: INGENIERO DE SISTEMAS. Empresa: UNIVERSIDAD AUTONOMA DEL CARIBE. Coordinador del Proyecto: ING. ILMA BONILLA. Profesión: INGENIERO DE SISTEMAS. Empresa: UNIVERSIDAD AUTONOMA DEL CARIBE. Asesor Metodológico: MsC. CLAUDIA ZAPATA. Profesión: PROFESOR DE TIEMPO COMPLRETO (PTC) Empresa: UNIVERSIDAD AUTONOMA DEL CARIBE. Asesor de Técnico: ING. RICHARD AROCA ACOSTA. Profesión: INGENIERO DE SISTEMAS. Empresa: UNIVERSIDAD AUTONOMA DEL CARIBE. FECHA DE INICIACIÓN DEL PROYECTO La realización de este proyecto ha iniciado el mes de Octubre del año 2006. FECHA DE FINALIZACION DEL PROYECTO El presente proyecto se presentará a mediados del mes de Noviembre del año 2007, previo a la sustentación del mismo. AN EXO NO. 2: PLANIFICACION DE LAS ACTIVIDADES OBJETIVO: Identificar las actividades referentes a nuestro proyecto de manera secuencial para facilitar la ejecución y supervisión y retroalimentación de cada una de ellas. Ítems Actividades (Para el periodo Feb-jun 2007) Físico Humano Responsable Laboratorio, casa Estudiante Grupo Tiempo 1 Definición del problema 14 días 2 Redacción del alcance y objetivos 7dias Casa Estudiante Grupo 3 Especificación de los propósitos y motivaciones del proyecto. 7 días Casa Estudiante Grupo 4 Elaboración de la introducción 37 días Estudiante Grupo 5 Desarrollo del capitulo 1 63 días Estudiante Grupo 6 Elaboración del estado del arte 7 días Estudiante Grupo 7 Revisión bibliografíca 21 días Estudiante Grupo 8 Elaboración del marco conceptual y marco teórico 35 días Estudiante y asesor Grupo Computador, papel, lápiz Computador, papel, lápiz Computador, papel, lápiz Computador, papel, lápiz Computador, papel, lápiz 9 10 11 12 13 14 15 16 17 18 Desarrollo del capitulo 2: Diseño metodológico Elaboración de los formatos de las encuestas y entrevistas Selección de la población objetivo y calculo de la muestra Definición de instrumentos metodológicos: tipo de investigación, tipo de estudio, etc. Delimitación: técnica, de espacio y tiempo Desarrollo prueba piloto de la encuesta Desarrollo del capitulo 3: Análisis e interpretación de los resultados Desarrollo del capítulo 4: Propuesta Descripción y justificación de la solución Elaboración de los modelos del sistema Computador, papel, lápiz, casa Computador, papel, lápiz Computador, papel, lápiz, laboratorio Estudiante y asesor Estudiante y asesor 7 días Computador, papel, lápiz, Estudiante y asesor Grupo 7 días Computador, papel, lápiz Estudiante y asesor Grupo 7 días Fotocopias Estudiantes Grupo 7días Computador, papel, lápiz Estudiantes Grupo Estudiantes y asesor Grupo Estudiantes Grupo 35 días 7 días 7 días 139 días Facultad Estudiante Grupo Grupo Grupo 7 días Laboratorio, biblioteca 50 días Laboratorio, casa Estudiantes y asesor Grupo Estudiantes Grupo 19 Elaboración del glosario 14 días Casa, laboratorio 20 Ajustes del diseño 7 días Laboratorio 21 Construcción del prototipo 30 días casa Estudiantes y asesor Asesor y estudiantes Grupo Grupo 22 Realización de pruebas 21 días Laboratorio, casa Asesor, Estudiantes Grupo 23 Elaboración del documento con los capítulos 1,2,3 y 4 10 días Casa, laboratorio, computador, papel Estudiantes Grupo Ítems Actividades (Para el periodo jul-nov 2007) Tiempo Físico Casa, laboratorio, computador, papel, facultad Casa, laboratorio, computador, papel Casa, laboratorio, computador, papel Casa, laboratorio, computador, papel Laboratorio, computador. Humano Responsable Estudiantes y Asesor Grupo Estudiantes Grupo Estudiantes Grupo Estudiantes y Asesor Grupo Estudiantes Grupo 24 Corrección capítulos 1, 2, 3 y 4 4 meses 25 Diseño de los tres aplicativos 7 semanas 26 Desarrollo de los tres aplicativos 8 semanas 27 Corrección del prototipo 6 semanas 28 Desarrollo de las Pruebas finales 4 semanas 29 Entrega del documento Final (Monografía completa) 1 día Facultad Estudiantes Grupo 30 Entrega del software completo 1 día Facultad Estudiantes Grupo AN EXO NO. 3: CRONOGRAMA DE ACTIVIDADES Febrero Semanas ACTIVIDADES 1 Capitulo 0. Introducción Definición del problema Redacción de la identificación y descripción del proyecto Elaboración de la justificación del proyecto Especificación de las motivaciones y propósitos del proyecto Definición del alcance y los objetivos del proyecto Capitulo 1. Estado del arte Asesorías metodológicas Revisión bibliografíca Detección, selección y revisión de la bibliografía Definición del fundamento teórico y fundamento conceptual Descripción de los antecedentes científicos Asesorías metodológicas Capitulo 2. diseño metodológico Asesorías metodológicas Elaboración de formatos de las encuestas y entrevistas Definición del tipo de investigación y tipo de estudio Definición del método y técnicas de recolección de la información Selección del ámbito espacial y población objetivo Justificación estadística de la muestra 2 3 Marzo Semanas 4 1 2 3 Abril Semanas 4 1 2 3 Mayo Semanas 4 1 2 3 Junio Semanas 4 1 2 3 Agosto Semanas 4 1 2 3 Septiembre Semanas 4 1 2 3 4 Octubre Semanas 1 2 3 Noviembre Semanas 4 1 2 3 4 Febrero Semanas ACTIVIDADES 1 Validación previa del instrumento Desarrollo prueba piloto de la encuesta Asesorías metodológicas Aprendizaje de la herramienta Capitulo 3. Análisis e interpretación de resultados Asesorías metodológicas Elaboración de diagramas Realización del análisis Asesorías metodológicas Capitulo 4. Propuesta Asesorías metodológicas Descripción y justificación de la solución Definición de los objetivos de la solución Definición y especificación de los requerimientos Elaboración del modelo del sistema Elaboración del glosario Asesorías metodológicas Ajustes del diseño Construcción del prototipo Desarrollo de pruebas Entrega del avance del proyecto y el prototipo Corrección de los capítulos 1, 2, 3 y 4 Ajustes prototipo (hardware) Pruebas finales Entrega del documento fenal de la herramienta 2 3 Marzo Semanas 4 1 2 3 Abril Semanas 4 1 2 3 Mayo Semanas 4 1 2 3 Junio Semanas 4 1 2 3 Agosto Semanas 4 1 2 3 Septiembre Semanas 4 1 2 3 4 Octubre Semanas 1 2 3 Noviembre Semanas 4 1 2 3 4 ANEXO No. 4: POBLACIÓN OBJETIVO Programa Semestre Ingeniería de sistemas Ingeniería electrónica Total Noveno 108 78 186 Décimo 81 33 114 Total 189 111 300 ANEXO No. 5: UBICACIÓN DEL PROYECTO En el momento en que este en funcionamiento el sistema gestual, éste estará ubicado de manera estratégica en el laboratorio de robótica de la Universidad Autónoma del Caribe. Calle 90 Accesos Biblioteca Laboratorio de Robótica BLOQUE G Laboratorio de Computación Cafetería ANEXO No. 6: FORMATO DE ENCUESTA. UNIVERSIDAD AUTONOMA DEL CARIBE PROGRAMA DE INGENIERIA DE SISTEMAS ENCUESTA PARA LOS ESTUDIANTES DE LA UNIVERSIDAD AUTONOMA DEL CARIBE Población Objetivo Estudiantes de noveno y décimo semestre de ingeniería de sistemas y de ingeniería electrónica de la Universidad Autónoma del caribe que hayan cursado o estén cursando actualmente la asignatura Tecnología de sistemas II (Inteligencia artificial). Objetivo de la encuesta Conocer la opinión de las estudiantes acerca de las herramientas software y hardware que afianzan los conocimientos teóricos de las redes neuronales, en el área de IA. 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si ____ No___ ¿Cual? ________________________ 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si ____ No___ 3.- ¿Sabía usted que la universidad cuenta con un laboratorio de IA y robótica? Si ____ No___ 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si ____ No___ 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si ____ No___ 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si ____ No___ 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si ____ No___ 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si ____ No___ ¿Cual? ________________________ 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si ____ No___ 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si ____ No___ 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si ____ No___ 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si ____ No___ ANEXO No. 7: TABULACION DELAS ENCUESTAS. Cantidad % Noveno Semestre De Ingeniería De Sistemas 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si No 7 34 17,07 82,93 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si No 29 12 70,73 29,27 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? Si No 39 2 95,12 4,88 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si No 8 33 19,51 80,49 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si No 19 22 46,34 53,66 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si No 24 17 58,54 41,46 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si No 7 34 17,07 82,93 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si No 33 8 80,49 19,51 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si No 39 2 95,12 4,88 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si No 30 11 73,17 26,83 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si No 39 2 95,12 4,88 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si No 41 0 100 0 Décimo Semestre De Ingeniería De Sistemas 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si No 9 34 20,93 79,07 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si No 33 10 76,74 23,26 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? Si No 43 0 100,00 0,00 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si No 10 33 23,26 76,74 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si No 21 22 48,84 51,16 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si No 26 17 60,47 39,53 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si No 9 34 20,93 79,07 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si No 37 6 86,05 13,95 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si No 43 0 100,00 0,00 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si No 35 8 81,40 18,60 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si No 43 0 100,00 0,00 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si No 43 0 100,00 0,00 Ingeniería De Sistemas Noveno Y Décimo Semestre 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si No 16 68 19,05 80,95 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si No 62 22 73,81 26,19 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? Si No 82 2 97,62 2,38 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si No 18 66 21,43 78,57 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si No 40 44 47,62 52,38 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si No 50 34 59,52 40,48 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si No 16 68 19,05 80,95 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si No 70 14 83,33 16,67 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si No 84 0 91,00 9,00 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si No 65 19 77,38 22,62 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si No 82 2 97,62 2,38 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si No 84 0 100,00 0,00 Noveno Semestre Ingeniería Electrónica 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si No 6 35 14,63 85,37 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si No 34 7 82,93 17,07 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? Si No 29 12 70,73 29,27 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si No 6 35 14,63 85,37 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si No 10 31 24,39 75,61 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si No 23 18 56,10 43,90 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si No 3 38 7,32 92,68 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si No 38 3 92,68 7,32 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si No 41 0 100,00 0,00 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si No 39 2 95,12 4,88 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si No 40 1 97,56 2,44 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si No 41 0 100,00 0,00 Décimo Semestre Ingeniería Electrónica 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si No 7 37 15,91 84,09 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si No 42 2 84,09 15,91 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? Si No 32 12 72,73 27,27 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si No 9 35 20,45 79,55 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si No 13 31 29,55 70,45 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si No 25 19 56,82 43,18 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si No 6 38 13,64 86,36 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si No 43 1 97,73 2,27 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si No 44 0 100,00 0,00 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si No 40 4 90,91 9,09 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si No 41 3 93,18 6,82 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si No 42 2 95,45 4,55 Ingeniería Electrónica Noveno Y Décimo Semestre 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si No 13 72 15,29 84,71 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si No 76 9 89,41 10,59 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? Si No 61 24 71,76 28,24 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si No 15 70 17,65 82,35 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si No 23 62 27,06 72,94 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si No 9 76 10,59 89,41 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si No 81 4 95,29 4,71 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si No 85 0 100,00 0,00 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si No 7 34 17,07 82,93 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si No 79 6 92,94 7,06 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si No 81 4 95,29 4,71 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si No 83 2 97,65 2,35 Ingeniería De Sistemas e Ingeniería Electrónica 1.- ¿Conoce usted alguna herramienta de uso cotidiano que aplique conceptos de Inteligencia Artificial (IA)? Si No 29 140 17,16 82,84 2.- ¿Ha usted escuchado hablar de Redes Neuronales Artificiales? Si No 138 31 81,66 18,34 3.- ¿Sabia usted que la universidad cuenta con un laboratorio de IA y robótica? Si No 143 26 84,62 15,38 4.- ¿Ha manejado alguna herramienta software o hardware en el laboratorio de Inteligencia Artificial y robótica? Si No 33 136 19,53 80,47 5.- ¿Sabe usted si actualmente se están realizando, practicas con herramientas hardware en el laboratorio de inteligencia artificial y robótica? Si No 63 106 37,28 62,72 6.- ¿Cree usted que las herramientas con las que cuenta el laboratorio facilita la comprensión de los conocimientos vistos en el área de inteligencia artificial? Si No 98 71 57,99 42,01 7.- ¿Esta informado acerca de los proyectos de inteligencia artificial desarrollados en la universidad? Si No 25 144 14,79 85,21 8.- ¿Piensa que la IA será indispensable para el hombre en su vida diaria? Si No 151 18 89,35 10,65 9.- ¿Para usted el conocer mas acerca de inteligencia artificial le es útil? Si No 169 0 100,00 0,00 10.- ¿Ve usted en la inteligencia artificial una manera para adquirir ingresos? Si No 144 25 85,21 14,79 11.- ¿Es para usted necesaria la implementación de nuevas herramientas hardware para reforzar prácticamente los conocimientos aprendidos? Si No 163 6 96,45 3,55 12.- ¿Le gustaría contar con una herramienta hardware que le permita observar mejor el proceso de aprendizaje de las neuronas artificiales? Si 167 98,82 No 2 1,18 ANEXO No. 8: FICHA TECNICA DE LA ENCUESTA FICHA TECNICA DE LA ENCUESTA Población encuestada Facultades: Facultad de Ingenierías Programas encuestados: Ingeniería de Sistemas Electrónica Semestres cubiertos: Noveno y Décimo semestre Numero de encuestas realizadas 169 Total Encuestados: Ingeniería de Sistemas: 84 Ingeniería de Electrónica: 85 Noveno de Sistemas: 41 Noveno de Electrónica: 41 Total Encuestados Noveno: 82 Décimo de Sistemas: 43 Décimo de Electrónica: 42 Total Encuestados Décimo: 85 e Ingeniería ANEXO No. 9: FORMATO DE LA ENTREVISTA ENTREVISTA REALIZADA A LOS ESPERTOS EN IA DE LA UNIVERSIDAD AUTONOMA DEL CARIBE 1.- ¿Cuál es el proceso básico que utiliza el laboratorio de inteligencia artificial y robótica para enseñar lo referente a redes neuronales? 2.- ¿Qué datos utilizan o generan este proceso? 3.- Usted nos comentaba el otro día que existe un modulo de Matlab para simular redes neuronales ¿La universidad cuenta con el? 4.- ¿Cuál es el tiempo y espacio necesario para desarrollar estos temas? 5.- ¿Además del laboratorio de inteligencia artificial y robótica existe otro lugar donde se pueda enseñar y poner en práctica todo lo referente a redes neuronales? 6.- ¿Cuenta la universidad con el personal idóneo para el manejo de estos temas? Es decir los temas de inteligencia artificial 7.- ¿Manejan estándares específicos que permitan conocer los avances alcanzados en el desarrollo de estos temas?; ¿Estándares en cuanto a aplicativos?; ¿En cuanto a la metodología?; ¿Alguna referencia? 8.- ¿Considera usted que seria beneficioso contar con un instrumento que auxilie en el proceso de enseñanza-aprendizaje de redes neuronales? 9.- ¿Las actividades trazadas en la sala de inteligencia artificial para la enseñanza de redes neuronales son culminadas a tiempo con el procedimiento que se utiliza actualmente? 10.- ¿Se satisfacen los requerimientos básicos establecidos por la universidad en la enseñanza-aprendizaje de redes neuronales? ¿O esto no esta considerado en el plan de estudio? 11.- ¿Los estudiantes son concientes de los avances que se están presentando a nivel de sistemas y corresponden en el aprendizaje de estos? 12.- Bajo ese orden de ideas ¿Cree usted que el entrenador que estamos postulando serviría de apoyo a ese proceso? ANEXO No. 10: LIBRETO DE LA ENTREVISTA ENTREVISTA REALIZADA AL ING. RICHARD AROCA Pregunta 1. ¿Cuál es el proceso básico que utiliza el laboratorio de inteligencia artificial y robótica para enseñar lo referente a redes neuronales? Básicamente después que se da la teoría se desarrollan algunos tipos de aplicaciones pero en lenguajes tradicionales como Visual Basic, pero se trabaja nada mas la parte básica. Por otro lado se trabaja una herramienta especializada para sistemas expertos llamada CRIP, pero desarrollar teorías neuronales como tal es bastante complicado. Pregunta 2. ¿Qué datos utilizan o generan este proceso? Cuando se utilizan las redes neuronales se le meten patrones básicos; valores binario, y los resultados se dan también en binario, simulado en los lenguajes de alto nivel como los que te estaba explicando por ejemplo Visual Basic. Pregunta 3. Usted nos comentaba el otro día que existe un modulo de Matlab para simular redes neuronales ¿La universidad cuenta con el? No. Ese modulo no se ha solicitado, entiendo que es muy costoso, por lo que habría que hacer todo un proyecto para justificar su compra. Pregunta 4. ¿Cuál es el tiempo y espacio necesario para desarrollar estos temas? Lo que sucede es que tecnología de sistemas II así como esta enfocada actualmente en noveno semestre es una recopilación de todo lo que se debería dar en inteligencia artificial, entonces son muchos temas, debido a esto lo que se hace es simplemente hacer un tratamiento básico para que el estudiante conozca la herramienta como tal y motivarle para que el después pueda ahondar un poco mas al respecto de los temas que le interesen. Pero básicamente, se tocan tópicos básicos para que el estudiante se motive y pueda utilizarla. Pregunta 5. ¿Además del laboratorio de inteligencia artificial y robótica existe otro lugar donde se pueda enseñar y poner en práctica todo lo referente a redes neuronales? Yo diría que es difícil conseguir ese espacio, pero recordando y si la mente no me falla aquí se hizo un proyecto sobre esto. Un proyecto que no se exactamente cual fue la temática ahora mismo, pero algo si toco ese punto, sin embargo el resultado es mas bien una investigación, ósea es algo más que todo teórico y otro espacio adicional a este (el laboratorio de robótica) no lo hay. Pregunta 6. ¿Cuenta la universidad con el personal idóneo para el manejo de estos temas? Es decir los temas de inteligencia artificial Bueno ahora mismo como se trabajan con temas básicas la persona que trabaja sobre eso soy yo y como se da en pocos grupos y realmente solo se presenta un curso en la mañana y otro en la tarde y es una materia que nada mas tiene tres horas, pero por lo general solo se presentan tres cursos y cuadra con los horarios que yo tengo disponibles. Por ejemplo, este semestre como un cambio en la malla, entonces habían grupos que estaban en décimo y salieron nuevos grupos en noveno, entonces la parte administrativa se vio en la necesidad de contratar un profesor que esta trabajando en la noche y yo estoy trabajando en la parte del día. Entonces personas para esto se consiguen poco pero en el momento la universidad si tiene las personas suficientes. En el momento en que los proyectos vallan avanzando ahondando en profundidad y en complejidad nos veríamos en la necesidad de buscar nuevas personas para temas específicos. Pregunta 7. ¿Manejan estándares específicos que permitan conocer los avances alcanzados en el desarrollo de estos temas?; ¿Estándares en cuanto a aplicativos?; ¿En cuanto a la metodología?; ¿Alguna referencia? Realmente se esta tratando de organizar toda la información en cuanto a los proyectos que se van desarrollando, pero en cuanto redes neuronales un estándar aplicado de pronto es la conformación de una red básica como el perceptron que se maneja acá, pero entrar a manejar cosas mas complejas de una red como tal donde tenga que manejar sus estándares, no lo hay. Pregunta 8. ¿Considera usted que serificioso contar con un instrumento que auxilie en el proceso de enseñanza-aprendizaje de redes neuronales? Obviamente si, así de pronto se da la oportunidad de ahondar un poco más en el tema. El problema es que sin herramienta de pronto uno analiza conceptos y programa una cosa básica, pero sin herramientas que permitan avanzar en poco tiempo es imposible. Osea, que si se hace una herramienta de estas seria bastante beneficioso. Por ejemplo se pondría colocar trabajo independiente al estudiante, de manera que el mismo ahonde en el tema. Pregunta 9. ¿Las actividades trazadas en la sala de inteligencia artificial para la enseñanza de redes neuronales son culminadas a tiempo con el procedimiento que se utiliza actualmente? Si, como es un proceso netamente básico en cuestiones de tiempo y el manejo de la temática es bueno. Pero eso no es solo a nivel de marco teórico, a nivel de proyectos se demoran como dos semestres y por lo general todos los que se inscribe en desarrollo de proyectos en inteligencia artificial y redes neuronales, terminan sus proyectos a tiempo y se gradúan según las normas de la universidad. Pregunta 10. ¿Se satisfacen los requerimientos básicos establecidos por la universidad en la enseñanza-aprendizaje de redes neuronales? ¿O esto no esta considerado en el plan de estudio? Realmente eso es muy subjetivo porque inicialmente la materia inteligencia artificial no esta definida en el pensul, aparece como una temática de tecnología de sistemas II, ahora mismo yo estoy tratando de probar en una tesis que estoy haciendo que la inteligencia artificial es un valor agregado que le da mucho mas valor a un ingeniero en varios aspectos que estoy tratando de comprobar. Pero que haya unos lineamientos de la universidad donde realmente se deba aplicar inteligencia artificial establecida desde sus estamentos no esta claro. Pregunta 11. ¿Los estudiantes son concientes de los avances que se están presentando a nivel de sistemas y corresponden en el aprendizaje de estos? Bueno si, pero eso a través de una campaña que se ha generado a través de lo que te estoy contando del doctorado, a través de campañas de motivación que yo he emprendido, hacer charlas, conferencias, talleres. La gente en las mismas clases aprende que realmente es importante que conozca la herramienta pero hay que motivarlo para que profundice en ella y alcance la dimensión que están mencionando. Pregunta 12. Bajo ese orden de ideas ¿Cree usted que el entrenador que estamos postulando serviría de apoyo a ese proceso? Claro obviamente por que seria una herramienta idónea para reforzar las practicas, el problema hasta ahora es que se ve la red neuronal desde un punto de vista teórico y de software pero no se puede ver el aspecto de la explicación practica, de la aplicación directa en un dispositivo que es donde mas se utiliza las redes neuronales. Hoy en día las aplicaciones que mas están creciendo son las de reconocimiento de patrones y a la persona le es difícil entender a nivel de un computador como son los procesos, primero por que los dispositivos vienen empaquetados como son los reconocedores de huellas y los reconocedores de cualquier otra cosa biométrica, entonces la persona no puede destapar y ver que hace, con un entrenador de estos se podría medio simular que es lo que pasa dentro y como es que esto realmente funciona. Por esto seria muy bienvenido un dispositivo de estos y seria muy beneficioso. ANEXO No. 11: PRESUPUESTO. Utilidad Detalle Cantidad Valor Unitario Valor total Papelería Lápices Borradores Bolígrafos Carpeta de 3 anillos Hojas de Block Fotocopias Impresiones Empastadas 10 5 16 1 3 Remas 280 700 1 500 400 1.000 7.000 10.000 50 150 20.000 Total Papelería 5.000 2.000 16.000 7.000 30.000 14.000 105.000 20.000 199.000 Comunicación Teléfono celular Teléfono fijo 200 (min.) 250 (min.) 250 33 Total Comunicación 50.000 8.250 58.250 Transporte Taxis Buses 15 120 4000 1300 Total Trasporte 60.000 156.000 216.000 Documentación Internet 280 (horas.) 1200 Total Documentación Equipos PIC`S 16f84 Cable UTP 336.000 336.000 6 3 metros 10.000 1.000 60.000 3.000 150 41 1 150 150 150 22.500 6.150 150 15 24 12 300 200 2.500 4.500 4.800 30.000 Circuito Entrenador Resistencias de 100 Ohmios Resistencias de 330 Ohmios Resistencias de 10 Kohmios Bases Para Microcontrolador de 18 Pines Condensadores de 22 pf Cristales de Cuarzo DIPSWITCH LED de 3 mm Postes para sostener LED de 5 mm para IND Switches para modo Switches para encendido Regulador de voltaje Jack para la alimentación Pines Abierto para conexión Soldadura Adaptador Placa Impreso de 21x 23 Fabricación física de la Placa Montaje de Componentes Marcación y Protección de la Placa Chasis en Acrílico Diseño Total Entrenador Total Equipos 3 40 6 1 1 1 1 1 328 10 1 1 1 1 1 1 4.000 200 500 250 1.000 1.500 1.500 1.000 100 800 20.000 15.000 30.000 15.000 10.000 150.000 -.- 12.000 8.000 3.000 250 1.000 1.500 1.500 1.000 32.800 8.000 20.000 15.000 30.000 15.000 10.000 150.000 42.850 420.000 483.000 40 25 3.500 2.000 140.000 50.000 Víveres Almuerzos Meriendas 190.000 Total Víveres TOTAL PRESUPUESTO 1.009.000 ANEXO No. 12: CUADRO COMPARATIVO NEURONAS. REDES NEURONALES BIOLOGICAS REDES NEURONALES ARTIFICIALES neuronas nodos Conexiones sinapticas Conexiones ponderadas Efectividad de la sinapsis Peso de las conexiones Efecto excitatorio o inhibitorio de una conexion Signo del peso de una conexion Efecto combinado de las sinapsis Funcion de porpagacion de una red Activacion -> tasa de disparo Funcion de activacion -> salida ANEXO No. 13: FICHAS DE CONSULTA. METODOLOGIA DE LA INVESTIGACION AUTOR EDITORIAL PROPOSITO Miguel Quesada Mytis Se consulto sobre técnicas de investigación ENCICLOPEDIA TEMATICA GUINESS AUTOR EDITORIAL PROPOSITO Circulo de lectores Se consulto acerca de la composición de la neurona y los fundamentos del aprendizaje. LA SALUD, ENCICLOPEDIA MEDICA FAMILIAR AUTOR Dr. Claude-B. Blowin EDITORIAL Circulo de lectores Se consulto acerca de la composición de la neurona PROPOSITO DICCIONARIO DE COMPUTACIÓN BILINGÜE AUTOR EDITORIAL PROPOSITO Alan Freedman Mc Graw Hill Se consulto para la definición y elaboración del glosario INGENIERIA DE REQUISITOS Rational Software Circulo De Lectores Se consulto sobre la aplicación de PROPOSITO ingeniería de requisitos AUTOR EDITORIAL ANEXO No. 14: FICHAS BIBLIOGRAFICAS. INTELIGENCIA ARTIFICIAL UNA NUEVA SISTEXIS NILS NNILSON AUTOR MCGRAW- HILL EDITORIAL PROPOSITO INTELIGENCIA ARTIFICIAL UN ENFOQUE MODERNO Stuar Russels AUTOR Prentice Hall EDITORIAL Comceptos básicos de la inteligencia PROPOSITO artificial Biblioteca de Consulta Microsoft ® Encarta ® 2005. © 1993-2004 Microsoft Corporation. AUTOR EDITORIAL Se realizaron múltiples búsquedas con PROPOSITO respecto a la parte teórica MICROCONTROLADORES PIC DISEÑO PRACTICO DE SUS APLICACIONES Jose Angulo Ma Usuategui AUTOR Mcgraw Hill EDITORIAL Se consulto sobre las instrucciones basicas y fundamentos de programacion PROPOSITO en PICs METODOLOGÍA DEL APRENDIZAJE SIGNIFICATIVO PROBLEMICO Y DESARROLLADOR. HACIA UNA DIDÁCTICA INTEGRADA AUTOR EDITORIAL PROPOSITO Alexander Luis Ortiz Ocaña Editorial Antillas Se consulto sobre fundamentos de pedagogía INTERNET • • • • • • • • • • • • • • • • • • • • • • • • • • • • • http://www.electan.com/catalog/kits-educativos-cebek-entrenadoreselectronica-c-320_315.html. http://es.tldp.org/Presentaciones/200304cursoglisa/redes_neuronales/curso-glisa-redes_neuronales.pdf http://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel http://es.wikipedia.org/wiki/Lenguaje_ensamblador http://es.wikipedia.org/wiki/Microcontrolador. http://es.wikipedia.org/wiki/Red_neuronal_artificial http://jkharlos.wordpress.com/2007/09/03/redes-neuronales-artificiales/ http://logicalgenetics.com/assorted/recurrent-nns/feedforward-small.jpg http://medmayor.cl/apuntes/apuntes/psico/aprendizaje.ppt http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html http://ohm.utp.edu.co/paginas/docencia/neuronales/Capitulo1/RNBiolo gica.htm http://server-die.alc.upv.es/asignaturas/LSED/2002g03/Soft_Hard/herramientas_para_pic.pdf http://supervisadaextraccionrecuperacioninformacion.iespana.es/worki ng/RedNeuronalArtificial.png http://www.alos.5u.com/indexpic877.htm http://www.depi.itch.edu.mx/apacheco/lengs/ann/pagina2.gif http://www.depi.itch.edu.mx/apacheco/lengs/ann/pagina3.gif http://www.electronicaestudio.com/microcontrolador.htm http://www.elprisma.com/apuntes/curso.asp? id=11846 http://www.iibce.edu.uy/uas/neuronas/#y http://www.iim.umich.mx/publica/bajar/BARRERA/Articulo%204.pdf http://www.ilustrados.com/publicaciones/EpylElpAZuyzPaNKYx.php, http://www.monografias.com/trabajos18/descripcion-pic/descripcion-pic http://www.monografias.com/trabajos26/aprendizajedesarrollador/aprendizaje-desarrollador.shtml#conceppedag http://www.monografias.com/trabajos38/redesneuronales/Image10688.gif. http://www.redes-neuronales.netfirms.com/tutorial-redesneuronales/clasificacion-de-redes-neuronales-respecto-alaprendizaje.htm http://www.redes-neuronales.netfirms.com/tutorial-redesneuronales/la-neurona-artificial-como-simil-de-la-neuronabiologica.htm http://www.superrobotica.com/images/S310130.JPG http://www.uta.cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.pdf www.electronica.com.mx/neural/information/hopfield.html • • www.electronica.com.mx/neural/information/perceptron.html www.gestiopolis.com/recursos3/docs/rh/tecapren.htm