Preview only show first 10 pages with watermark. For full document please download

An´ Alisis Y Comparaci´ On De Algoritmos De Clasificaci´

   EMBED


Share

Transcript

Universidad de Costa Rica Facultad de Ingenier´ıa Escuela de Ingenier´ıa El´ ectrica An´ alisis y comparaci´ on de algoritmos de clasificaci´ on de se˜ nales cerebrales para una interfaz cerebro-computador Por: Diego Dumani Jarqu´ın Esteban Garita Rodr´ıguez Jos´ e Daniel Hern´ andez Vargas Jes´ us Leonel S´ anchez Vargas Ciudad Universitaria “Rodrigo Facio”, Costa Rica Julio de 2013 An´ alisis y comparaci´ on de algoritmos de clasificaci´ on de se˜ nales cerebrales para una interfaz cerebro-computador Por: Diego Dumani Jarqu´ın Esteban Garita Rodr´ıguez Jos´e Daniel Hern´andez Vargas Jes´ us Leonel S´anchez Vargas IE-9601 Seminario de Graduaci´ on Aprobado por el Tribunal: Lic. Mauricio Espinoza Bola˜ nos Representante del Director, Escuela de Ingenier´ıa El´ectrica Dr. Lochi Yu Lo Director, Comit´e Asesor Dr. Jos´e David Rojas Fern´andez Miembro, Comit´e Asesor Dr. Jaime Cascante Vindas Miembro, Comit´e Asesor M.Sc. Enrique Coen Alfaro Miembro del Tribunal Resumen En este trabajo se desarrollaron e implementaron algoritmos matem´ aticos para la clasificaci´ on de se˜ nales electroencefalogr´aficas dentro de una interfaz cerebro-computador, utilizando el software de adquisici´on OpenVibe y sets de datos externos e internos tomados en el Laboratorio de Investigaci´on en Ingenier´ıa Biom´edica de la Escuela de Ingenier´ıa El´ectrica de la Universidad de Costa Rica. Se implement´o el algoritmo del K-´esimo vecino m´ as pr´oximo, junto con una variaci´ on del algoritmo con distancia de Mahalanobis y con vectores alineados. Adem´ as, se implement´o una red neuronal Multilayer Perceptron, para ser comparados los distintos algoritmos al final de las pruebas de efectividad. El desempe˜ no de los algoritmos se analiz´o desde dos puntos de vista: efectividad y uso de recursos computacionales. Se asumi´ o que el uso de recursos est´a correlacionado con el tiempo de ejecuci´ on del algoritmo, dadas condiciones de hardware similares. Se encontr´o que el algoritmo del K-´esimo vecino m´ as pr´oximo permiti´o obtener efectividades mayores a las de la red neuronal. Sin embargo, la red neuronal tuvo un desempe˜ no de clasificaci´on superior al de las dos variaciones del algoritmo de vecinos m´ as pr´oximos. Se recomienda para pr´oximas investigaciones la implementaci´ on de algoritmos mixtos, cuya combinaci´on permita mejorar los ´ındices de efectividad. v ´Indice general ´ Indice de figuras ix ´ Indice de cuadros ix Nomenclatura xi 1 Introducci´ on 1.1 Justificaci´ on del proyecto . . . . . . . . . . . . . . 1.1.1 Estado del arte . . . . . . . . . . . . . . . . 1.1.2 Retos actuales . . . . . . . . . . . . . . . . 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Objetivo general . . . . . . . . . . . . . . . 1.2.2 Objetivos espec´ıficos . . . . . . . . . . . . . 1.3 Rol de los integrantes en la elaboraci´on del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 3 3 4 4 2 Plataforma OpenViBe 2.1 Escenario de imaginaci´ on motora 2.1.1 Adquisici´on . . . . . . . . 2.1.2 Entrenamiento . . . . . . 2.1.3 Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 6 6 7 3 Set de datos BCI competition 3.1 Justificaci´ on de su utilizaci´ on . . . . . . . . . . . . . . . . 3.2 Set de datos - BCI Competition IIIb . . . . . . . . . . . . 3.2.1 Resultados de la competici´on BCI IIIb . . . . . . . 3.2.2 Posici´on de los electrodos . . . . . . . . . . . . . . 3.2.3 Paradigma de realidad virtual usado con sujeto O3 3.2.4 Paradigma Basket usado con los sujetos S4 y X11 3.2.5 Descripci´ on de los datos en GDF . . . . . . . . . . 3.2.6 Descripci´ on de los datos en ASCII . . . . . . . . . 3.3 BCI competition IIIb reader - OpenViBE . . . . . . . . . 3.3.1 Salidas . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Configuraci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 9 10 11 12 13 13 14 14 14 14 4 Algoritmos de clasificaci´ on 4.1 Algoritmo del K-´esimo vecino m´ as pr´oximo . . . . . . . . . . . . . . . . . . . 4.1.1 Selecci´ on del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Pre-procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 17 17 . . . . . . . . . . . . vii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 4.3 4.4 4.1.3 Implementaci´ on del algoritmo . . . K-´esimo vecino m´ as pr´oximo por distancia 4.2.1 Implementaci´ on del algoritmo . . . Redes neuronales . . . . . . . . . . . . . . 4.3.1 Definici´on . . . . . . . . . . . . . . 4.3.2 Arquitecturas . . . . . . . . . . . . Multilayer perceptron . . . . . . . . . . . 4.4.1 Perceptron . . . . . . . . . . . . . 4.4.2 Multilayer perceptron . . . . . . . 4.4.3 Selecci´ on del algoritmo . . . . . . . 4.4.4 Descripci´ on del algoritmo . . . . . 4.4.5 Implementaci´ on del algoritmo . . . . . . . . . . . . . de Mahalanobis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Resultados 5.1 Algoritmo del K-´esimo vecino m´ as pr´oximo . . . . . . . . . 5.1.1 Resultados del algoritmo de vecinos m´ as pr´oximos . 5.1.2 Resultados algoritmo con distancia de Mahalanobis . 5.1.3 Resultados del algoritmo con vectores alineados . . . 5.1.4 Comparaci´ on entre los resultados . . . . . . . . . . . 5.2 Multilayer Perceptron . . . . . . . . . . . . . . . . . . . . . 5.2.1 Resultados del set de datos BCI competition . . . . 5.2.2 Diferenciaci´on respecto a otras implementaciones . . 6 Conclusiones y recomendaciones 6.1 Conclusiones . . . . . . . . . . . . . 6.1.1 K-esimo vecino m´ as pr´oximo 6.1.2 Multilayer Perceptron . . . . 6.2 Recomendaciones . . . . . . . . . . . 6.2.1 Multilayer Perceptron . . . . . . . . . Bibliograf´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 21 22 22 22 23 23 25 26 27 29 . . . . . . . . 33 33 33 33 34 35 36 37 39 . . . . . 41 41 41 41 42 42 45 viii ´Indice de figuras 2.1 2.2 Funcionamiento de interfaz cerebro computador de OpenViBe . . . . . . . . . . . Visualizador de flechas disponible para etapa de entrenamiento . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 Funcionamiento de un filtro Notch. . . . . . . . . . . . . . . Posici´on de electrodos para datos del BCI Competition IIIb Paradigma utilizado con el sujeto O3. . . . . . . . . . . . . Paradigma utilizado con los sujetos S4 y X11. . . . . . . . . Lector del set de datos del BCI Competition IIIb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 12 13 13 14 4.1 4.2 4.3 4.4 4.5 4.6 4.7 Preprocesamiento utilizado en escenario de imaginaci´ on motora Muestreo temporal y en potencia escenario imaginaci´ on motora Modelo general de una neurona . . . . . . . . . . . . . . . . . . Flujo de se˜ nal de una perceptron . . . . . . . . . . . . . . . . . Esquema de clasificaci´on caso m´ as sencillo para un perceptron Modelo general de un multilayer perceptron . . . . . . . . . . . Diagrama UML del dise˜ no implementado de la MLP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 19 23 24 24 25 29 3.1 3.2 Resumen de las pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pendiente m´ axima de la informaci´ on mutua en los tres sujetos . . . . . . . . . . 10 11 4.1 4.2 Canal izquierdo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Canal derecho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 19 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Resultado del algoritmo de k-´esimo vecino m´ as pr´oximo . Resultado del algoritmo de distancia de Mahalanobis . . . Resultado del algoritmo con vectores alineados . . . . . . Efectividad del algoritmo del k-´esimo vecino m´ as pr´oximo Efectividad del algoritmo de distancia de Mahalanobis . . Efectividad del algoritmo con vectores alineados . . . . . Mejores porcentajes de efectividad en la MLP. . . . . . . Efectividad en la MLP . . . . . . . . . . . . . . . . . . . . Tiempo de ejecuci´ on en una MLP. . . . . . . . . . . . . . 33 34 35 35 36 36 38 38 39 . . . . . 5 7 ´Indice de cuadros ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nomenclatura BCI Interfaz cerebro computador. ECoG Electrocorticograf´ıa. EEG Electroencefalograf´ıa. f M RI Resonancia magn´etica funcional. f N IRS Espectroscop´ıa funcional. ICE Electrodos intracorticales. LIIB Laboratorio de Investigaci´on en Ingenier´ıa Biom´edica de la Universidad de Costa Rica. M EG Magnetoencefalograf´ıa. M LP Multilayer perceptron. xi 1 Introducci´ on Las Interfaces Cerebro-Computador (BCI) han extendido sus campos de aplicaci´on, dejando de enfocarse solamente en aplicaciones m´edicas sino tambi´en en juegos, interacci´ on humanocomputadora, o cualquier tarea que se beneficie de este tipo de comunicaci´ on. La definici´on de Interfaz Cerebro-Computador se ha expandido para incluir toda interfaz que utilice se˜ nales cerebrales para controlar un dispositivo o para ajustar la comunicaci´ on usuario-dispositivo (van Erp, 2012). Existen diversas tecnolog´ıas de medici´ on en sistemas BCI: • Electrocorticograf´ıa (ECoG) • Electrodos intracorticales (ICE) • Espectroscop´ıa funcional (fNIRS) • Resonancia magn´etica funcional (fMRI) • Magnetoencefalograf´ıa (MEG) • Electroencefalograf´ıa (EEG) Las ondas electroencefalogr´aficas (EEG) son las m´ as utilizadas, por ser de f´acil obtenci´on y utilizar una t´ecnica no-invasiva. Sin embargo tienen algunas desventajas como el ruido de medici´ on, colocaci´on de electrodos, entre otras (van Erp, 2012)(Yong, 2005). Una BCI necesita de un hardware, constituido b´asicamente por sensores (electrodos), amplificador y computador. Adem´ as, cuenta con un software que se encarga de: • Preprocesamiento • Extracci´ on de caracter´ısticas (feature extraction) • Clasificaci´ on La clasificaci´on de las ondas es la que permitir´a asociar a cada caracter´ıstica como parte de una clase. Luego a las clases se les asigna una funci´on de control determinada, por ejemplo, la orden de mover un cursor hacia la izquierda o la derecha. 1.1 Justificaci´ on del proyecto Actualmente el Laboratorio de Investigaci´on en Ingenier´ıa Biom´edica de la Universidad de Costa Rica (LIIB) cuenta con el hardware y software necesario para la implementaci´ on de una interfaz cerebro-computador basada en electroencefalograma (EEG). 1 2 1 Introducci´ on Se cuenta con un hardware OpenEEG, el cual permite de dos a seis canales de informaci´ on. El software a utilizar es el OpenVibe, de licencia libre, que permite hacer modificaciones en cuanto a la adquisici´on y procesamiento de las se˜ nales deseadas. Una vez adquiridas y preprocesadas, las se˜ nales deben pasar por una extracci´on de sus caracter´ısticas y posteriormente ser clasificadas asign´ andoles una “clase”. Para esta clasificaci´on se necesita implementar un algoritmo matem´ atico capaz de distinguir si las caracter´ısticas extra´ıdas pertenecen a determinada clase o no. Esta investigaci´on se enfocar´a en la identificaci´ on de im´agenes motoras, es decir, reconocer si el usuario est´a pensando en izquierda o derecha, para controlar alguna acci´on como mover una extremidad artificial o un cursor en un juego. Uno de los retos para la efectividad de estos algoritmos es la clasificaci´on ‘on-line’ que debe basarse en una sola prueba (‘single-trial’) para clasificar, en tiempo real, las se˜ nales recibidas (Blankertz, 2002). Esto implica la necesidad de un entrenamiento previo donde la m´ aquina identifica las caracter´ısticas que se pueden asociar con cada clase, para dotar de un criterio de decisi´ on en la etapa online. Existen distintos m´etodos de clasificaci´on, cuyas propiedades se deben analizar para definir el m´ as apropiado. Estas propiedades se seleccionan seg´ un la taxonom´ıa del clasificador (Al-ani y Trad, 2010): • Generativo - Discriminativo: Los clasificadores generativos ‘aprenden’ las clases, y seg´ un la informaci´ on obtenida, calculan la probabilidad para cada clase y escogen la m´ as probable. Los discriminativos solamente aprenden la manera de discriminar entre clases y clasifican un vector directamente. • Est´atico - Din´ amico: Los est´aticos solo consideran la informaci´ on temporal actual, mientras que los din´ amicos consideran tambi´en una secuencia de vectores futuros (en la etapa de entrenamiento). • Estable - Inestable: En los clasificadores estables, peque˜ nos cambios en los entrenamientos no afectan considerablemente el desempe˜ no, mientras que en los inestables una peque˜ na variaci´ on podr´ıa implicar grandes cambios en el desempe˜ no del clasificador. • Regularizado: La regularizaci´on permite controlar la complejidad del clasificador, as´ı como reducir los valores at´ıpicos durante entrenamientos. Entre los tipos de clasificadores m´ as utilizados en BCI est´ an: Clasificadores de discriminante lineal, redes neuronales, clasificadores Bayesianos no lineales, clasificadores del ‘vecino m´ as cercano’ y combinaciones. Una explicaci´on m´ as amplia de cada tipo puede encontrarse en las referencias (Rezaei, 2006)(Al-ani y Trad, 2010)(Garrett, 2003)(Lotte, 2007). 1.1.1 Estado del arte En el tema de clasificadores y su desempe˜ no en BCIs, existe investigaci´on extensa, y hasta el momento, no se ha logrado obtener un 100 % de acierto al clasificar se˜ nales EEG. En (Blankertz, 2002), se define un m´etodo para clasificaci´on ‘pseudo-online’ de varias tareas utilizando 27 electrodos. Para la clasificaci´on del movimiento izquierda-derecha, el 1.2. Objetivos 3 porcentaje de error m´ as bajo obtenido fue 10 % para pruebas selectas. Se llego a este porcentaje gracias a una combinaci´on de clasificadores del k-vecino m´ as cercano, discriminante de fisher y m´ aquinas de vectores de soporte. Yong (2005) obtiene niveles de acierto entre 57 % y 91 % utilizando los m´etodos descritos en (Blankertz, 2002). Esta vez, utilizando solo seis canales y clasificando entre mano derecha o mano izquierda. En (Balakrishnan y Puthusserypady, 2005) se obtiene una efectividad m´ axima del 64 % al utilizar una red neuronal Multilayer Perceptron, con 99 neuronas ocultas. En (Li, 2010), se propone una red neuronal de mundo peque˜ no (SWNN). Utilizaron dos sets independientes de 12 canales y 4 canales respectivamente, obteniendo mejores resultados para los datos del set de canales ‘peque˜ no’. El mejor ´ındice de acierto fue de 92 %, al clasificar entre dos clases: mano derecha-pie derecho. En (Frolov, 2011) se utiliza el an´ alisis del clasificador por an´ alisis de tensor com´ un, con 22 electrodos y cuatro tareas distintas, pero obtienen un nivel de acierto m´ aximo de 79 %. Jia utiliza en (Jia, 2011) redes neuronales de propagaci´on de banda (red BP) y redes neuronales probabil´ısticas (PNN). Utiliz´ o se˜ nales EEG de 6 canales para clasificar entre dos clases: arriba o abajo. Obtuvo un desempe˜ no m´ aximo de 90 %. Otras investigaciones, como en (Gouy-Pailler, 2010), utilizan 22 electrodos y separaci´ on de informaci´ on de imaginaci´ on motora en cuatro clases. Se obtuvieron tasas de acierto que no alcanzaron el 90 %. 1.1.2 Retos actuales En muchas de las referencias, se ha trabajado con m´ as de 10 canales. El equipo disponible en el LIIB tiene la limitaci´on en cuanto a la cantidad m´ axima de seis canales. Sin embargo, como se ha demostrado en investigaciones anteriores, el exceso de informaci´ on tambi´en puede constituir una desventaja, implicando menor desempe˜ no. Por tanto, se espera que los seis canales disponibles sean suficientes para clasificar la informaci´ on satisfactoriamente. Asimismo, en las investigaciones usualmente se trabaja con m´ as de dos sujetos de prueba. Los desempe˜ nos obtenidos han diferido hasta en 40 % para pruebas con el mismo m´etodo pero distintas personas (Li, 2010)(Jrad, 2011)(Gouy-Pailler, 2010)(Peters, 2001). Entre los retos importantes est´a encontrar un algoritmo que pueda clasificar con un alto nivel de acierto, pero manteniendo constante dicho desempe˜ no a lo largo de todas las pruebas para uno o distintos sujetos. 1.2 1.2.1 Objetivos Objetivo general Implementar, validar y comparar algoritmos de clasificaci´ on de se˜ nales electroencefalogr´aficas para su uso en una Interfaz Cerebro-Computador. 4 1 Introducci´ on 1.2.2 Objetivos espec´ıficos • Implementar algoritmos matem´ aticos para la clasificaci´on de se˜ nales electroencefalogr´aficas de una interfaz cerebro-computador utilizando el software de adquisici´on OpenViBe y sets de datos externos e internos (tomados en el LIIB). • Implementar redes neuronales artificiales para la clasificaci´on de se˜ nales electroencefalogr´aficas de una interfaz cerebro-computador. • Realizar entrenamientos para cada algoritmo con distintas personas en el LIIB. • Validar cada algoritmo para comprobar la efectividad al clasificar una orden de imaginaci´ on motora. • Analizar los algoritmos implementados con ´ındices de efectividad en la clasificaci´on de las se˜ nales. • Analizar las redes neuronales con ´ındices de exactitud en la clasificaci´on de las se˜ nales. • Comparar el desempe˜ no de los algoritmos de clasificaci´on con el de las redes neuronales. 1.3 Rol de los integrantes en la elaboraci´ on del trabajo Los cuatro integrantes del grupo trabajaron en conjunto para la elaboraci´on del documento escrito y coordinaron para obtener coherencia en los resultados. Adem´ as, cada uno asumi´ o la coordinaci´on de una secci´ on espec´ıfica de la investigaci´on: • Esteban Garita Rodr´ıguez: Coordinaci´on del desarrollo te´ orico de los algoritmos K´esimo vecino m´ as cercano, con distancia de Mahalanobis y con vectores alineados. • Jes´ us Leonel S´anchez Vargas: Coordinaci´on de la implementaci´ on de los algoritmos K-´esimo vecino m´ as cercano, con distancia de Mahalanobis y con vectores alineados. • Diego Dumani Jarqu´ın: Coordinaci´on del desarrollo te´ orico de la red neuronal Multilayer Perceptron. • Jos´e Daniel Hern´andez Vargas: Coordinaci´on de la implementaci´ on de la red neuronal Multilayer Perceptron. La instalaci´ on de los m´ odulos necesarios, la implementaci´ on de los algoritmos K-´esimo vecino m´ as cercano, con distancia de Mahalanobis y con vectores alineados, y el an´ alisis de sus resultados estuvieron a cargo de Esteban Garita y Jes´ us S´anchez. La implementaci´ on de la red neuronal MLP, as´ı como el an´ alisis de sus resultados estuvieron a cargo de Diego Dumani y Jos´e Daniel Hern´andez. 2 Plataforma OpenViBe OpenVibe es una plataforma de c´odigo abierto para el dise˜ no, prueba y uso de BCI, consiste en una serie de m´ odulos que pueden ser f´acil y eficientemente integrados para aplicaciones en tiempo real y aplicaciones de realidad virtual (Renard et al., 2010). Se utiliza una arquitectura basada en un n´ ucleo que garantiza servicios globales a las aplicaciones y los plug-in o dispositivos, para que sea extensible, en el caso de un nuevo plugin este puede ser agregado din´ amicamente y usado por el n´ ucleo en aplicaciones, sin necesidad de recompilar la aplicaci´on o el n´ ucleo. Adem´ as la separaci´ on en componentes elementales le agrega flexibilidad. Para cada aplicaci´on, se basa en un n´ ucleo com´ un, el cual delega tareas a los plug-in, por medio del concepto de caja. Esto puede ser apreciado en la figura 2.1. Figura 2.1: Esquema del funcionamiento de la interfaz cerebro computador de OpenViBe. Este concepto es de vital importancia en la plataforma, maneja la comunicaci´ on de las entradas y salidas con otras cajas, sirve como interfaz en el pipeline, adem´ as su comportamiento puede ser adaptado a las necesidades de la aplicaci´on. Los plug-in se encuentran divididos en tres familias: • Los manejadores plug-in: usados para agregar nuevos dispositivos de adquisici´on. B´ asicamente se encarga de obtener las se˜ nales del dispositivo y darlas a la plataforma en una forma general. • Los plug-in de algoritmos: son m´ odulos que contienen la implementaci´ on de algoritmos que pueden resolver tareas m´ as complejas, estos pueden ser agregados y extra´ıdos f´acilmente de las cajas que los utilizan, as´ı como puede haber gran n´ umero de ellos para cada caja. 5 6 2 Plataforma OpenViBe • Los plug-in de cajas: son m´ odulos que sirven como interfaz entre otras cajas y el pipeline o tuber´ıa general y el algoritmo escogido para realizar la tarea espec´ıfica, re-direccionan y codifican las entradas y salidas hacia los algoritmos. 2.1 Escenario de imaginaci´ on motora Un escenario dentro de esta plataforma se puede ver como un conjunto de etapas las cuales se programan para la obtenci´on de se˜ nales provenientes del EEG, tal que sea capaz de entender estas se˜ nales y producir comandos para una aplicaci´on de realidad virtual, un juego o algo tan simple como el manejo de flechas que representen direcciones ya sea izquierda o derecha. Este es el caso del escenario de imaginaci´ on motora. Dentro de la plataforma OpenVibe, y debido a su modularidad es necesario dividir las tareas de este en al menos tres etapas indispensables: La etapa de adquisici´on de datos, la etapa de entrenamiento y la etapa de funcionamiento, en ingl´es llamada “online”. Cabe destacar que la plataforma OpenVibe posee un ambiente de programaci´ on gr´ afico basado en m´ odulos que se interconectan por medio de sus salidas y entradas definidas, as´ı la programaci´ on de estos escenarios consiste en la ubicaci´ on de m´ odulos disponibles los cuales se pueden interconectar a trav´es de l´ıneas dependiendo del tipo de entrada o salida. 2.1.1 Adquisici´ on La etapa de adquisici´on de datos comprende un esquema donde se tienen el m´ odulo encargado de obtener los datos del dispositivo EEG conectado a la computadora el cual censa las se˜ nales desde un par de electrodos diferenciales, los cuales se denominar´a de ahora en adelante como canales, estos canales se ubican en regiones de la cabeza que se seleccionan seg´ un se requiera. Retomando la etapa de adquisici´on, es necesario un m´ odulo que se encargue de la visualizaci´on, de aquello sobre lo cual se est´a entrenando, para el caso de imaginaci´on motora se tiene un visualizador de flechas que se muestran aleatoriamente hacia la izquierda y derecha, este m´ odulo se basa en el lenguaje de programaci´ on LUA, la idea es definir un n´ umero igual de cantidad de apariciones de la flecha izquierda y derecha , en rangos de tiempo programables, en los cuales se tomaran las se˜ nales sin ning´ un procesamiento para guardarse de forma binaria en un archivo “.ov”, la cual es una labor independiente de otro m´ odulo. Es importante que en el momento de guardar las se˜ nales se guarde con ellas el tipo o clase que representan, esto es la direcci´on de la flecha, la cual se define como una clase. Esta etapa de adquisici´on comprende la etapa de toma de datos para la fase de entrenamiento, y su duraci´ on depende de la cantidad de repeticiones que se hagan. 2.1.2 Entrenamiento En la etapa de entrenamiento, se toma el archivo de se˜ nales puras creado en la etapa anterior. Aqu´ı deben realizarse dos pasos importantes, el primero es el pre-procesamiento de las se˜ nales, para producir los vectores de datos o de caracter´ısticas, con los cuales pueda darse el entrenamiento del clasificador, y la segunda parte es realizar este entrenamiento a trav´es de los m´ odulos llamados “Classifier Trainer”, los cuales funcionan como cajas o interfaces 2.1. Escenario de imaginaci´ on motora 7 generales de entrenamiento para todos los algoritmos de clasificaci´on implementados en la plataforma. Para el pre-procesamiento, el escenario utiliza una combinaci´on de procesamiento temporal y en frecuencia, pero antes de eso se realiza una selecci´ on de los canales a usar por medio del m´ odulo “Channel Selector”, este etiqueta con el nombre de un canal las se˜ nales provenientes de ese. La figura 2.2 muestra un ejemplo de la interfaz gr´ afica para el muestreo de flechas. Figura 2.2: Ejemplo del visualizador de flechas disponible para la etapa de entrenamiento del escenario de imaginaci´ on motora de OV. Luego de realizar el pre-procesamiento de las se˜ nales y convertir los datos en vectores de tama˜ no finito, uno por cada flecha muestreada; es que el m´ odulo clasificador, utiliza los vectores de prueba para entrenar el algoritmo que se haya escogido, y producir un archivo de configuraci´ on, que contenga la forma de interpretar las fronteras de decisi´ on del algoritmo utilizado. Al final el entrenador manda una se˜ nal de terminaci´ on cuando el proceso culmina, la cual otro m´ odulo la interpreta y detiene la simulaci´on. Un detalle importante de recalcar es el hecho de que esta etapa puede llevarse a cabo sin el uso del dispositivo EEG, debido a que la etapa de adquisici´on habilita los datos previamente tomados. 2.1.3 Online La u ´ltima etapa es la llamada “online”, esta etapa utiliza el m´ odulo adquisidor de se˜ nales, las cuales se env´ıan a un pre-procesamiento id´entico al de la etapa de entrenamiento. Teniendo los vectores de datos, estos se env´ıan al clasificador, el cual devuelve una se˜ nal indicando la clase que mejor se ajusta, la cual se convierte en un comando que el visualizador entiende como una flecha a mostrar en una direcci´on especifica a la clase. 3 Set de datos BCI competition 3.1 Justificaci´ on de su utilizaci´ on A˜ nos atr´ as se inici´o el proyecto llamado BCI Competition, el cual tiene como objetivo promover la creaci´ on de Interfaces Cerebro Computador para la clasificaci´on de se˜ nales. Estas competiciones consist´ıan en brindar a los participantes sets de datos capturados en experimentos BCI, con los cuales deb´ıan implementar algoritmos capaces de decodificar dichos datos de la forma m´ as exacta posible de acuerdo a lo estipulado en las reglas de cada una de las competiciones (Blankertz, 2004). Dado que estas competiciones ya se realizaron y tanto los resultados como los datos de estas siguen en la web, se decidi´o buscar entre las competiciones la que se adecuara m´ as a los experimentos previamente realizados utilizando el openViBE. Para esto se investig´ o y se encontr´o que la competici´on BCI IIIb fue basada en un escenario de imaginaci´on motora, muy similar al del OpenViBE. Permitiendo as´ı que fuera posible no solo comparar los resultados obtenidos con los resultados de la competici´on sino tambi´en con las mediciones hechas mediante el OpenViBE y el OpenEEG. Otro factor que motiv´o la selecci´ on de este set de datos fue que en OpenViBE existe un decodificador de datos, motivando as´ı la idea de que se pudiera adaptar f´acilmente la lectura de los datos con el escenario de imaginaci´ on motora de OpenViBE, previamente comentado. 3.2 Set de datos - BCI Competition IIIb El set de datos IIIb fue prove´ıdo por el Instituto para Interfaces Humano-Computador de la Universidad de Tecnolog´ıa Graz - Laboratorio BCI. Contiene datos de un EEG de dos clases, de 3 sujetos. La gran cantidad de informaci´ on es u ´til para el uso de clasificadores no-estacionarios, ya que es razonable esperar que los clasificadores variables en el tiempo tengan un mejor rendimiento que los clasificadores estacionarios (est´ aticos). Por otra parte, bas´ andose en la experiencia de la segunda competici´on BCI (Blankertz, 2004)(Blankertz, 2003a)(Blankertz, 2003b), el tiempo de respuesta de cada m´etodo debe ser evaluado. El experimento consiste en 3 sesiones por cada sujeto. Cada sesi´ on est´a formada de 4 a 9 corridas. Los datos de todas las corridas fueron concatenados y convertidos en formato GDF (Schl¨ ogl, 2003). Las grabaciones fueron hechas con un amplificador EEG bipolar. El EEG fue muestreado a 125 Hz, y fue filtrado entre 0.5 Hz y 30 Hz con un filtro Notch o Rechaza-Banda (ver figura 3.1). 9 10 3 Set de datos BCI competition Figura 3.1: Funcionamiento de un filtro Notch. Para poder evaluar el retraso fue necesario que los participantes tomaran en cuenta que sus clasificadores deb´ıan tener una salida de clasificaci´on continua y adem´ as demostrar que el uso de sus algoritmos era causal. Esta salida fue validada usando la informaci´ on mutua de los datos a trav´es del tiempo (Schl¨ogl, 2002). El m´etodo con el m´ aximo incremento de informaci´ on mutua (IM ) (pendiente m´ axima calculada como: IM (t)/(t − 3) para t > 3,5s) fue usado para validaci´ on. Para neutralizar las repuestas a est´ımulos involuntarios, solo fueron tomados los datos para t > 3,5s. La “pendiente” de la informaci´ on mutua cuantifica el tiempo de respuesta. El algoritmo de evaluaci´on fue brindado en (Schl¨ogl, 2005a). Un resumen de las pruebas se puede encontrar en el cuadro 3.1. Cuadro 3.1: Resumen de las pruebas, utilizando canales C3 y C4. 3.2.1 Sujeto Paradigma Feedback N◦ de ensayos Clases O3 S4 X11 Realidad virtual Basket, clasificador adaptado Basket, clasificador adaptado 4s − 8s 4s − 7s 4s − 7s 640 1080 1080 Izq-Der Izq-Der Izq-Der Resultados de la competici´ on BCI IIIb Fueron recibidas siete propuestas para este set de datos. Las siguientes tres obtuvieron los mejores resultados de esta competici´on. Ver cuadro 3.2. 11 3.2. Set de datos - BCI Competition IIIb Cuadro 3.2: Pendiente m´ axima (con t0 = 3s) de la informaci´ on mutua [bits/s] en los tres sujetos (O3, S4, X11) y su media obtenida por los tres competidores C, A y G. Posici´on Competidor(es) Media O3 S4 X11 1 2 3 C A G 0.32 0.25 0.14 0.17 0.16 0.20 0.44 0.42 0.09 0.35 0.17 0.12 • A Autores: O.Burmeister, M.Reischl, R. Mikut (Forschungszentrum Karlsruhe, Germany), M´etodo: Bandpower (BP), ratios y diferencias de BP; MANOVA para selecci´ on de caracter´ısticas; SVM y linear combiner. • C Autor: S. Lemm (Fraunhofer-FIRST IDA, Berlin, Germany), M´etodo: ERP y ERD (mu y beta), modelo de clasificaci´on probabil´ıstico, clasificador acumulativo. • G Autores: Xiaomei Pei, Guangyu Bin (Institute of Biomedical Engineering of Xian Jiaotong University, Xian, China), M´etodo: FFT con ventanas de Hanning de 1 segmento; an´ alisis discriminante Fisher. El principal prop´ osito fue evaluar que los algoritmos causales eran capaces de proveer realimentaci´ on continua tan r´ apida y precisa como fuera posible. Para evaluar este objetivo, se us´ o la ‘pendiente’ del tiempo de la informaci´ on mutua como criterio de evaluaci´on y adem´ as los participantes debieron brindar el c´odigo fuente para probar causalidad. A pesar del requisito de enviar el software, siete participantes enviaron los resultados. Todos los participantes enviaron el software. En varios casos el programa no pudo ser probado, debido a algunos componentes perdidos. El c´odigo fue revisado visualmente. En uno de los casos fue necesario agregar un retraso adicional de 50 muestras (0.4s). El algoritmo ganador es descrito en (Lemm, 2006). Y una descripci´on detallada de los resultados se encuentra en (Schl¨ogl, 2005b). 3.2.2 Posici´ on de los electrodos La posici´on en que se ubicaron los electrodos, para la toma de datos del BCI Competition IIIb se muestra en la figura 3.2. 12 3 Set de datos BCI competition Figura 3.2: Posici´on en que fueron colocados los electrodos para colectar los datos del BCI Competition IIIb. 3.2.3 Paradigma de realidad virtual usado con el sujeto O3 El paradigma de realidad virtual usado con el sujeto O3 se dise˜ n´o con base en los siguientes tiempos: • Duraci´ on del ensayo: 8000 ms • Se˜ nal de disparo: 2000 ms • Se˜ nal de listo (fixation cross): [2000 - 8000] ms • Realimentaci´ on (Feedback): [4000 - 8000] ms • Tiempo de la se˜ nal visual: [3000 - 4250] ms • Se˜ nal ac´ ustica: 3000 ms Lo anterior se representa de forma gr´ afica en la figura 3.3. 3.2. Set de datos - BCI Competition IIIb 13 Figura 3.3: Paradigma utilizado con el sujeto O3. 3.2.4 Paradigma Basket usado con los sujetos S4 y X11 Para los sujetos S4 y X11 se utiliz´o el paradigma Basket. Este consiste en una bola que cae a velocidad constante, la cual debe ser ubicada por el sujeto en la canasta izquierda o derecha (Blankertz, 2004). Este paradigma se representa gr´ aficamente en la figura 3.4. Figura 3.4: Paradigma utilizado con los sujetos S4 y X11. 3.2.5 Descripci´ on de los datos en GDF Los datos son almacenados en formato GDF y pueden ser cargados en Matlab con Biosigtoolbox (versi´ on 0.81 o superior) usando el comando [s, HDR] = sload(filename). El dato s puede contener N aN ’s; esto indica una pausa entre las corridas o que el convertidor anal´ogico digital estaba saturado. Por otra parte, todos los eventos (seg´ un el paradigma) son almacenados de acuerdo con la tabla de c´odigos de eventos (eventcodes.txt). El inicio de cada ensayo (t = 0 s) puede ser obtenido de HDR.TRIG. Las etiquetas de clase son almacenadas en HDR.Classlabel. HDR.Classlabel puede obtener los valores 1, 2 o N aN . Donde los valores 1 y 2 indican las etiquetas de cada clase de los sets de entrenamiento, N aN indica los ensayos de los sets de prueba. 14 3 Set de datos BCI competition 3.2.6 Descripci´ on de los datos en ASCII Cada uno de los archivos originales *.gdf es partido en varios archivos en formato ASCII de la siguiente forma: • s.txt: Se˜ nal continua EEG. Cada l´ınea representa una medici´ on en el tiempo, y cada columna representa un canal o clase. no es el n´ umero de ensayos) indicando el • HDR TRIG.txt: Contiene un vector (el tama˜ inicio de cada ensayo. En unidades por muestra, donde cada l´ınea del s.txt representa una muestra. no es el n´ umero de ensayos) definiendo • HDR Classlabel.txt: Contiene un vector (el tama˜ las etiquetas de las clases de cada ensayo. Las etiquetas de clase ‘NaN’ identifican ensayos de prueba (utilizados para definir el rendimiento del clasificador) y las etiquetas ‘1’ o ‘2’ se usan para diferenciar ensayos de la etapa de entrenamiento. Al igual que en el formato GDF. 3.3 BCI competition IIIb reader - OpenViBE Este m´ odulo de OpenViBE lee las se˜ nales, est´ımulos y etiquetas de clase del BCI competition IIIb, usando los datos en formato ASCII como entrada. Figura 3.5: Lector del set de datos del BCI Competition IIIb. 3.3.1 Salidas • Se˜ nal: Contiene las mediciones o muestras de los ensayos. • Est´ımulos: Provee informaci´ on acerca de los est´ımulos que ocurrieron durante los ensayos, seg´ un identificadores est´andar de OpenViBE. 3.3.2 Configuraci´ on A continuaci´ on se mencionan los archivos de configuraci´ on de OpenVIBE, su nombre y valor predeterminado. 3.3. BCI competition IIIb reader - OpenViBE 15 • Archivo de se˜ nales: Nombre del archivo de se˜ nales del set de datos (“* s.txt”). Valor predeterminado: []. • Archivo Trigger: Nombre del archivo de se˜ nales del set de datos (“* HDR TRIG.txt”). Valor predeterminado: []. • Archivo de etiquetas: Nombre del archivo de se˜ nales del set de datos (“* HDR Classlabel.txt”). Valor predeterminado: []. • Archivo de artefacto: Nombre del archivo de se˜ nales del set de datos (“* HDR ArtifactSelection.txt”). Valor predeterminado: []. • Archivo de etiquetas verdaderas (resultados): Nombre del archivo de se˜ nales del set de datos (“true labels *.txt”). Valor predeterminado: []. • Muestras por buffer: N´ umero de muestras por buffer. Valor predeterminado: [32]. • Offline: Si se est´a en modo offline o no. Valor predeterminado: [false]. • Train: Toma en cuenta las etiquetas marcadas como ensayos o no. Valor predeterminado: [true]. • Test: Toma en cuenta las etiquetas marcadas como pruebas o no. Valor predeterminado: [false]. • Conservar artefactos: Toma en cuenta las etiquetas marcadas como “artifact” o no. Valor predeterminado: [false]. • Tama˜ no del ensayo: Tama˜ no del ensayo en segundos. Valor predeterminado: [8.0]. • Se˜ nal de disparo: Tiempo para el cual la se˜ nal va a ser mostrada en el ensayo. Valor predeterminado: [3.0]. • Se˜ nal de realimentaci´ on: Tiempo para el cual inicia la realimentaci´ on en el ensayo. Valor predeterminado: [4.0]. 4 Algoritmos de clasificaci´ on 4.1 Algoritmo del K-´ esimo vecino m´ as pr´ oximo Este es el algoritmo m´ as simple usado en m´ aquinas de aprendizaje como algoritmo clasificador. Se caracteriza por necesitar un set de entrenamiento v´alido, esto es un conjunto de muestras correctamente clasificadas seg´ un las clases que se tengan. Por lo general se puede entender el algoritmo en la clasificaci´on de vectores, con base en la distancia eucl´ıdea entre dos vectores de la misma dimensi´on, esta se puede utilizar como medida de proximidad. Distancia que se obtiene como: v u n uX d = t (xi − yi )2 , (4.1) i=0 Donde x y y representan dos vectores n dimensionales. N´ otese que el c´omputo de la clasificaci´on se lleva a cabo enteramente en la etapa de clasificaci´on, dado que el entrenamiento solo se utiliza para la recolecci´on de conjunto de muestras v´alidas. Este algoritmo depende mucho de cuan correcto es el set de entrenamiento, y del tiempo que este se mantenga v´alido en la clasificaci´on. El nombre de k-´esimo se basa en idea de tomar la decisi´ on en k muestras o k comparaciones con las muestras de entrenamiento. Desde el punto de vista de los vectores, quiere decir basado en k distancias del vector a clasificar con k vectores de entrenamiento. Donde la decisi´ on se puede tomar por votaci´ on de las distancias m´ as cercanas, es claro que las distancias deben tomarse para la misma cantidad de vectores de referencia para cada clase. Para este algoritmo tambi´en se pueden utilizar pesos para cada vector, si es el caso que quiera darse una mayor importancia de decisi´ on a aquellos vectores que est´en m´ as cercanos en cierta medida. 4.1.1 Selecci´ on del algoritmo Se seleccion´ o este algoritmo por la simplicidad del mismo, facilidad de implementaci´ on y control sobre todo los par´ ametros de dise˜ no del mismo. Este es un algoritmo basado en entrenamiento y pese a su simplicidad, ha mostrado buenos resultados en ambientes BCI. 4.1.2 Pre-procesamiento El pre-procesamiento de las se˜ nales puras se realiza para eliminar el ruido de las se˜ nales con informaci´ on relevante. Es conocido que las se˜ nales obtenidas desde un EEG, contienen mucho ruido, proveniente de la actividad el´ectrica de los ojos EOG, y de los m´ usculos EMG (de la 17 18 4 Algoritmos de clasificaci´on cara y la mand´ıbula), adem´ as de la actividad el´ectrica proveniente del todas las partes de cerebro. El objetivo es poder filtrar solo aquella informaci´ on, la cual es la m´ as probable est´e asociada con la toma de decisi´ on. Se utilizan filtros pasa bajos y pasa bandas para restringir las bandas de frecuencia en las cuales se conoce que hay actividad neurofisiol´ogica, por ejemplo es usada la banda de 8-30 Hz que contiene ritmos sensorimotores (µ y β). Los filtros espaciales tambi´en son otra opci´ on, estos se utilizan para realizar combinaciones lineales de la informaci´ on contenida en los diferentes canales, asignando un peso espec´ıfico para cada canal. Por ejemplo, en el caso de la plataforma OpenVibe “Surface Laplacian”, es u ´til para dar m´ as importancia a algunos canales que a otros, e incluso ignorar canales si es necesario. Para el algoritmo del K-´esimo vecino m´ as pr´oximo se utiliza el pre-procesamiento utilizado en el escenario de imaginaci´ on motora el cual consiste en los bloques que muestra la figura 4.1 Figura 4.1: Preprocesamiento utilizado en el escenario de imaginaci´on motora. El primer m´ odulo se utiliza para asociar un conjunto de datos puros con un canal, los cuales en este caso son los canales C3; C4; CP3; CP4; CF3; CF4. El segundo m´ odulo, es el filtro espacial que realiza la combinaci´on lineal de datos presentada en los cuadros 4.1 y 4.2, para obtener dos canales de salida. Se ve como los canales de inter´es C3 y C4 son los que reciben un peso mayor en el filtro. Cuadro 4.1: Canal izquierdo. C3 C4 CF3 CF4 CP CP4 4 0 -1 0 -1 0 19 4.1. Algoritmo del K-´esimo vecino m´ as pr´oximo Cuadro 4.2: Canal derecho. C3 C4 CF3 CF4 CP CP4 0 4 0 -1 0 -1 El m´ odulo filtro temporal, es un filtro en frecuencia tipo Butterworth pasa banda de 8-24Hz para filtrar las bandas de frecuencia relacionadas con la actividad motora. Lo anterior se realiza sobre las se˜ nales puras, el proceso siguiente es el muestreo temporal y en potencia. Como lo indica el diagrama de la figura 4.2. Figura 4.2: Muestreo temporal y en potencia en el escenario de imaginaci´on motora. El proceso se realiza para ambos canales izquierdo y derecho, donde el primer m´ odulo se encarga de definir la frecuencia de muestreo y el segundo m´ odulo la duraci´ on de estas. Para el escenario de imaginaci´ on motora se usa la definida ya en el escenario, la cual consiste en tomar datos en una ventana de un segundo cada dieciseisavo de segundo, y con el segundo m´ odulo se limita el tiempo de muestreo de datos a cuatro segundos en este caso. Es decir si se asume que cada segundo se comienzan 16 tomas de datos, se tienen 48 tomas de datos en tres segundos, m´ as 1 toma permitida en el cuarto segundo, dado que solamente esta podr´ıa terminar en el tiempo l´ımite. As´ı se tiene un total de 49 tomas de datos, lo cual define el tama˜ no del vector de datos o caracter´ısticas, el cual se conforma en el “Feature aggregator”. Adem´ as se utilizan m´ odulos que funcionan como ejecutores de funciones, en OpenVibe llamados “Simple DSP”, con este tipo de m´ odulo se logra tomar cada una de las tomas de datos que se almacenan en buffers, y elevarlas al cuadrado con el fin de eliminar se˜ nales negativas, luego se obtiene el promedio de 20 4 Algoritmos de clasificaci´on cada toma de datos, con lo cual se transforma una toma de datos en una ventana de tiempo en un solo valor num´erico del vector de tama˜ no 49. 4.1.3 Implementaci´ on del algoritmo Para la implementaci´ on de este algoritmo, fue necesario la modificaci´ on de tanto el m´ odulo entrenador del clasificador como del m´ odulo procesador del clasificador donde la decisi´ on es tomada. Para la etapa de entrenamiento, la modificaci´ on no es particularmente necesaria, pues este algoritmo no define una regla de divisi´ on previa, sino que la regla se dicta de acuerdo con el vector entrante. Por lo tanto, la etapa de entrenamiento se utiliz´o u ´nicamente para crear un archivo con la informaci´ on de los vectores de entrenamiento, que fuera m´ as sencillo de interpretar para el m´ odulo procesador que lo usar´ a luego. Para la etapa de funcionamiento “online” donde se da la clasificaci´on, primero se toma este archivo y se interpreta como una matriz de caracter´ısticas para cada clase, para luego utilizar con estos vectores y el vector de entrada la funci´on “getDistance”. Esta funci´on se encarga de obtener la distancia a la que se encuentra el vector de entrada con cada uno de los vectores de entrenamiento de una clase a la vez, retornando un vector de distancias, el cual posteriormente se ordena. Ya con las distancias obtenidas y ordenadas para cada clase es posible realizar la clasificaci´ on, la cual se realiza sumando ciertas distancias de cada clase y obteniendo la menor, lo cual indica que el vector deber´ıa ser predominantemente de una clase espec´ıfica. Para determinar cu´ ales distancias sumar, se deben tener en cuenta dos variables. La primera es el n´ umero de vectores del conjunto que se evaluar´a como vectores m´ as pr´oximos, es decir, se puede realizar la comparaci´on solo con el m´ as pr´oximo (la menor distancia), o con tres de los m´ as pr´oximos. Adem´ as es posible dejar por fuera al m´ as pr´oximo asumiendo su alta probabilidad de ser un error de entrenamiento. Y la otra variable es la cantidad de vectores m´ as pr´oximos se dejan por fuera de la decisi´ on, para que la decisi´ on sea m´ as cercana a la media. 4.2 Algoritmo del K-´ esimo vecino m´ as pr´ oximo por distancia de Mahalanobis En este tipo de algoritmo de clasificaci´on, se le da un peso a las coordenadas de los vectores de acuerdo con la covarianza que tengan los vectores de entrenamiento. Desde un punto de vista general, la covarianza se puede entender como una medida de la dispersi´ on de variables aleatorias, con lo cual, visto desde un clasificador, significar´ıa una medida de la dispersi´ on de los vectores de entrenamiento para cada clase (Lotte, 2007). De forma matricial, la ecuaci´ on (4.2) representa el vector media de la clase, x(i) los vectores de entrenamiento de una clase particular y µ la media aritm´etica. N´ otese que x(i) son vectores columna de tama˜ no m, por lo que la matriz C que se forma es m × m. La matriz CN es la matriz correspondiente a la clase N. 4.2. K-´esimo vecino m´ as pr´oximo por distancia de Mahalanobis CN = n X (x(i) − µ) · (x(i) − µ)T , 21 (4.2) i=0 La distancia de Mahalanobis utiliza la matriz de covarianzas para aplicar un peso a cada coeficiente del vector a clasificar, con el fin de favorecer aquellos coeficientes que var´ıen menos en la muestras de entrenamiento, al asignar un peso peque˜ no 1/C si el coeficiente es muy variable. La distancia de Mahalanobis se define entonces para un vector aleatorio x en una clase A como en la ecuaci´ on (4.3). −1 d2 = (x − µ)T CA (x − µ), 4.2.1 (4.3) Implementaci´ on del algoritmo La plataforma OpenVibe trabaja bajo tres etapas, la etapa de recolecci´on de datos, la etapa de entrenamiento, y la etapa de procesamiento en interacci´ on con el sujeto de prueba. La implementaci´ on de este algoritmo se lleva a cabo en dos etapas, la de entrenamiento y la de interacci´ on. La implementaci´ on en la etapa de entrenamiento, es necesaria para calcular la matriz de covarianzas. Para la cual a su vez es necesaria la captura de los vectores de entrenamiento por clase y calcular sus medias, para obtener la matriz mediante la ecuaci´ on (4.2). Para esto se crearon los archivos: ovpCBoxAlgorithmClassifierTrainerMahalanobis.h y ovpCBoxAlgorithmClassifierTrainerMahalanobis.cpp, a partir de los originales: ovpCBoxAlgorithmClassifierTrainer.h y ovpCBoxAlgorithmClassifierTrainer.cpp. La funci´on CBoxAlgorithmClassifierTrainer::train fue modificada para no solo guardar los vectores de entrenamiento, sino calcular las medias aritm´eticas de las entradas con el mismo ´ındice, de los vectores de cada clase respectivamente. Adem´ as de guardar los datos en vectores para manipularlos f´acilmente. Los c´alculos se realizan luego de que el m´ odulo entrenador ha capturado todos los datos, se realiza una nueva iteraci´ on de los datos creando las estructuras para el c´alculo de la medias, y luego para el c´alculo de la matriz de covarianzas, la cual es una matriz sim´etrica a la cual es necesario calcular su inversa, los n´ umeros que representan la matriz de 49x49 en este caso se guardan en un archivo llamado Covariance.txt para ser le´ıdo por el m´ odulo “processor” en la etapa online. En este archivo tambi´en es necesario guardar los vectores media para cada clase adem´ as de las matrices de covarianza de cada clase. Para la etapa de interacci´ on se implementa en los archivos ovpCBoxAlgorithmClassifierProcessor.h y ovpCBoxAlgorithmClassifierProcessor.cpp, a partir de los cuales se crearon ovpCBoxAlgorithmClassifierProcessorMahalanobis.h y ovpCBoxAlgorithmClassifierProcessorMahalanobis.cpp. Para el m´etodo initialize(), se toman no solo los vectores de entrenamiento para las clases, tambi´en es necesario tomar la matriz de covarianzas y el vector de medias de los vectores de entrenamiento, para cada clase y almacenarlos en estructuras de vector. Se cre´ o la funci´on getMahalanobisdistance(), para calcular la distancia de Mahalanobis seg´ un la ecuaci´ on (4.3). Esta funci´on retorna la distancia de Mahalanobis cuadrada para una 22 4 Algoritmos de clasificaci´on clase espec´ıfica. Por lo que la decisi´ on se mantiene igual que para el algoritmo de vectores m´ as pr´oximos por distancia eucl´ıdea. Es decir, consiste en comparar cual distancia es menor, y a la que sea menor se le asigna la clase como resultado. 4.3 4.3.1 Redes neuronales Definici´ on Una red neuronal es un procesador masivo paralelo distribuido compuesto por unidades procesadoras simples, que tienen la capacidad de de guardar conocimiento experimental y de hacerla u ´til para su uso (Haykin, 1999). En este sentido, se puede modelar el cerebro mediante dos aspectos: • El conocimiento es adquirido por la red desde su entorno por medio de un proceso de aprendizaje. • La fuerza de las conexiones interneuronales, conocido como el peso de la sinapsis, es utilizada para almacenar el conocimiento adquirido. Una neurona se puede modelar, de acuerdo con lo que la figura 4.3 especifica, mediante un modelo que contemple los siguientes tres elementos: 1. Un conjunto de sinapsis o enlaces de conexi´ on que est´an caracterizadas por la fuerza o peso por s´ı mismas. Espec´ıficamente, una se˜ nal xj en la entrada de una sinapsis j conectada a una neurona k es multiplicada por el peso de la sinapsis wkj . 2. Un sumador para sumar cada una de las se˜ nales de entrada, pesada por sus respectivas sinapsis de la neurona. 3. Una funci´on de activaci´ on para limitar la amplitud de la salida de la neurona. Esta funci´on de activaci´ on es tambi´en conocida como la funci´ on de l´ımite en el sentido de que limita el rango de la amplitud permisible de la se˜ nal de salida y la ata a un valor finito. El origen del t´ermino red neuronal b´asicamente refleja el inter´es de forjar un modelo matem´ atico que reproduzca el pensamiento humano. Para ello, se modela un cerebro como un conjunto de neuronas, que en conjunto tienen una gran capacidad de aprendizaje. 4.3.2 Arquitecturas Existen diversas arquitecturas de redes neuronales. No obstante, de acuerdo con Lotte (2007) las que se han implementado principalmente para el an´ alisis de se˜ nales electroencefalogr´aficas constituyen un n´ umero reducido. Es importante mencionar, que algunos art´ıculos (como Li (2010) y Jia (2011)) hablan acerca de implementaciones y aciertos con diversas arquitecturas de redes neuronales, pero 23 4.4. Multilayer perceptron Figura 4.3: Modelo general de una neurona (Haykin, 1999). estas arquitecturas en s´ı, utilizan algoritmos modificados de otras y las nombran de una forma diferente. La arquitectura que se desarroll´ o en la presente investigaci´on fue la de Multilayer perceptron. 4.4 Multilayer perceptron Para el caso de la red neuronal multilayer perceptron, es necesario primeramente comentar acerca de la arquitectura perceptron para luego proseguir con la arquitectura en cuesti´ on. 4.4.1 Perceptron El perceptron es la forma m´ as simple de una red neuronal usada para clasificaci´on de patrones linealmente separables (patrones que est´en a lados opuestos de un hiperplano). B´ asicamente esta consiste en una u ´nica neurona con pesos de sinapsis y b´ıas ajustables. El perceptron construido con una sola neurona solo puede distinguir entre dos clases, pero si se expande la capa de salida, es posible la inclusi´on de m´ as clases (dichas clases deben seguir siendo linealmente separables para que este trabaje adecuadamente) (Haykin, 1999). El diagrama de flujo de se˜ nal de un perceptron se puede apreciar en la figura 4.4. En el diagrama anterior se denotan los pesos de la sinapsis del perceptron como wm , las entrada como xm y el bias aplicado externamente est´a denotado por b. Del modelo se puede definir que el campo local inducido de la neurona es: v= m X wi xi + b, (4.4) i=1 La meta del perceptron es clasificar correctamente el conjunto de sets de est´ımulos aplicados externamente xm dentro de cualquiera de dos clases ξ1 o ξ2 . En este sentido, la regla 24 4 Algoritmos de clasificaci´on Figura 4.4: Flujo de se˜ nal de una perceptron (Haykin, 1999). Figura 4.5: Esquema de clasificaci´on del caso m´ as sencillo para un perceptron (Haykin, 1999). de decisi´ on es asignar el punto representado por cualquiera de la entradas x1 , x2 , ..., xm a la clase ξ1 si la salida y es 1 y asignarlo a la clase ξ2 si es -1 (Haykin, 1999). En el caso m´ as simple, existen dos regiones diferentes separadas por el hiperplano definido por: m X wi xi + b = 0, i=1 Esto resultar´ıa en un esquema de clasificaci´on tal y como lo expone la figura 4.5. (4.5) 25 4.4. Multilayer perceptron Los pesos de las sinapsis w1 , w2 , ..., wm del perceptron pueden ser adaptadas cada iteraci´ on. Para ello se puede utilizar una regla de adaptaci´ on de error conocida como el algoritmo de convergencia del perceptron. Regla de convergencia del perceptron. Si existe un conjunto de pesos que clasifican correctamente los patrones de entrenamiento (linealmente separables), entonces el algoritmo de aprendizaje encontrar´ a un conjunto de pesos que cumpla lo anterior, w∗ en un n´ umero finito de iteraciones (Haykin, 1999). 4.4.2 Multilayer perceptron Un multilayer perceptron se diferencia de un perceptron com´ un en tres caracter´ısticas. La primera es que el modelo de cada neurona en la red incluye una funci´on de activaci´ on no lineal. Una funci´on com´ unmente utilizada es la funci´on log´ıstica: 1 , (4.6) 1 + e−vj Donde vj es el campo inducido local (es decir, la suma pesada de todas las entradas de las sinapsis m´ as el bias) de la neurona j; y yj es la salida de la neurona. La presencia de no linealidades es importante debido a que, en caso contrario, la relaci´ on entrada-salida de la red puede ser reducida a un single layer perceptron (Haykin, 1999). La segunda es que la red contiene una o m´ as capas de neuronas escondidas que no son parte de la entrada o la salida de la red. Estas neuronas escondidas permiten a la red aprender tareas complejas mediante la extracci´on progresiva de caracter´ısticas cada vez m´ as significativas de los patrones de entrada (Haykin, 1999). La tercera es que la red tiene un alto grado de conectividad determinado por la sinapsis de la red. Un cambio en la conectividad de la red requiere de un cambio en la poblaci´on de las conexiones de las sinapsis o sus pesos (Haykin, 1999). El modelo general de un multilayer perceptron se puede visualizar en la figura 4.6. yj = N´ umero o ´ptimo de capas ocultas de la red Seg´ un resultados experimentales (Haykin, 1999), se debe usar el n´ umero m´ as peque˜ no de neuronas ocultas, tal que su desempe˜ no sea similar al del clasificador Bayesiano. En el caso de esta investigaci´on, el m´ınimo n´ umero fue de dos capas. 4.4.3 Selecci´ on del algoritmo El algoritmo de convergencia del perceptr´ on es adaptativo y sencillo de implementar. Se escoge un algoritmo con un aprendizaje por correcci´on de error (error-correction learning), donde la se˜ nal de salida de la neurona es comparada con una respuesta esperada, obteniendo as´ı una se˜ nal de error. Esta se˜ nal de error es la base para corregir los pesos de las capas dentro de la red neuronal (Haykin, 1999). La red trabaja como un sistema de control que busca minimizar la se˜ nal de error. La tasa con la que se ajustan los pesos seg´ un el error en cada iteraci´ on se denomina tasa de aprendizaje (learning rate). As´ı, dado un peso w en determinada neurona y capa de la red: 26 4 Algoritmos de clasificaci´on Figura 4.6: Modelo general de un multilayer perceptron (Haykin, 1999). w(n + 1) = w(n) + ηe(n)x(n), (4.7) Con η la tasa de aprendizaje, e(n) el error actual, y x(n) la componente actual del vector de entrada. Tasa de aprendizaje Se define un valor en el rango 0 < η ≤ 1. Si se desea un promediado de las entradas pasadas, obteniendo as´ı estimaciones estables de los pesos, se requiere un η peque˜ no. Si se desea una adaptaci´ on r´apida de los pesos se requiere un valor de η cercano a 1. Esto crea un compromiso entre la rapidez y estabilidad del algoritmo. Se recomienda (Haykin, 1999) que en un multilayer perceptron, todos los η deber´ıan ser iguales dentro de la misma capa. Dado que las u ´ltimas capas usualmente tienen gradientes de error mayores que en las primeras capas, la tasa de aprendizaje η suele ser m´ as alta en las primeras capas, y m´ as baja en las u ´ltimas. Adem´ as, las neuronas con mayor n´ umero de entradas deben utilizar un η menor, a fin de equiparar el tiempo de aprendizaje en todas las neuronas de la red. En el multilayer perceptron, al haber varias capas, el ajuste de los pesos de una capa j oculta con una capa de entrada i, se realiza de la forma: ∆ji (n) = η · δj (n) · yi (n), (4.8) Con δj (n) el gradiente local y yi (n) la se˜ nal de entrada a la neurona j Constante de momento Si se quiere acelerar el proceso de aprendizaje, se debe aumentar el valor de η, lo cual hace que los pesos tengan cambios muy altos aumentando la posibilidad de inestabilidad en la red. Para mitigar esta desventaja, existe un par´ ametro denominado constante de momento 0 ≤ α < 1 que act´ ua sobre el lazo de realimentaci´ on del algoritmo y permite utilizar valores altos de η sin comprometer la estabilidad. Esta constante toma en cuenta los cambios pasados 4.4. Multilayer perceptron 27 de los pesos, estabilizando los cambios de signo que, de otra forma, tender´ıan a producir una respuesta oscilatoria. 4.4.4 Descripci´ on del algoritmo Se utiliza el algoritmo de propagaci´on hacia atr´ as del error (Error back-propagation algorithm), que se basa en la regla del aprendizaje de correcci´on del error (error-correcting learning rule). Primero se obtiene la respuesta actual de la red, sopesando el vector de entradas con los pesos de cada nodo; esta se le resta a una respuesta deseada, generando una se˜ nal de error. El error se propaga hacia atr´ as a trav´es de la red, y se ajustan los pesos para hacer la respuesta actual m´ as cercana a la respuesta deseada, en sentido estad´ıstico. Para cada vector de entrada se calcula un error comparando la salida obtenida contra la esperada, este error se suma a los pesos y se itera hasta minimizar el error. El algoritmo se vuelve m´ as complejo cuando la red es de m´ as de una capa, como este caso. Se necesita una funci´on de error que sea diferenciable, para poder optimizarla sin importar el n´ umero de capas, he aqu´ı la utilidad de la funci´on log´ıstica o sigmoide, descrita en la ecuaci´ on (4.6). Algoritmo de aprendizaje La red consiste de unidades de activaci´ on (neuronas) y de pesos. Los pesos se calculan en una etapa de entrenamiento, donde se usan datos de prueba con salidas conocidas. Se comienza con pesos aleatorios y se van ajustando para minimizar el error, utilizando la t´ecnica de gradiente descendiente. Esto se realiza minimizando una funci´on de error E(O) = (T − O). Donde T es el valor esperado y O es el valor obtenido. Pasos del algoritmo de aprendizaje (Noriega, 2005): 1. Inicializar los pesos con valores aleatorios entre [-1,1] 2. Presentar un patr´ on de entrada a la red 3. Calcular la salida 4. Para cada nodo n de la capa de salida: • Calcular error En = Tn − On • Agregar En a todos los pesos que conectan con el nodo n (estos es, agregarlo a la columna n de la matriz de pesos) • Repetir desde el paso 2. para el siguiente patr´on de entrada de entrenamiento. El problema de estas iteraciones es que el valor de los pesos crece de una forma no controlada, por esto se utiliza el par´ ametro tasa de aprendizaje (learning rate) ǫ. Dicho par´ ametro se inicializa en un valor menor que uno, y hace que los pesos se incrementen en cantidades m´ as peque˜ nas (usando una fracci´on del error). 28 4 Algoritmos de clasificaci´on As´ı, cada peso: Wio (t + 1) = Wio (t) + ǫEn Algoritmo de aprendizaje de la MLP 1. Inicializar la red, los pesos con valores aleatorios entre [-1,1] 2. Presentar un vector de entrada a la red y calcular la salida 3. Comparar la salida de la red, con la salida esperada 4. Propagar el error hacia atr´ as: • Corregir los pesos de la capa de salida utilizando la siguiente f´ormula: who = who + (ηδ0 oh ), donde who es el peso que conecta el nodo h de la capa oculta con el nodo o de la capa de salida, η es la tasa de aprendizaje, oh es la salida en la unidad h, δo est´a dado por: δo = oo (1 − oo )(to − oo ), donde oo es la salida en el nodo o de la capa de salida, y t es la salida esperada para dicho nodo. • Corregir los pesos de entrada con la siguiente f´ormula: Whi = Whi + (ηδh oi ), donde whi es el peso que conecta el nodo i de la capa de entrada, con el nodo h de la capa oculta. oi es la entrada al nodo i de la capa de entrada, η es la tasa de aprendizaje, δh est´a dado por: X δh = oh (1 − oo ) (δo who ), donde oo es la salida en el nodo o de la capa de salida, y t es la salida esperada para dicho nodo. 5. Calcular el error, tomando la diferencia promedio entre la salida esperada y el vector de salidas. s p P (to − oo )2 E= n=1 p 6. Repetir desde el punto 2. para cada patr´on en el set de entrenamiento, para concluir un epoch. 7. Reorganizar el set de entrenamiento aleatoriamente, esto para evitar que la red se vea influenciada por el orden de los datos de entrada. 8. Repetir desde el paso 2. para un n´ umero establecido de epochs , o hasta que el error deje de cambiar. 4.4. Multilayer perceptron 4.4.5 29 Implementaci´ on del algoritmo La implementaci´ on del algoritmo clasificador MLP radica en el uso del paradigma de la programaci´ on orientada a objetos (POO), en conjunto con la teor´ıa que expone el funcionamiento de una red neuronal de m´ ultiples capas, cuyos conceptos principales ya se han mencionado anteriormente. De esta manera, la implementaci´ on de la red neuronal se puede conceptualizar utilizando el lenguaje unificado modelador (UML). Sin embargo, esto da solamente una visi´on global del concepto fundamental de programaci´ on, mas no el detalle del algoritmo que este emplea. Por tanto, para ello es necesario abarcar tambi´en detalles de implementaci´ on del mismo, donde la parametrizaci´on de la red constituye un elemento importante y la POO ser´ıa el elemento facilitador para ello. UML El diagrama utilizado para la implementaci´ on de la MLP se puede observar en la figura 4.7, considerando el lenguaje unificado modelador. Figura 4.7: Diagrama UML del dise˜ no implementado de la MLP. Como se puede observar en la figura 4.7, la red neuronal (MLP) se compone de un conjunto de neuronas que son la unidad fundamental de la red. Asimismo, la red utiliza una entrada est´andar (input_data) que sirve como base para la construcci´ on de otros objetos que le permitan a la red neuronal obtener una entrada de datos, tal y como lo muestra el diagrama con la entrada creada para el set de datos BCI Competition 2003. Los detalles de cada una de estas clases, tales como los par´ ametros, los m´etodos, entre otros, se pueden observar en 30 4 Algoritmos de clasificaci´on la documentaci´ on del c´odigo anexa con este documento. Adem´ as, es importante mencionar algunos par´ ametros que contiene la red neuronal. Neurona La neurona contiene varios atributos entre los que se encuentran: • El vector de entrada. • El vector de pesos de la entrada. • El bias. • El modo (entrenamiento o free running): Esta determina si se debe aprender o no de un resultado esperado determinado. Es decir, en modo free running, al no haber resultado esperado, no se aprende de un posible error porque no lo hay o no se puede determinar. • Una bandera que determina si la salida est´a lista. • El coeficiente de aprendizaje (puede estar en un rango entre cero y uno), la constante de momento (puede variar entre cero y uno): Estos son asignados por la red neuronal (la clase MLP) y son de vital importancia para el algoritmo de back propagation. • La constante α: Esta es asignada a su vez por la red neuronal (MLP) e indica la pendiente de la funci´on de activaci´ on, que en este caso corresponde a la funci´on log´ıstica. • El resultado esperado. • La suma del gradiente de entrada: este es vital para la modificaci´ on de la matriz de pesos de la entrada. • El vector de gradientes pesados: Es la salida del algoritmo de propagaci´on que le permite a las otras neuronas tener un tipo de valor esperado para luego obtener el error y corregir su matriz de pesos de la entrada. • La bandera que indica si el vector de gradientes pesados est´ a listo. • Una bandera que indica si la neurona est´a en la u ´ltima columna de neuronas dentro de la MLP. Todos estos atributos son utilizados dentro del algoritmo que clasifica y aprende de los errores de la red neuronal. MLP La MLP contiene varios atributos entre los que se encuentran: • El vector de entrada: Esta solo ser´ıa visible para las neuronas que se encuentran en la primera columna. Las dem´as se alimentan de la salida de las neuronas que se encuentran en la columna anterior a la que se encuentren. • El n´ umero de capas: Determina el n´ umero de columnas que puede haber entre la columna de neuronas que recibe la entrada y la que despliega el resultado final. 4.4. Multilayer perceptron 31 • La salida clasificada. • La tasa de aprendizaje, la constante de momento y la constante α de la funci´on de activaci´ on: Estos par´ ametros son escritos a cada una de las neuronas, de forma tal que cada una de ellas comparta el mismo valor. • El resultado esperado de la clasificaci´on (si lo hubiese): Determina el error en el cual est´a incurriendo la red y es fundamental para promover las correcciones de las matrices de pesos de cada una de las neuronas. • Una bandera para determinar si ya se ha terminado una clasificaci´on y aprendizaje. • El modo (entrenamiento o free running): Este par´ ametro tambi´en se le escribe a cada una de las neuronas e indica si se debe de aprender del error obtenido con la diferencia del resultado esperado. Es as´ı como se puede observar que la red neuronal es simplemente un contenedor de las neuronas que administra. De esta forma, la MLP se encarga de organizar las entradas, salidas y par´ ametros de cada una de las neuronas y asimismo, se encarga de coordinar y organizar los procesamientos que se realicen dentro de cada neurona (la ejecuci´ on de los algoritmos) una vez asignados los recursos con los que cada neurona debe trabajar. Algoritmo de clasificaci´ on El algoritmo de la red neuronal ha sido dividido en dos partes fundamentales, debido a que el proceso permite a la red neuronal procesar las entradas, obtener un resultado (clasificar) y aprender de los posibles errores para mejorar los resultados que se vayan obteniendo, en la medida de los posible. De esta manera, los dos subalgoritmos constituyen el algoritmo de forward propagation y el algoritmo de backward propagation. Los dos anteriores algoritmos, se realizan funcionalmente a nivel de las neuronas. As´ı, cada neurona con una entrada determinada realiza primeramente el algoritmo de forward propagation y termina con el algoritmo de backward propagation. Esto provoca que en medio de la implementaci´ on de los subalgoritmos se obtenga un resultado, terminada la ejecuci´ on del algoritmo forward propagation (una entrada clasificada) y se termine, una vez finalizada la ejecuci´ on del subalgoritmo de backward propagation, con una matriz de pesos modificada, que constituye la finalizaci´on del proceso de aprendizaje. Si bien estos dos subalgoritmos realizan su implementaci´ on real dentro de cada neurona, se puede decir que la red neuronal como tal (el conjunto de neuronas) tambi´en tiene dos subalgoritmos que son precisamente el de backward propagation y el de forward propagation. Estos concluir´ an cuando el algoritmo de todas la neuronas termine su respectiva ejecuci´ on. Esto es, la red neuronal ha completado un subalgoritmo cuando cada una de sus neuronas lo haya hecho. Esto provoca, por tanto, que a nivel de la completitud de la red neuronal, se tenga tambi´en una salida clasificada en medio de la ejecuci´ on de los dos subalgoritmos y que una vez finalizados los dos, se tenga tambi´en el resultado del proceso de aprendizaje basado 32 4 Algoritmos de clasificaci´on en un error dado. Asimismo, la red neuronal contiene par´ ametros globales. Estos par´ ametros se dicen globales por el hecho de que una vez que son asignados con un valor dado a la red neuronal, estos se expanden y se comparten por cada una de las neuronas que conforman la red. En este sentido, la red neuronal se puede ver como un contenedor para el conjunto de las neuronas interrelacionadas y que de hecho es el concepto que se intent´o explicar a nivel de objetos. Por tanto, si se requiere observar los detalles de implementaci´ on de la red, es necesario observarlo desde su unidad m´ as simple, la neurona. Cada neurona utiliza como funci´on de activaci´ on la funci´ on log´ıstica, que es una de las funciones no lineales m´ as sencillas (la no linealidad es caracter´ıstica de la MLP, como ya se mencion´ o) de implementar y de acuerdo con Haykin (1999), “una de las funciones m´ as populares en la implementaci´ on de MLPs”. Durante la ejecuci´ on de los algoritmos, se suponen varios elementos: • Existir´an dos modos (entrenamiento y free running) que implica que con la primera habr´ a un resultado esperado con el cual comparar la salida actual, obtener un resultado y realizar el proceso de aprendizaje y que con la segunda no lo habr´ a y por lo tanto, el aprendizaje no tiene sentido. Esto es importante desde el punto de vista que esto refleja que la MLP necesita al menos de una fase de entrenamiento debido a que su matriz de pesos es inicializada aleatorioamente, por lo que se espera que la red sea entrenada para que corrija su matriz de pesos y la adapte para recibir los patrones provenientes del vector de entrada. • En general, de la entrada solo se necesitan saber dos par´ ametros, la dimensi´on del vector de entrada y el vector que contiene el vector de entrada. Las clases que proveen a la MLP de entrada de datos son unos facilitadores para poder pasarle a la red neuronal los datos requeridos por ella, pero tambi´en se le puede suministrar un vector procesarlo sin problema. • La clase escrita para recibir datos del set de datos BCI competition 2003, presupone la existencia de tres archivos: – Un archivo con los datos puros. – Un archivo que indique el n´ umero de dato en el que fue lanzado el evento (cuando se tiene que empezar una nueva clasificaci´on debido a, por ejemplo, un cambio en el forzamiento de la imaginaci´ on derecha a la izquierda). – Un archivo con los resultados esperados de manera que cuando no los haya, utilice la constante definida por Matlab NaN. 5 Resultados 5.1 Algoritmo del K-´ esimo vecino m´ as pr´ oximo Los resultados obtenidos se tomaron utilizando dos sets de datos de dos individuos hombres de 22 a˜ nos. La prueba para el individuo 1 se llev´ o a cabo el 3/12/2012, y consisti´o en 30 intentos para cada clase, de los cuales se utilizaron 15 para la etapa de entrenamiento y los restantes 15 para la etapa “online”. La prueba para el individuo 2 se dio el 1/12/2012 y consisti´o en 40 intentos para cada clase de los cuales 15 se utilizaron en la etapa de entrenamiento y los restantes 25 en la etapa “online”. Los 15 intentos o vectores resultantes por cada intento para cada clase, que fueron utilizados en la etapa de entrenamiento fueron excluidos de la etapa de evaluaci´on o “online”. Los algoritmos evaluados son tres algoritmos basados en proximidad con los vectores de entrenamiento, la diferencia radica en el proceso de medir esa distancia entre los vectores. Los datos fueron tomados utilizando seis canales a saber C0, C1, F0, F1, P0 y P1. Adem´ as usando el pre-procesamiento descrito anteriormente en el documento. Para los tres algoritmos se utiliz´o el mismo set de datos de ambos individuos, los cuales fueron tomados en el Laboratorio de Investigaci´on en Ingenier´ıa Biom´edica en la Universidad de Costa Rica. 5.1.1 Resultados del algoritmo de vecinos m´ as pr´ oximos Los resultados para el algoritmo del k-´esimo vecino m´ as pr´oximo se muestran en el cuadro 5.1, predominando para los dos individuos un mejor porcentaje de acierto para la decisi´ on izquierda que la derecha. La columna de decisi´ on indica la clase izquierda o derecha del escenario de imaginaci´ on motora. Y los resultados se muestran divididos en aciertos por clase. Cuadro 5.1: Resultado del algoritmo de k-´esimo vecino m´ as pr´oximo para dos individuos, con 6 canales y 15 vectores de entrenamiento para cada clase. Prueba (6 canales) Individuo 1 Individuo 1 Individuo 2 Individuo 2 5.1.2 Decisi´ on IZQ DER IZQ DER Resultados 86,7 % 60,00 % 100,00 % 93,33 % Resultados del algoritmo de vecinos m´ as pr´ oximos con distancia de Mahalanobis Los resultados se muestran en el cuadro 5.2, en el caso del c´alculo de la distancia de Mahalanobis los resultados no fueron lo esperado, ya que al tener una distancia que le da mayor 33 34 5 Resultados importancia a aquellos datos del vector con mayor relevancia se esperaba una mejor´ıa en los porcentajes de decisi´ on. Solamente para el individuo 2 en decisi´ on derecha se presento una mejora. Los malos resultados de este algoritmo se pueden justificar por la toma de datos en s´ı. Esto es debido a que la distancia de Mahalanobis asigna pesos seg´ un la importancia del dato dentro del vector a la hora de tomar la decisi´ on en comparaci´on con los dem´as vectores y los dem´as datos del mismo vector. El problema se presenta debido a que cada dato del vector representa la toma del dato en un intervalo de tiempo. Mahalanobis asume que cada dato del vector representa el mismo intervalo de tiempo lo cual no es del todo correcto; es claro que deber´ıa representar el mismo intervalo de tiempo y lo representa estructuralmente, sin embargo el patr´ on de pensamiento de la persona no se puede controlar y es posible que ese patr´on se atrase o adelante en el tiempo de acuerdo a la toma del mismo. Por lo tanto la asignaci´ on de pesos en estos intervalos se puede dar de forma err´onea. Cuadro 5.2: Resultado del algoritmo de distancia de Mahalanobis para dos individuos, con 6 canales y 15 vectores de entrenamiento para cada clase. Prueba (6 canales) Individuo 1 Individuo 1 Individuo 2 Individuo 2 Decisi´ on IZQ DER IZQ DER Resultados 13,33 % 86,67 % 46,67 % 53,33 % Es claro que el k-´esimo vecino m´ as pr´oximo tambi´en se ve afectado por este mismo efecto, sin embargo la toma de decisi´ on no se basa en la correspondencia de estos intervalos. Adem´ as, en la etapa de pre-procesamiento se realiza una minimizaci´on de este efecto tomando promedios de tomas de media de 1/16 de segundo durante un segundo completo, lo cual hace que los cambios se tornen menos bruscos y m´ as promediados. Para corregir este factor en el algoritmo de vecinos m´ as pr´oximos por distancia de Mahalanobis, se realiz´ o un ajuste de los vectores de entrenamiento, esto para reducir el n´ umero de datos por vector de 49 a 44 y utilizar esos 5 datos como respaldo, para desplazar cada vector de 1 a 5 datos y conseguir el mejor ajuste dentro de toda la clase. Con un barrido sobre los vectores de entrenamiento para todas las posibilidades de desplazamiento, se obtuvo los desplazamientos para cada vector de entrenamiento que logran vectores de 44 datos con la menor diferencia posible en los intervalos, asegurando un desplazamiento en el tiempo que compense el retraso o adelanto en el patr´on de pensamiento del individuo. 5.1.3 Resultados del algoritmo de vecinos m´ as pr´ oximos con distancia de Mahalanobis, vectores alineados Los resultados se muestran en el cuadro 5.3, la alineaci´on de los vectores de entrenamiento obtenida por el desplazamiento de los vectores; produjo una gran mejor´ıa en los porcentajes del individuo 2, sin embargo los porcentajes del individuo 1 se mantuvieron con porcentajes muy bajos. 35 5.1. Algoritmo del K-´esimo vecino m´ as pr´oximo Cuadro 5.3: Resultado del algoritmo de distancia de Mahalanobis con vectores alineados, para dos individuos, con 6 canales y 15 vectores de entrenamiento para cada clase. Prueba (6 canales) Individuo 1 Individuo 1 Individuo 2 Individuo 2 Decisi´ on IZQ DER IZQ DER Resultados 20,00 % 60,00 % 96,00 % 100,00 % El alineamiento se realiz´ o no solamente para los vectores de entrenamiento, tambi´en para el vector online se aline´o este a los vectores de entrenamiento de ambas clases y se calcul´ o su distancia. Con base en esto es que la decisi´ on es tomada. La mejor´ıa en los porcentajes del individuo 2, llegando a sobrepasar los del k-´esimo vecino pr´oximo, indican un set de datos adecuado del individuo 2. Por otra parte, el set de datos del primer individuo pudo haber sido afectado por condiciones ambientales externas, al momento de la toma de datos. 5.1.4 Comparaci´ on entre los resultados con datos externos Seg´ un los datos de la revisi´ on de los algoritmos de clasificaci´on realizada en Francia (Lotte, 2007), el algoritmo de Mahalanobis present´o un 65 % de efectividad a la hora de clasificar cada una de las dos clases de los sets de datos BCI Competition IIIb. Con base en estos datos se realiz´ o una comparaci´on de cada uno de los algoritmos implementados respecto a este, teniendo en cuenta las siguientes salvedades: • Se usaron los resultados de Mahalanobis para comparar contra el algoritmo “k-´esimos vecinos m´ as pr´oximos”, ya que Mahalanobis es un algoritmo basado en el de vecinos. • Los sets de datos utilizados fueron diferentes respecto a los utilizados por la referencia. • El m´etodo de pre-procesamiento puede resultar significativamente diferente al utilizado. • La cantidad de datos analizados resulta estad´ısticamente insuficiente para brindar conclusiones exactas sobre cual algoritmo resulta mejor. Tomando en cuenta lo anterior, se tienen los cuadros 5.4, 5.5 y 5.6 que muestran las diferencias aproximadas de los algoritmos implementados, respecto al algoritmo de Mahalanobis usado por la referencia (Lotte, 2007). Cuadro 5.4: Efectividad del algoritmo del k-´esimo vecino m´ as pr´oximo comparadas con los resultados externos. Prueba (6 canales) Individuo 1 Individuo 2 Promedio Efectividad 84,67 % 96,67 % 90.67 % Mejora respecto a referencia 19,67 % 31,67 % +25.67 % 36 5 Resultados Cuadro 5.5: Efectividad del algoritmo de distancia de Mahalanobis comparadas con los resultados externos. Prueba (6 canales) Individuo 1 Individuo 2 Promedio Efectividad 50,00 % 50,00 % 50.00 % Mejora respecto a referencia −15 % −15 % -15 % Cuadro 5.6: Efectividad del algoritmo de distancia de Mahalanobis con vectores alineados comparadas con los resultados externos. Prueba (6 canales) Individuo 1 Individuo 2 Promedio 5.2 Efectividad 40,00 % 98,00 % 69.00 % Mejora respecto a referencia −25 % 33 % +4 % Multilayer Perceptron El algoritmo clasificador Multilayer Perceptron, cuyo dise˜ no se mostr´o en la secci´ on anterior, en general fue puesto a clasificar ante varias configuraciones o escenarios. Esto con el objetivo de verificar el comportamiento que tendr´ıa el algoritmo en diversas condiciones y encontrar los mejores escenarios en el cual el algoritmo tuviese el mejor desempe˜ no. En el contexto del algoritmo clasificador del Multilayer Perceptron, desempe˜ no se refiere a la certeza del algoritmo en efectuar la clasificaci´on tomando en cuenta los recursos inform´ aticos que gasta. De esta forma, el algoritmo tendr´ıa un mejor desempe˜ no en cuanto tenga un porcentaje de certeza de clasificaci´on alto y una demanda de recursos computacionales baja. Claro est´a decir que esto, al menos para el caso del presente algoritmo, se alcanza en el caso ideal (baja demanda de recursos inform´aticos y porcentaje de certeza alto), por lo que a pesar de que se le d´e m´ as enfoque en esta secci´ on al porcentaje de certeza, tambi´en se valorar´ a en un segundo plano los recursos computacionales que este demanda, medido este u ´ltimo en segundos de tiempo de ejecuci´ on. Es importante recalcar que, si bien es cierto, el tiempo de ejecuci´ on de un programa no es una medida est´andar para medir los recursos computacionales que un programa (como el algoritmo clasificador) gasta, esta constituye una buena medida para comparar el desempe˜ no de un programa similar, cuya ejecuci´ on se da en una m´ aquina con condiciones similares. De hecho, esta es la forma como, entre los diferentes escenarios que se presentar´ an se puede apreciar, se compar´ o el desempe˜ no computacional de la MLP. El hecho de que se experimentara con diversas configuraciones con el algoritmo Multilayer Perceptron se debe a lo que ya expone Haykin: “Es com´ unmente dicho que el dise˜ no de una red neuronal utilizando el algoritmo de backpropagation es m´ as un arte que una ciencia en el sentido de que numerosos factores envueltos en el dise˜ no son los resultados de la experiencia personal”. (Haykin, 1999). 5.2. Multilayer Perceptron 5.2.1 37 Resultados del set de datos BCI competition Al agregar como datos de entrada el set de datos BCI Competition 2003 al dise˜ no implementado de la MLP, se tuvo la oportunidad, como se mencion´ o anteriormente de correr varias simulaciones que pretenden obtener las condiciones bajo las cuales la red neuronal realiza una mejor clasificaci´on. Esto se debi´o a que con esto se quer´ıa encontrar los mejores par´ ametros que consiguiesen la mejor clasificaci´on para el tipo de datos que la red clasifica. Con esto se pretende obtener un conjunto de par´ ametros con los cuales se puede realizar una mejor clasificaci´on dadas las caracter´ısticas de los datos. Para lograr estas condiciones bajo las cuales se obtiene una mejor clasificaci´on, se puso a clasificar a la MLP el mismo set de datos pero utilizando diferentes coeficientes de aprendizaje y n´ umero de capas. Asimismo, se realizaron simulaciones con diferentes valores aleatorios de inicializaci´on y en general, se presentar´ an tres tipos de efectividad de clasificaci´on: • Efectividad pura: Esta corresponde a la efectividad que tuvo la red neuronal clasificando incluso cuando se ten´ıa la salida esperada. Esta en la realidad no deber´ıa ser tomada como parte de la efectividad del clasificador, pues al ser dato de entrenamiento esta es solamente una salida que es computada y comparada con la salida esperada. • Efectividad real: Esta corresponde a la efectividad que tuvo la red neuronal sin tomar en cuenta la salida que se obtuvo con los datos de entrenamiento. • Efectividad reducida: Esta corresponde a la efectividad que se obtiene despu´es de ignorar los primeros 320 intentos de clasificaci´on de acuerdo con el criterio que el set de datos indica. De esta manera, los siguientes son los resultados de la MLP utilizando el set de datos BCI Competition 2003 IIIb, en donde se procedi´o a variar los siguientes par´ ametros de su dise˜ no: • Porcentaje de aprendizaje: Este par´ ametro se vari´o de 0,3 a 0,7 en pasos de 0,2. Esto pues este par´ ametro puede variar de 0 a 1 y se obviaron los extremos pues estos son contraproducentes. • Constante de momento: Este par´ ametro se vari´o de 0,3 a 0,7 en pasos de 0,1 y de la misma forma que el porcentaje, se obviaron los extremos por causa de la misma raz´on. • Constante α: Esta es la pendiente de la funci´on de activaci´ on. Este par´ ametro se vari´o de 0,5 a 3 en pasos de 0,5. En general, la raz´on de estas variaciones es tener pendientes inferiores y cercanas a uno y otras un poco m´ as elevadas para evaluar si estas ten´ıan un efecto en la clasificaci´on. • N´ umero de capas: Este par´ ametro se vari´o de 2 a 5. La raz´on de llegar hasta 5 se debe a que despu´es de ese valor, la duraci´ on de ejecuci´ on sube considerablemente. Se debe mencionar que tambi´en se experiment´o con las condiciones iniciales de los pesos de las entradas de las neuronas. Esto pues de acuerdo con Haykin “Una buena elecci´ on de los datos iniciales para los pesos de las sinapsis y los umbrales pueden ser de mucha ayuda para 38 5 Resultados obtener un dise˜ no exitoso de una red neuronal“ (Haykin, 1999). Por tanto, se realizaron dos acercamientos que incluyen la inicializaci´on con valores aleatorios comprendidos entre [−1, 1] y otra con valores aleatorios que comprenden valores entre [−1, 100] y [−100, 1] tomando en cuenta que 100 es el valor de saturaci´ on promedio que se observ´ o durante las corridas. De esta manera, los resultados obtenidos se detallan en el cuadro 5.7, donde se exponen los ocho resultados con mayor porcentaje de efectividad una vez realizadas cada una de las simulaciones con las alteraciones de los par´ ametros de la MLP que se detallaron anteriormente. El cuadro muestra valores correspondientes a la efectividad reducida, definida arriba. Cuadro 5.7: Mejores porcentajes de efectividad en la MLP. N´ umero Porcentaje Constante Constante Efectividad de de aprende α capas dizaje momento 2 0,5 0,3 3 68,24 % 4 0,6 0,5 0,5 67,42 % 4 0,3 0,6 0,5 65,87 % 5 0,6 0,7 0,5 65,20 % 5 0,5 0,3 2,5 64,36 % 2 0,3 0,5 1 62,73 % 2 0,4 0,6 0,5 65,16 % 3 0,3 0,4 1,5 61,55 % Como se ha mencionado anteriormente, los resultados mostrados reflejan que la MLP es susceptible a cambios en su efectividad conforme se le alteran sus par´ ametros de aprendizaje y n´ umero de capas. Por otra parte, esto refleja la susceptibilidad que tiene la red neuronal a los datos de entrada. Esto pues en las mismas condiciones, los datos de entrada y sobre todo los que se usan como entrenamiento tienen un gran efecto en la red. Si se compara la efectividad reducida promedio, con la efectividad citada en (Lotte, 2007), se obtiene el cuadro 5.8. Cuadro 5.8: Efectividad en la MLP comparada con los resultados externos. Efectividad m´ axima 68,2 % Mejora respecto a referencia 3,2 % Con respecto a lo que se refiere al rendimiento computacional, como la complejidad del procesamiento de los datos aumenta conforme al n´ umero de capas ocultas que tenga la red neuronal, se realizaron pruebas en las que se midi´ o el tiempo que tom´ o la ejecuci´ on del algoritmo de clasificaci´on bajo diferentes condiciones. Para estas pruebas se aument´o el n´ umero 5.2. Multilayer Perceptron 39 de capas de 2 a 7 y se midi´ o el tiempo de ejecuci´ on de las clasificaciones necesarias para el set de datos BCI Competition 2003. Los resultados se pueden apreciar en el cuadro 5.9. Cuadro 5.9: Tiempo de ejecuci´ on en una MLP. N´ umero Porcentaje Constante Constante Tiempo de de de aprende α ejecuci´ on capas dizaje momento 2 0,5 0,5 1 214,86 s 3 0,5 0,5 1 320,40 s 4 0,5 0,5 1 427,88 s 5 0,5 0,5 1 537,16 s 6 0,5 0,5 1 641,70 s 7 0,5 0,5 1 750,89 s Los resultados que se muestran en el cuadro 5.9 efectivamente demuestran que cuanto m´ as se incrementa el n´ umero de capas, m´ as se incrementa el tiempo de ejecuci´ on de la red neuronal ante condiciones similares para un mismo set de datos. Esto es de esperarse pues el n´ umero de recursos computacionales necesarios para la correcta computaci´ on de la clasificaci´on utilizando m´ as capas oculas conlleva a un mayor n´ umero de c´alculos que conlleva a su vez a m´ as recursos computacionales. Asimismo debe notarse que a pesar de que el tiempo de ejecuci´ on no es una variable est´andar de comparaci´on de utilizaci´ on de recursos computacionales, ante condiciones similares puede mostrar las diferencias de rendimiento computacional en la ejecuci´ on de un programa en espec´ıfico. Por lo tanto, los datos mostrados en la table 5.9 confirman que el algoritmo implementado para el clasificador MLP requiere de m´ as recursos computacionales cuanto mayor n´ umero de capas se le agregue y este resultado puede extrapolarse a la utilizaci´on de m´ as capas que las que se mostr´o en esos resultados. 5.2.2 Diferenciaci´ on de la red respecto a otras implementaciones La Multilayer Perceptron es la red neural m´ as utilizada para BCI’s (Lotte, 2007). Entre las principales diferencias de la implementada en este seminario se encuentran: • Es independiente de cualquier plataforma computacional. De hecho, la red neuronal es un ejecutable binario cuyo u ´nico requisito es que el binario se haya compilado anteriormente para la arquitectura de la m´ aquina de destino que lo ejecutar´ a. • Es independiente del sistema operativo que lo corra y por tanto tambi´en de la arquitectura del computador. Esto es ventajoso si se requiere correr el algoritmo en un sistema empotrado. • Maximiza la utilizaci´ on de los recursos computacionales al tener la capacidad de realmente utilizar el multiprocesamiento. 40 5 Resultados • La MLP fue dise˜ nada e implementada utilizando software libre, por lo que todos los tools necesarios para su compilaci´ on o construcci´ on son est´andar. • El c´odigo fuente de la MLP es c´odigo fuente libre con licencia GPLv2, por lo que cualquier persona puede contribuir y tener acceso al c´odigo fuente de la misma. En (Balakrishnan y Puthusserypady, 2005) se explica la implementaci´ on de una red MLP en MATLAB, y se menciona que los requisitos a tomar en cuenta son: • Capacidad de extraer se˜ nales relevantes en presencia de ruido • Poca complejidad computacional • Clasificaci´ on efectiva Dicha implementaci´ on const´o de 4 nodos en la capa de entrada, una capa oculta y una capa de salida (2 nodos). Se alcanz´ o el m´ınimo nivel de error luego de 2000 epochs, pretendiendo una efectividad del 100 % en el entrenamiento. A la hora de las pruebas, se variaron los par´ ametros y se obtuvo una efectividad m´ axima del 64 % con 99 neuronas ocultas. La red neuronal implementada en este trabajo pretende disminuir la complejidad computacional, adem´ as de utilizar software libre. As´ı, se var´ıa el n´ umero de capas desde 2 hasta 5, pero se utilizan menos de 320 epochs en comparaci´on con la red MLP de (Balakrishnan y Puthusserypady, 2005). Por otra parte, se nota como al aumentar el n´ umero de capas la efectividad aumenta ligeramente, alcanzando efectividades de hasta casi 70 %. Sin embargo es conocido que el rendimiento computacional necesario para el procesamiento de los datos aumenta cuanto mayor n´ umero de capas ocultas se inserten, lo cual qued´o demostrado en los resultados expuestos en la subsecci´ on anterior. 6 Conclusiones y recomendaciones En este cap´ıtulo se exponen las conclusiones y recomendaciones, las cuales a nivel macro se expondr´ an en dos categor´ıas diferentes. Esto debido a que se obtuvieron conclusiones y recomendaciones a nivel global y tambi´en relativas a cada uno de los algoritmos que se implementaron. 6.1 Conclusiones A nivel global, las conclusiones generales obtenidas son: • Tanto el algoritmo del K-´esimo vecino m´ as pr´oximo, como la red neuronal, permitieron obtener tasas de efectividad por encima del 67 %. Se logr´ o validar los algoritmos implementados, seg´ un lo esperado pues estos son de uso com´ un en BCI’s. • En cuanto a la efectividad de clasificaci´on, el desempe˜ no del algoritmo del K-´esimo vecino m´ as pr´oximo fue superior al de la red neuronal hasta en un 30 %. No as´ı los algoritmos que utilizaron distancia de Mahalanobis, donde la red neuronal fue superior hasta en un 50 %. 6.1.1 K-esimo vecino m´ as pr´ oximo Las conclusiones espec´ıficas relativas a la implementaci´ on del algoritmo son: • Utilizando el sistema OpenEEG y el OpenViBE como plataforma BCI, se puede ver seg´ un los resultados que el algoritmo m´ as preciso de los implementados es el de k-´esimos vecinos m´ as pr´oximos. • Respecto a experimentos realizados por agentes externos y teniendo en cuenta las salvedades mencionadas, se concluye que el algoritmo de k-´esimos vecinos m´ as pr´oximos tiene un mejor desempe˜ no que el de Mahalanobis. 6.1.2 Multilayer Perceptron Las conclusiones espec´ıficas relativas a la implementaci´ on de la MLP son: • La red neuronal implementada puede ejecutarse en cualquier sistema operativo, e independientemente de la arquitectura y plataforma computacional, debido a que consta de un ejecutable binario que se puede compilar seg´ un la m´ aquina donde se va a ejecutar. • La red neuronal Multilayer Perceptron es flexible en cuanto a los par´ ametros que se establecen en su implementaci´ on. Esto permite diferenciarla de otras implementaciones, ajustando sus par´ ametros con el fin de obtener un resultado o´ptimo. 41 42 6 Conclusiones y recomendaciones • Una de las principales diferencias de la red dise˜ nada en este trabajo, es que el n´ umero de epochs se reduce a uno, minimizando as´ı el tiempo de ejecuci´ on del algoritmo. • La efectividad de clasificaci´on aumenta conforme aumenta el n´ umero de capas ocultas, esto ignorando los recursos computacionales. En esta implementaci´ on se logr´o utilizar un n´ umero bajo de capaz ocultas sin afectar la efectividad en m´ as de un 7 % al variar la red de 2 a 5 capas. • El n´ umero de recursos computacionales que una Multilayer Perceptron necesita aumenta conforme se va incrementando el n´ umero de capas, pero este incremento no siempre se traduce en una mejor porcentaje de acierto en la clasificaci´on. 6.2 Recomendaciones A nivel global, las recomendaciones generales obtenidas son: • Se debe de explorar la posibilidad de la implementaci´ on de otros algoritmos clasificadores, principalmente aquellos mixtos. Estos algoritmos mixtos permiten la combinaci´on de dos algoritmos diferentes cuya regla de decisi´ on se ve afectada por los dos algoritmos al mismo tiempo. Los algoritmos de decisi´ on a su vez pueden ser objeto de estudio. • Se recomienda realizar pruebas a una poblaci´on estad´ısticamente aceptable, con el fin de que se pueda concluir con m´ as certeza y veracidad cu´ al de los algoritmos resulta ser mejor para clasificar las se˜ nales del sistema BCI implementado. • Es recomendable adem´ as que se realice una vasta investigaci´on no solo de los algoritmos de clasificaci´on a utilizar, si no del pre-procesamiento de las se˜ nales, ya que esto es un factor crucial al momento de determinar el desempe˜ no de un sistema BCI. • Se deja para una etapa posterior del proyecto estudiar el desempe˜ no de los algoritmos seg´ un el sujeto de prueba y su mano dominante (derecho o zurdo). 6.2.1 Multilayer Perceptron Las recomendaciones espec´ıficas relativas a la implementaci´ on de la MLP son: • Se debe profundizar en la experimentaci´ on e implementaci´ on de una MLP con coeficientes probabil´ısticos (Bayes), donde tanto la salida de cada una de las neuronas como el peso de las entradas a las mismas se vea afectada por coeficientes probabil´ısticos basados en la capacidad de la neurona de realmente detectar alguna especificaci´ on de los datos de entrada. Esto pues, es posible que esto arroje mejores resultados que con los que se experiment´o en el presente proyecto. • La MLP implementada se enfoc´o en la clasificaci´on de datos dado un set de datos. Sin embargo, MLPs se han utilizado a su vez para determinar el set de datos ´optimo a procesar. Por ejemplo, para determinar la cantidad ´optima de electrodos a colocar 6.2. Recomendaciones 43 o la informaci´ on relativa a cu´ ales electrodos procesar. En este campo tambi´en ser´ıa recomendable incursionar. • La implementaci´ on de un algoritmo mixto utilizando la MLP es quiz´as uno de los campos m´ as interesantes en los que se puede incursionar dado la potencial certeza que se pudiera obtener al colocar a dos algoritmos a decidir sobre un mismo set de datos y obtener una regla de decisi´ on final. • La experimentaci´ on con diferentes sets de entrenamiento con diferentes cualidades es un area en la que tambi´en se puede profundizar a sabiendas de la importancia que tienen ´ los datos de entrenamiento en un algoritmo Multilayer Perceptron. Esto pues con esto se puede obtener una idea m´ as espec´ıfica de las consecuencias que pueda tener un set determinado de entrenamiento con ciertas caracter´ısticas. Entre las caracter´ısticas del set de entrenamiento con las que se puede experimentar resaltan la longitud de los vectores de entrenamiento, la cantidad de ´epocas o diferentes datos que una MLP debe de procesar para entrenarse adecuadamente, entre otros. Bibliograf´ıa Al-ani, T. y Trad, D. (2010). Signal Processing and Classification Approaches for Braincomputer Interface. Intelligent and Biosensors, Edited by Vernon S. Somerset, p´aginas 25–66. Balakrishnan, D. y Puthusserypady, S. (2005). Multilayer perceptrons for the classification of brain computer interface data. En Bioengineering Conference, 2005. Proceedings of the IEEE 31st Annual Northeast, p´aginas 118–119. Blankertz, B. (2003a). BCI Competition 2003 results (web page). http://ida.first.fhg.de/projects/bci/competition/results/. Disponible en: Blankertz, B. (2003b). BCI Competition 2003 (web page). http://ida.first.fhg.de/projects/bci/competition/. Disponible en: Blankertz, B. e. a. (2002). Classifying single trial EEG : Towards brain computer interfacing. Advances in Neural Information Processing Systems, 14. Blankertz, B.; M¨ uller, K. e. a. (2004). The BCI competition 2003: Progress and perspectives in detection and discrimination of EEG single trials. IEEE Trans. Biomed. Eng., 51(6):1044– 1051. Frolov, A. e. a. (2011). Brain-Computer Interface: Common Tensor Discriminant Analysis classifier evaluation. En Nature and Biologically Inspired Computing (NaBIC), 2011 Third World Congress on, p´aginas 614–620. IEEE. Garrett, D. e. a. (2003). Comparison of Linear, Nonlinear, and Feature Selection Methods for EEG Signal Classification. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 11(2). Gouy-Pailler, C. e. a. (2010). Nonstationary Brain Source Separation for Multiclass Motor Imagery. IEEE Transactions on Biomedical Engineering, 57(2). Haykin, S. (1999). Neural Networks - A comprehensive fundation. Pearson Prentice Hall. Upper Saddle River, NJ, USA. Jia, H. (2011). Neural network in the application of EEF signal classification method. En IEEE Seventh International Conference on Computational Intelligence and Security. Jrad, N. e. a. (2011). SVM feature selection for multidimensional EEG data. En Acoustics, Speech and Signal Processing (ICASSP), 2011 IEEE International Conference on, p´aginas 781–784. IEEE. 45 46 Bibliograf´ıa Lemm, S. (2006). BCI Competition III – data set IIIb. En IEEE Trans. Neural Sys. Rehab. Eng. Li, T. e. a. (2010). EEG Classification Based on Small-world Neural Network for BrainComputer Interface. En Natural Computation (ICNC), 2010 Sixth International Conference on, volumen 1, p´aginas 252–256. IEEE. Lotte, F. e. a. (2007). A Review of Classification Algorithms for EEG-based Brain-Computer Interfaces. Journal of Neural Engineerin, 4. Noriega, L. (2005). Multilayer perceptron tutorial. Escuela of Computing, Staffordshire University. Peters, B. e. a. (2001). Automatic Differentiation of Multichannel EEG Signals. IEEE Transactions on Biomedical Engineering, 48(1). Renard, Y., Lotte, F., Gibert, G., Congedo, M., Maby, E., Delannoy, V., Bertrand, O., y L´ecuyer, A. (2010). OpenViBE: an open-source software platform to design, test, and use brain-computer interfaces in real and virtual environments. Presence: teleoperators and virtual environments, 19(1):35–53. Rezaei, S. e. a. (2006). Different classification techniques considering brain computer interface applications. J. Neural Eng., 3(139). Schl¨ogl, A. (2003-2005a). BIOSIG - an open source software library for biomedical signal processing. Disponible en: http://biosig.sf.net. Schl¨ogl, A. (2005b). Results of the BCI-competition 2005 for datasets IIIa and IIIb. Disponible en: http://bci.tugraz.at/schloegl/publications/TR BCI2005 III.pdf. Schl¨ogl, A.; Neuper, C. e. a. (2002). Estimating the mutual information of an EEG-based Brain-Computer-Interface. Biomed. Technik, 47:3–8. Schl¨ogl, A.; Filz, O. e. a. (2003). GDF - a general dataformat for biosignals. Disponible en: http://www.dpmi.tu-graz.ac.at/ schloegl/matlab/eeg/gdf4/TR GDF.pdf. van Erp, J. B. e. a. (2012). Brain-Computer Interfaces: Beyond Medical Applications. IEEE Computer Society. Yong, Y. e. a. (2005). Single-Trial EEG Classification for Brain-Computer Interface using Wavelet Decomposition. Department of Computer Science, University College Dublin.