Download Inteligencia artificial: todo comienza con una neurona.

Document related concepts

Perceptrón wikipedia , lookup

Puerta lógica wikipedia , lookup

Red neuronal prealimentada wikipedia , lookup

Puerta XOR wikipedia , lookup

Red neuronal de impulsos wikipedia , lookup

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