Download Modelos neuronales de tercera generación: aplicación en el
Document related concepts
Transcript
Modelos neuronales de tercera generación: aplicación en el reconocimiento de patrones y robótica Dr. Roberto Antonio Vázquez Espinoza de los Monteros Enero 2015 Agenda 1. 2. 3. 4. 5. Grupo de Investigación Introducción Metodología Resultados obtenidos Conclusiones Grupo de Investigación+Desarrollo+innovación Sistemas inteligentes 4 Doctores (3 miembros del SNI), Estudiantes de licenciatura y posgrado. Realizar investigación tanto básica como aplicada, para dar solución a problemas relacionados con el reconocimiento de patrones, análisis de imágenes, predicción de series de tiempo y control, de alto impacto. • • Redes Neuronales aplicadas al reconocimiento de patrones y control Cómputo evolutivo e inteligencia colectiva para el reconocimiento de patrones GI+D+i en Sistemas Inteligentes Proyectos 1. Aplicaciones de cómputo evolutivo y de procesamiento digital de señales en el área de ingeniería 2. Diseño automático de redes neuronales generadoras de impulsos y su implementación en unidades de procesamiento gráfico (GPUS) para el análisis masivo y clasificación de patrones 3. Simulación y diseño de nadadores con inteligencia individual y colectiva 4. Implementación de una nariz electrónica en un sistema embebido Objetivo del taller Aplicar una neurona generadora de impulsos en problemas relacionados con el reconocimiento de patrones y robótica. Introducción • • • El humano realiza tareas cognitivas como aprender, reconocer, memorizar y recordar de forma eficiente. El los últimos años, han surgido diferentes modelos inteligentes que permiten emular estas actividades. Diferentes modelos neuronales y asociativos. Aplicaciones Reconocimiento de patrones Aplicaciones Predicción de series de tiempo Aplicaciones Robótica ¿Cómo lo hacen las máquinas? Preprocesamiento de la región Adquisición de la imagen Segmentación Extracción de rasgos Reconocimiento Evolución de las RNA Primera generación Utiliza las neuronas McCulloch-Pitts como unidad computacional. En torno a ellas existen muchos modelos de redes neuronales como los perceptrones multicapa, redes de Hopfield y máquinas de Boltzmann. El valor de la salida está limitado a ser binario, por ejemplo 1 ó 0. Características 1. 2. 3. 4. 5. Varias neuronas Diferentes tipos de neuronas Diferentes tipos de conectividad Diferentes estrategias de aprendizaje Limitaciones Evolución de las RNA Segunda generación La segunda generación amplió las posibles salidas de las redes neuronales mediante diferentes funciones de activación continuas, como la función sigmoide, en lugar de digital, abriendo así su campo de aplicación. Las redes neuronales con propagación hacia adelante, las de función base radial y las redes de Kohonen, son ejemplos de esta generación. Evolución de las RNA Tercera generación Incorporan el concepto del tiempo. Pese a que los modelos de neuronas generadoras de impulsos existen desde inicios del siglo XX, la utilización de los modelos para el reconocimiento de patrones es muy reciente. Neuronas biológicas 1. Actividad neuronal 2. Diferentes modelos 3. Comunicación Modelos y aplicación de las RNA 3G Izhikevich, E. M.(2004) Which Model to Use for Cortical Spiking Neurons? IEEE Trans. on Neural Networks 15(5),1063-1070 Modelando neuronas de tercera generación Izhik ev ich, E. M.(2004) W hich Model to Use for Cortical Spik ing Neurons? IEEE Trans. on Neural Networks 15(5),1063-1070 function [v spikes]=izNeuron1(T,I) C=100; vr=-60; vt=-40; k=0.7; % parameters used for RS a=0.03; b=-2; c=-50; d=100; % neocortical pyramidal neurons vpeak=35; % spike cutoff %T=1000; tau=1; % time span and step (ms) n=round(T/tau); % number of simulation steps v=vr*ones(1,n); u=0*v; % initial values spikes=0; for i=1:n-1 % forward Euler method v(i+1)=v(i)+tau*(k*(v(i)-vr)*(v(i)-vt)-u(i)+I)/C; u(i+1)=u(i)+tau*a*(b*(v(i)-vr)-u(i)); if v(i+1)>=vpeak % a spike is fired! v(i)=vpeak; % padding the spike amplitude v(i+1)=c; % membrane voltage reset u(i+1)=u(i+1)+d; % recovery variable update spikes=spikes+1; end end ¿Cómo lo hacen los humanos? Reconocimiento de patrones ¿Aplicaciones en el reconocimiento de patrones? Patrones de la misma clases generan similares frecuencias de disparo Hipótesis 1. Los modelos neuronales basados en aspectos neurobiológicos del cerebro humano otorgarían mejores resultados que los modelos neuronales clásicos cuando éstos son aplicados en problemas relacionados con el reconocimiento de patrones. 2. Si se parte del hecho que la actividad neuronal, en ciertas regiones del cerebro, aumenta o disminuye en respuesta a un estímulo que recibe, luego entonces se podría discriminar o reconocer el tipo de estímulo, con base en esa actividad neuronal. 3. Un grupo de patrones de entrada, que pertenecen a la misma clase, van a provocar que estas redes neuronales de tercera generación generen a su salida una secuencia de impulsos con una frecuencia de disparo muy similar. ¿Cómo aplicarlos en el reconocimiento de patrones? 1. 2. 3. 4. Seleccionar el modelo Seleccionar un algoritmo de aprendizaje Seleccionar un problema Obtener resultados Aplicación en el reconocimiento de patrones y robótica Aplicación en el reconocimiento de patrones y robótica Usando un modelo de tercera generación C=100; vr=-60; vt=-40; k=0.7; % parameters used for RS a=0.03; b=-2; c=-50; d=100; % neocortical pyramidal neurons vpeak=35; % spike cutoff %T=1000; tau=1; % time span and step (ms) n=round(T/tau); % number of simulation steps v=vr*ones(1,n); u=0*v; % initial values spikes=0; I=100*sum(Input.*S); for i=1:n-1 % forward Euler method v(i+1)=v(i)+tau*(k*(v(i)-vr)*(v(i)-vt)-u(i)+I)/C; u(i+1)=u(i)+tau*a*(b*(v(i)-vr)-u(i)); if v(i+1)>=vpeak % a spike is fired! v(i)=vpeak; % padding the spike amplitude v(i+1)=c; % membrane voltage reset u(i+1)=u(i+1)+d; % recovery variable update spikes=spikes+1; end end Aplicación en el reconocimiento de patrones 14.23,1.71,2.43,15.6 13.2,1.78,2.14,11.2 𝐶𝐶1 = ⋮ 14.37,1.95,2.5,16.8 12.08,1.33,2.3,23.6 12.08,1.83,2.32,18.5 𝐶𝐶2 = ⋮ 12.29,2.83,2.22,18 13.69,3.26,2.54,20 13.78,2.76,2.3,22 𝐶𝐶3 = ⋮ 13.4,4.6,2.86,25 12 16 14 Spiking Neuron Model 25 40 Aplicación en el reconocimiento de patrones Descripción de la metodología Entrada transformada Entrada Sinapsis Salida de la neurona Procesamiento neuronal Clase Función de clasificación Neuron Vector : {0.5, 1, 9, … , 3} Corriente de entrada x = vector de entrada w = vector de pesos sinápticos θ =Frecuencia factor de de ganancia. disparo Clase Descripción de la metodología Entrada transformada Entrada Sinapsis Salida de la neurona Procesamiento neuronal Clase Función de clasificación Neuron Vector : {0.5, 1, 9, … , 3} Corriente de entrada Frecuencia de disparo Clase Descripción de la metodología • Patrones y clases deseadas Entrada transformada Entrada Sinapsis Procesamiento neuronal Neuron Vector : {0.5, 1, 9, … , 3} Salida de la neurona Corriente de entrada Clase • Vector de pesos ajustado mediante algoritmos Función de evolutivos. clasificación Individuo -> vector de pesos Frecuencia de disparo Clase Aprendizaje evolutivo Vazquez, Roberto A., Cachon, Aleister (2010) Integrate and fire neurons and their application in pattern recognition. Proceedings of the 7th International Conference on Electrical Engineering, Computing Science and Automatic Control, 424-428 Vazquez, R. A. (2010) Pattern recognition using spiking neurons and firing rates. In: Proc. of Iberoamerican conference on Ai. pp. 423-432. Vazquez, Roberto A. (2010) Izhikevich Neuron Model and its Application in Pattern Recognition. Australian Journal of Intelligent Information Processing Systems, 11(1): 35-40 Aprendizaje evolutivo Optimización por enjambre de partículas Aplicación en el reconocimiento de patrones y robótica Usando un modelo de tercera generación %Stop Criteria VTR = 0; %stop when ofunc < VTR itermax = 1000; %maximum number of iterations (generations) %number of population members NP = 40; %Boundaries of search space Lb=-10; Ub=10; %PSO Parameters w_start=0.95; w_end=0.4; Vmax=4; Vmin=-4; c1=2; c2=2; Chi=0.75; %Loading data load ('iris.mat'); % D number of parameters of the objective function D=features-1; %Training the spiking neuron using PSO [x,f,nf,history,itera] = psoIZ('FitnessneuronIZV2',VTR,D,Lb,Ub,NP,itermax,DataTrain,Classes,w_start,w_end,Vmin, Vmax,c1,c2,Chi, refresh); %Computing the performance of the methodology [crTR, spikesTR,classesTR]=feval('SimneuronIZV2',x,1,DataTrain,Classes); [crTE, spikesTE, classesTE]=feval('SimneuronIZV2',x,1,DataTest,Classes); fprintf(1,'\nPercentage of recognition using training set: %f\n',crTR); fprintf(1,'Percentage of recognition using testing set: %f\n',crTE); Avance sobre RNA 3G 1. Impacto del algoritmo evolutivo en problemas de reconocimiento de patrones • Roberto A. Vazquez and Beatriz A. Garro (2011). Training spiking neurons by means of particle swarm optimization. In Y. Tan et. al (Eds.): ICSI 2011, Lecture Notes in Artificial Intelligence, N 6728, pp. 242–249, Springer. • Vazquez, R. (2011). Training spiking neural models using cuckoo search algorithm. In: Evolutionary Computation (CEC), 2011 IEEE Congress on, pp.679686. doi: 10.1109/CEC.2011.5949684. 2. Impacto del modelo neuronal en problemas de reconocimiento de patrones • Tesis de Maestría – Universidad La Salle (2010 - 2012) Avance sobre RNA 3G 1. Diseño automático de modelos neuronales de tercera generación • • • Josafath Espinosa-Ramos, Roberto A. Vazquez, Nareli Cruz-Cortes (2013) Designing spiking neural models of neurophysiological recordings using gene expression programming. BMC Neurosciences, 14(suppl 1):P74 JCR (IF: 3.0) Josafath Espinosa-Ramos, Nareli Cruz-Cortes, Roberto A. Vazquez (2013) Spiking Neuron model approximation using GEP. IEEE Congress on Evolutionary Computation, pp. 3260-3267 Josafath Espinosa-Ramos, Nareli Cruz-Cortes, Roberto A. Vazquez (2013) Creation of spiking neuron models applied in pattern recognition problems. IJCNN 2013: 1-8 2. Implementación en GPU • Antonio Arista-Jalife, Roberto A. Vazquez (2012) Implementation of configurable and multipurpose spiking neural networks on GPUs. Proceedings of the International Joint Conference on Neural Networks Avance sobre RNA 3G 1. Diseño de corriente de entrada • Roberto A. Vazquez, Jose Ambrosio, Guillermo Sandoval (2013). How to generate the input current for exciting a spiking neural model using the Cuckoo Search Algorithm. Cuckoo Search and Firefly Algorithm: Theory and Applications. Springer 2. Aplicaciones • • Vazquez, R. A. and J.-C. Q. Bernard Girau (2011). Visual attention using spiking neural maps. In: International Joint Conference on Neural Networks. IJCNN 2011, pp.2164-2171. Vázquez Espinoza de los Monteros R. A. (2011). A computational approach foro modeling the biological olfactory system during an odor discrimination task using spiking neurons. BMC Neurosciences, no. 12, (supp 1), p. 360. Resultados obtenidos • • • Diferentes problemas de reconocimiento de patrones 50% para entrenamiento y 50% para pruebas 30 experimentos Resultados obtenidos Resultados obtenidos Clasificación de cultivos Proyecto financiado con Recursos del fondo sectorial CONACYT-INEGI Resultados obtenidos Reconocimiento de olores Sistema de adquisición Aplicaciones • • • • Seguridad(detección de drogas, escuelas, aeropuertos) Detección de alcohol Salud (Anomalías en el aliento) Control de accesos Comentarios finales • • • A pesar de ser una línea de investigación muy joven, las redes neuronales de tercera generación han demostrado ser útiles en problemas relacionados con el reconocimiento de patrones. Los resultados obtenidos con una sola neurona, nos hacen pensar que cuando se trabaje con la integración de varias neuronas, permitirían aplicarlas en problemáticas de mayor complejidad. Todavía hay mucho que hacer, actualmente estamos trabajando en: 1. Evaluar diferentes estrategias de aprendizaje 2. Evaluar diferentes tipos de conectividad 3. Su implementación en arquitecturas paralelas 4. Aplicaciones relacionadas con el control, la predicción de series de tiempo y el procesamiento de imágenes ¡GRACIAS! Roberto A. Vázquez [email protected] https://sites.google.com/site/robertoavazquez/ http://zeus.lci.ulsa.mx/idt/sistemasinteligentes/