REDES NEURONALES E INTELIGENCIA ARTIFICIAL Nicolay Guzmán Rojas RESUMEN DEL PROYECTO Una de las nuevas herramientas con que cuenta el desarrollo de productos electrónicos, es la Inteligencia Artificial (IA), a través de ella, se implementan una serie de algoritmos que permiten realizar prototipos, llamados “inteligentes”, pues usan procesos de aprendizaje autónomo y adaptable, generando avances tecnológicos cada vez más versátiles. El presente proyecto, es una estrategia que busca generar y divulgar, en los programas afines, disciplinarmente a ésta teoría: Tecnología en Electrónica, Tecnología en Mecatrónica, Tecnología en Sistemas e Informática Empresarial, en la CIDE, material didáctico como herramienta en la enseñanza de algunas estrategias de IA, generado a partir del planteamiento de problemas, para ser solucionados mediante el uso de ésta, ya que en ninguna de las materias propuestas, en los programas mencionados, se trata el tema con la profundidad y tiempo requerido 1. Se plantea la realización de una serie de actividades, conducentes a generar material de trabajo, como guía en la enseñanza de algoritmos aplicados en IA, para que sean usados en las diferentes materias, donde se establezca la pertinencia y el espacio para divulgar dicho material. El objeto de estudio es la implementación de los algoritmos usados en IA, para comprobar su desempeño, luego generar el material didáctico que permita su divulgación, usando los diseños elaborados, fruto de la investigación. En éste caso se toman dos referentes, uno las Redes Neuronales, dado su impacto e importancia en el desarrollo de algoritmos, que emulan el comportamiento del cerebro humano, frente a los algoritmos genéticos, los cuales se adaptan a la situación que se enfrentan, obedeciendo a las leyes de la genética evolutiva en la arquitectura del programa. 1 Ver microcurriculos de los programas mencionados de Tecnología para la CIDE. DESCRIPCIÓN DEL PROYECTO: A continuación se presentan los preliminares del proyecto, en los términos de referencia, publicados en el micro-sitio para el departamento de investigación, publicados en la página de la Corporación Educativa, CIDE 2. PREGUNTA DE INVESTIGACION ¿Cuál es el desempeño de los algoritmos, usados en Redes Neuronales (RNA) frente a los Algoritmos Genéticos (AG), en cuanto a tiempos de procesamiento y aprendizaje, en la implementación de éstos a dispositivos electrónicos, diseñados específicamente, para su verificación y divulgación en los programas de Tecnología para la CIDE? JUSTIFICACION El desarrollo tecnológico, científico e industrial, en el mundo, es un movimiento que converge en las dimensiones sociales, disciplinares y sicológicas del hombre contemporáneo. Tal desarrollo es sabido, tiene un crecimiento exponencial, aunque se supone que las teorías, que se llevan a la práctica, para que dicho crecimiento vertiginoso se dé, son recientes, no es así, tales teorías datan en muchas ocasiones de medio siglo de concepción, lo que hace que se de vigencia a éstas es la posibilidad de darles “vida”, mediante la aplicación factible, dados los nuevos descubrimientos científicos, específicamente en lo referente a la física y la química, entre otras disciplinas fundamentales para el desarrollo científico. Tal panorama ha hecho que se desarrollen nuevos dispositivos electrónicos, versátiles, adaptables y eficaces, frente al uso de la energía, velocidad de procesamiento y eficientes en la ejecución de tareas. La Inteligencia Artificial (IA), nace en la década de los 40, con la máquina de Alan Turing 3, comprobándose que un proceso puede implementarse en un dispositivo electrónico. A través de su historia, se han concebido ideas que se llevan a la práctica, mediante algoritmos, cada uno de ellos con características específicas, pero que buscan el mismo objetivo, generar dispositivos “inteligentes”, que suplan las tareas que para el ser humano, 2 Tomado de: http://www.cide.edu.co/doc/investigacion/TERMINOSDEREFERENCIA.pdf, Octubre 24 de 2012. Documento Online en PDF: Términos de Referencia convocatoria Interna, Proyectos de Investigación 2012. 3 La máquina de Turing, fue desarrollada en 1936 son repetitivas o que requieren de alta precisión, alta velocidad de procesamiento y respuesta, aunque la teoría va un paso delante de la aplicación, hoy en día se han efectuado un sinnúmero de aplicaciones. En Colombia, el desarrollo tecnológico, se da en los procesos de Investigación y desarrollo, Mercadeo de Innovaciones, Tecnologías de la información y telecomunicaciones, Asistencia Técnica y consultoría, Ingeniería y diseño Industrial, entre otros 4, requiriendo profesionales con experiencia en las últimas tendencias, usadas en mencionado campo del desarrollo tecnológico (IA). En los programas de formación disciplinar, relacionados con la teoría de la IA, se han dado los espacios donde los estudiantes pueden explorar y aprender dichas teorías en las cátedras relacionadas, desde los espacios que la academia destina, en los procesos de Investigación y formación autónoma, brindando el apoyo pertinente para tal cometido. Para la CIDE, es de vital importancia, brindar las condiciones necesarias, que permitan desde los procesos de investigación, brindar a sus estudiantes las condiciones necesarias, para explorar dichos campos del desarrollo tecnológico. El presente proyecto es una estrategia pertinente, que busca dar respuesta a la imperante necesidad de apoyar a los estudiantes, de los programas de tecnología en Electrónica, Tecnología en electrónica y tecnología en Sistemas, para explorar los algoritmos relacionados con la IA, dada la necesidad evidente, abriendo los espacios y ofreciendo como objeto de estudio, la comparación de los niveles de desempeño de los algoritmos usados en IA, generando material didáctico que permita evidenciar dicho parámetro de comparación, inicialmente usando los algoritmos de las Redes Neuronales y los algoritmos Genéticos. OBJETIVOS GENERAL: Diseñar un dispositivo electrónico, bajo parámetros específicos, que permita medir las variables de tiempos de procesamiento y capacidad de aprendizaje, al implementar los algoritmos de IA: Redes Neuronales Artificiales (RNA) y Algoritmos Genéticos (AG’s). 4 DANE. Encuesta de desarrollo e innovación tecnológica, Industria Manufacturera 2009-2010, Bogotá, Septiembre 11 de 2012. ESPECIFICOS: 1. Establecer los criterios de medición de las variables a observar, velocidad de procesamiento y capacidad de aprendizaje, en el dispositivo a diseñar. 2. Documentar, sobre los algoritmos de inteligencia artificial a utilizar, redes neuronales y algoritmos genéticos 3. Identificar el proceso y dispositivo electrónico que permita determinar el desempeño de los algoritmos a implementar. 4. Diseñar la propuesta, que se pretende utilizar en la medición de las variables, usando en cada dispositivo el respectivo algoritmo. 5. Implementar la propuesta, en el ambiente controlado paras determinar los niveles de desempeño en las variables de tiempo de procesamiento y capacidad de aprendizaje. 6. Determinar los niveles de desempeño, de los dos dispositivos, el usado para el algoritmo en redes neuronales y el usado con algoritmos genéticos, mediante el método determinado para tal fin. 7. Elaborar la guía didáctica, que permita la exploración de los criterios dados, para determinar el desempeño al implementar las RNA y los AG’s, mediante la implementación de éstos a un dispositivo electrónico. MARCO TEORICO En las primeras aproximaciones al tema, se encuentra que los desarrollos que se ha dado en torno al tema, se enfocan hacia el desarrollo de soluciones que permiten solucionar problemas cotidianos, como el pesado de coeficientes ceptrales de la voz, reconocimiento de caracteres mediante visión artificial, robótica, entre otros campos, un breve resumen sobre los algoritmos a tratar se presenta a continuación: A. Redes Neuronales Una de las teorías relacionales, que permiten la optimización del recurso de Hardware son las redes neuronales; dichos algoritmos pretenden, a partir de su similitud con el sistema nervioso y las conexiones entre las neuronas, optimizar el desarrollo de sistemas que impliquen el uso de dispositivos programables. En la teoría se expone, que todo sistema tiene capacidad, de realizar procedimientos, la cual se puede aprovechar para el aprendizaje a partir de situaciones en las cuales el sistema interactúa. En los algoritmos de programación, que tienen en cuenta las redes neuronales, se establecen conexiones entre unidades básicas de procedimiento llamadas perceptrones. Los perceptrones multinivel o multicapas, se pueden observa a partir del siguiente gráfico: Figura 1. Estructura de un Perceptrón 5 Este consta de varias capas de procesamiento, una capa de entrada, capa de neuronas ocultas y capa de neuronas de salida. Cada capa de neuronas, realiza su propia función, la capa de neuronas de entrada, adaptarla señal, asignándole un peso a cada una de éstas, para llevarla hacia la capa de neuronas ocultas, las cuales se encargan del procesamiento de la señal para llevarla hacia la capa de salida. Cada neurona, tiene la estructura básica que se muestra a continuación. 5 Aldabas, Emiliano. Introducción al reconocimiento de patrones mediante redes neuronales. Documento en PDF tomado de. www.eel.upc.es. Fig. 1. Estructura básica de una neurona En ella se encuentra que a la entrada, los pasos sinápticos, asignan a cada una de las entradas, un peso el cual es sumado a partir de la función U k , para procesarla mediante la función de activación, obteniendo así la señal de salida yk , la ecuación que rige la salida se muestra a continuación: yk = 1 1 + e−u k Ec. 1.1 salida de una neurona 6 La relación que existe entre la salida del bloque de función de activación y la entrada del mismo es de tipo exponencial, y como se observa, inversamente proporcional, menor que la unidad. En los sistemas de control, a la función que relaciona la salida con la entrada se le conoce como función de transferencia, ésta me permite realizar un análisis en el dominio de la frecuencia, mediante un software de simulación, como por ejemplo Matlab, el cual además de permitirme dicha simulación, entre muchas otras características, contiene la herramienta de simulación de las redes neuronales. B. Algoritmos Genéticos: 6 Aldabas, Emiliano. Introducción al reconocimiento de patrones mediante redes neuronales. Documento en PDF tomado de. www.eel.upc.es. Los Algoritmos Genéticos (G.A’s), son algoritmos basados en la teoría de la evolución, donde un individuo prevalece sobre los más débiles, es decir un algoritmo que tiene un mejor desempeño que otro, será seleccionado para su implementación, en la realización de una tarea. Esta teoría, hace parte de la computación evolutiva, que ha tenido una amplia aceptación en el mundo de la Inteligencia Artificial (IA). Están inspirados en las teorías evolutivas de Darwin y en las leyes de la genética de Gregor Johann Mendel. Los algoritmos genéticos, son propuestos en la década de los años 70 por John Holland, al desarrollar dicho algoritmo en la universidad de Michigan, usándose hoy en día para resolver problemas de un grado de complejidad elevado, clasificados como NP (Problemas con solución en tiempo No Polinominal). Los problemas se solucionan, mediante la aplicación de posibles algoritmos que conducen a soluciones, llamados cromosomas, la información que contiene los cromosomas, se conoce como genes, el algoritmo, debe encontrar aquel individuo, mediante una función que determina la calidad llamada Fitness. METODOLOGIA En el desarrollo de la propuesta, se plantea una investigación de corte experimental. 1. Estado del arte: Se establecen estados de avance en los diseños similares a la propuesta, se consultan las diferentes fuentes de información, en este aspecto se pretende determinar, qué elementos aportan a la propuesta, o en qué estado de avance se encuentran los sistemas de desarrollo afines a ésta. 2. Caracterización del desarrollo: Se establecen las variables que se intervienen en el diseño, para éste caso, se determina qué elementos se deben observar para establecer el desempeño del sistema, en cuanto a velocidad de procesamiento y capacidad de aprendizaje. Se clasifican y delimitan, las que se pretenden abordar desde la propuesta, a partir de las establecidas, en el estado del arte, al igual que la forma como se aplicarán al diseño a implementar. En éste paso, se levanta la información sobre el estado de avance 3. Diseño: Teniendo en cuenta la experiencia de los docentes, la información recopilada y los parámetros de medición, de las variables que intervienen en la velocidad de procesamiento y capacidad de aprendizaje, tanto de las RNA, como de los AG’s, se establece una propuesta, mediante el diseño de los elementos mecánicos y electrónicos que intervienen en el sistema, usando el software necesario para tal fin. 4. Simulación y rediseño: Se implementa en un software de simulación acorde al prototipo a diseñar. Se ajustan las variables y se comprueban los resultados, mediante los resultados obtenidos se realiza un rediseño de la propuesta. 5. Construcción: Se determinan los materiales: hardware y software, a utilizar en la construcción del dispositivo, se confronta con el estudio de factibilidad y funcionalidad, se realiza la construcción del dispositivo. 6. Implementación: Se ejecuta el diseño realizado, llevando a cabo el desarrollo del diseño, se establecen puntos de funcionamiento y se verifican características de funcionalidad, se realiza reingeniería al prototipo y se ajustan las variables no controladas, se define el prototipo final. 7. Ajustes: Se realizan las correcciones que el proceso de reingeniería arroje, en sus conclusiones, se ejecuta el plan alterno a la implementación del prototipo, se lleva a cabo el modelo final, para ponerlo en funcionamiento. 8. Conclusiones y resultados: Se establecen los estados de avance según los resultados obtenidos y se determinan las posibles mejoras y aplicaciones mediante la redacción de sugerencias y recomendaciones en el capítulo de las conclusiones. Se diseña y entrega el material didáctico, fruto de la labor de estudio, se comprueba la factibilidad y eficacia de las guías, mediante la revisión didáctica y pedagógica, hecha por el profesional asignado desde el departamento de investigación. Finalizado el proceso establecido en la metodología, se pretende cumplir con el objetivo general y los específicos, planteados para esta propuesta.