Download Inteligencia artificial: todo comienza con una neurona.
Document related concepts
Transcript
MEMORIAS DEL SEGUNDO CONCURSO DE INVESTIGACIÓN, DESARROLLO E INNOVACIÓN TECNOLÓGICA IDIT 2013 Inteligencia artificial: todo comienza con una neurona. Sandra Belén Bejarano Jiménez, Sofía Monserrat Pérez Pérez, María Fernanda Silva Hernández, Estephania Villavicencio Ríos Resumen―El desarrollo de redes neuronales tiene una amplia gama de aplicaciones dentro del campo de la Ingeniería Biomédica, por lo que se decide crear una neurona artificial como base de cualquier proyecto futuro que se deseé realizar. En este artículo se da a conocer el procedimiento realizado para que una Neurona Artificial trabaje en lenguaje binario, en lugar de utilizar señales electroquímicas; siendo capaz de cumplir con el funcionamiento lógico de las compuertas “AND”, “OR” y finalmente “XOR”.El proyecto se realiza de manera teórica, es decir, con una justificación matemática, en simulación y físicamente sobre un protoboard. • INTRODUCCIÓN El sistema nervioso es donde se llevan a cabo los procesos de pensamiento y control del cuerpo. Son las neuronas las encargadas de recibir y transmitir estímulos que llegan al cuerpo de forma tanto interna como externa. [1] Para que las neuronas conduzcan la información a través de ellas, es necesaria la existencia de un estímulo de entrada superior al umbral electronegativo de la membrana, una vez que éste es superado, la neurona entera es despolarizada comenzando el proceso de sinapsis. La sinapsis es el proceso por el cual las neuronas se comunican entre sí y con las demás células del cuerpo. (Figura 1.)[1] En inteligencia artificial, una neurona es la unidad equivalente a la neurona biológica, que intenta simular su comportamiento y funcionamiento; de modo que disponen de entradas y salidas. En el modelo artificial se plantean valores, llamados pesos, a las conexiones de entrada los cuales definen el estado de activación de la célula. (Figura 2.) [2]. Entre las etapas del desarrollo del proyecto se implementaron las compuertas lógicas. Éstasvarían en forma discreta, es decir, están bien identificados sus estados, razón por la cual a un determinado nivel de tensión se le llama Uno lógico; y a otro, Cero lógico. [3] La compuerta AND requiere que los dos valores lógicos sean 1 para poder tener un valor de salida igual. Por otra parte la compuerta OR requiere que al menos uno de los dos valores de entrada equivalga al 1 lógico, de lo contrario envía la salida cero. [3] Una compuerta XOR es llamada así debido a que es “O exclusivo”, es decir, únicamente responde con el valor 1 si ambas entradas son distintas entre sí. [3] Los materiales utilizados a lo largo del proyecto incluyen, transistores, op-amps, resistencias, entre otros. • ETAPAS Y CONCEPTOS BÁSICOS 1. Aprendizaje:El Adaline fue la primera red neuronal lineal, fue desarrollada como circuito electrónico adaptivo para usos distintos a lo que hoy se conoce como “red neuronal”. El modelo de neurona artificial, por lo tanto, consta de los siguientes elementos: Entradas xi de la célula, estas toman los valores lógicos de 0 ó 1. El Bias es la entrada de la célula que se mantiene constante durante todo el proceso. Pesos son entradas ponderadas que se conectan a las entradas xi. S = {s1,…sn}: Estado interno de la neurona o nivel de activación de la célula. Función de activación o de salida: Permite cambiar el estado de la célula en base a las entradas y define las nuevas salidas. Figura 1. Neurona biológica en sinapsis. 13 Bejarano Jiménez et al: Inteligencia artificial Resistencia eléctrica: Oposición de la corriente a través de un circuito eléctrico. Las Compuertas Lógicas son dispositivos que operan con lógica negativa y lógica positiva, 0 y 1, correspondientes a una operación aritmética evaluadas en tablas de verdad. Ganancia: Aumento de la señal entre las entradas y salidas del amplificador. Figura 2. Modelo de la neurona artificial 2. Simulación: Crear el proyecto en un programa virtual donde se corroboren los resultados obtenidos teóricamente, ya en conjunto con los de la etapa de aprendizaje. Op-Amp: Dispositivo lineal con la capacidad de manejar señales teniendo una frecuencia inicial de 0 hasta llegar a la frecuencia límite. Como se muestra en la figura 6, cada uno de los op-amps colocados en el circuito realiza una función diferente, la de sumador inversor, inversor y comparador. Se utilizaron dos distintos programas, Proteus y Multisim. Durante la simulación se pone en funcionamiento el proceso de activación de la neurona. Se continúa en esta etapa hasta obtener los resultados deseados. Figura 5. Implementación del circuito. Izquierda AND. Derecha OR. • Figura 3.Simulación en Proteus OR. METODOLOGÍA Aprendizaje:La fase de aprendizaje y de conocimiento también se intenta adoptar por la neurona artificial; y se logra con interacciones con el medio y los modelos de respuesta; en el caso del cerebro humano. Para la resolución de la OR y AND se usó un algoritmo de Matlab consta de una guía proporcionada por el asesor del proyecto. El código permite obtener los pesos necesarios para la sumatoria mediante el “entrenamiento”. En redes neuronales, se llama entrenamiento al proceso en el cual la computadora configura la red neuronal para que las entradas produzcan las salidas deseadas. Figura 4. Simulación Multisim XOR 3. Implementación: La implementación consiste en armar físicamente el circuito. Esto se logró con la solución teórica del problema y con la simulación del mismo. Una vez que la simulación coincidió en resultados con la etapa de aprendizaje, desarrollada en Matlab; se utilizaron resistencias de 3.3kΩ, 3.9kΩ, 1.8kΩ, 1kΩ, 330Ω, op-amps y LEDs para ensamblar el circuito sobre un protoboard, como se muestra en la figura 5. 14 Para el entrenamiento de la XOR es necesario hacer un aprendizaje simultáneo de OR y AND, posteriormente existe un aprendizaje de XOR donde las entradas iniciales corresponden a las ganancias obtenidas de las otras dos neuronas. Por lo tanto la neurona XOR está conformada por una OR y una AND. La gran diferencia para XOR son las condiciones que se usan en la etapa de reconocimiento del código; porque con OR y AND se usaba únicamente una condición, que MEMORIAS DEL SEGUNDO CONCURSO DE INVESTIGACIÓN, DESARROLLO E INNOVACIÓN TECNOLÓGICA IDIT 2013 consiste en determinar si la ganancia es mayor o menor a un umbral. Circuito en Simuladores: Es de gran utilidad simular un circuito previamente a ser armado. Al utilizar el simulador Proteus se hace una comparación entre los resultados matemáticos y del simulador para OR y AND, y en Multisim para XOR; así se aseguran los datos antes de ser implementados en el circuito de manera física. Con los valores obtenidos de las resistencias en el código se buscaron unas similares, por los decimales existentes no se lograba tener una resistencia exacta. Esas resistencias semejantes se utilizaron para el desarrollo de la simulación del circuito, donde se corroboró que el procedimiento funcionara de la misma forma, es decir, que las compuertas lógicas no cambiaran los resultados previamente adquiridos. Es en esta etapa donde se probaron distintos materiales para encontrar los valores deseados en el algoritmo, se tuvo que repetir el programa de Matlab en diversas ocasiones hasta que los materiales utilizados para realizar la simulación no alteraran los resultados finales. Implementación: Una vez obtenidos los voltajes de salida esperados se armó el circuito sobre el protoboard. Se consiguieron las resistencias más próximas a los valores reales, se colocaron LEDs al final de cada circuito para obtener una respuesta visual, donde se activara la luz cuando los valores lógicos fueran equivalentes a uno y se apagará cuando éstos fueran cero. Como se muestra en la figura 6; para las neuronas OR y AND, que son lineales, por sí mismas se usaba 3 op-amps donde sus funciones eran amplificar, invertir y comparar los voltajes, que representan las ganancias, en ese orden. En el caso de XOR, no lineal, OR y AND dejan de tener la etapa del comparador y las salidas llegan al sumador amplificador y el inversor, es en este punto que llega a la etapa de comparación de XOR. Por cada una de estas funciones se implementó un op-amp. Figura 6. Circuito con entradas lógicas de 1. Izquierda AND. Derecha OR. Herramientas Extra:Se realizan muchas operaciones constantemente, y en caso de que se quiera cambiar un dato, es necesario repetir todas las operaciones. Por lo tanto se decidió implementar un programa en C++ donde pudiéramos introducir los valores iniciales y nos arrojara los valores finales. Posteriormente se realizó otro programa en la interfaz de Excel (Véase tabla 1 y 2), donde fuera aún más fácil el cambio de un valor numérico. Es a partir de éstas tablas que se exponen los resultados. • RESULTADOS Los resultados provienen de las diferentes etapas del proyecto. A continuación explicaremos los datos de las Tablas 1 y 2. Alpha y epsilon son usados en la etapa de aprendizaje del algoritmo en Matlab. “Dual”se refiere al voltaje con el que se alimenta los op-amps. ‘a’ hace referencia al voltaje usado con el valor lógico de 1, mientras que ‘b’al valor lógico de 0. A partir de los pesos inicialesse obtienen los pesos finales y es a partir de éstos y del valor de Rf que se puede calcular las resistencias a implementar en el circuito, Las ganancias son representadas con s’s, y son obtenidas a partir del algoritmo en Matlab que son los voltajes en el circuito a la salida del inversor. Las celdas que representan los voltajes reales son calculados con el valor exacto de las resistencias mientras que las celdas de valores aproximados se calculan con las resistencias adaptadas. 15 Bejarano Jiménez et al: Inteligencia artificial Tabla 3: Resultados XOR Tabla 1: Resultados OR Como se puede observar las diferencias entre los valores de los voltajes es mínima y son causados por las adaptaciones que se tuvieron que hacer a las resistencias. Se usó la misma metodología de OR y AND, en XOR. Gracias a lo obtenido en las primeras dos, al implementarse XOR los resultados coincidirán con los calculados y los de la simulación. De tal manera que podemos afirmar que el funcionamiento lógico de la neurona artificial trabaja de la manera adecuada a la esperada • CONCLUSIONES Para la etapa de aprendizaje es importante ser persistente en la variación de los valores iniciales usados en el código; ya que de éstos dependen los resultados obtenidos en las etapas posteriores. Se utilizaron diferentes simuladores de circuitos para poder rectificar los valores obtenidos y así, en la etapa de implementación lograr el funcionamiento correcto del circuito. Tabla 2: Resultados AND El voltaje de alimentación es un factor determinante en el comportamiento de los op-amps, si no se alimenta debidamente no cumple con la función de comparador, inversor o sumador, según sea el caso. Los temas desarrollados a lo largo de este proyecto, forman parte de Redes Neuronales, un tema relevante en el campo de Ingeniería Biomédica. • AGRADECIMIENTOS Agradecemos a la Universidad La Salle por haber brindado el acceso a los talleres y por el suministro del material para ensamblar el circuito. 16 MEMORIAS DEL SEGUNDO CONCURSO DE INVESTIGACIÓN, DESARROLLO E INNOVACIÓN TECNOLÓGICA IDIT 2013 Al Profesor José Ambrosio Bastián por haber leído y corregido éste artículo incontables veces. Al Maestro Josué por su asesoría durante el proceso de implementación. • REFERENCIAS [1] A Guyton, J. Hall. “Tratado de Fisiología Médica”. Elsevier Saunders. 2011. [2] Pedro Ponce Cruz, “Inteligencia Artificial con Aplicaciones a la Ingeniería”, Alfaomega, 2010. [3] G. Ruiz “Electrónica Básica para Ingenieros” Universidad de Cantabria. 2009. [4] P. Viñuela, I. Galván "Redes de Neuronas Artificiales. Un enfoque Práctico". Pearson Prentice Hall.2003 [5] J. Hilera, V. Martínez. "Redes Neuronales Artificiales. Fundamentos, modelos y aplicaciones". ALFAOMEGA. 2000 17 Bejarano Jiménez et al: Inteligencia artificial 18