scieee AI-readable full text Open interactive document viewer

Comparación de técnicas de aprendizaje profundo (deep learning) para detección de crisis epilépticas

Sanmillán Vidoy, Francisco Luis

Abstract

En este trabajo, se tratarán de aplicar varias técnicas de inteligencia artificial a señales electroencefalográficasrecogidas directamente del cuero cabelludo de pacientes que padecen epilepsia intratable. Estas técnicas son específicas para cada paciente y estarán orientadas a investigar con qué técnicas y parámetros se pueden obtener las mayores precisiones en los menores tiempos posibles al detectar un ataque epiléptico. Además de comparar los resultados de las distintas técnicas entre sí, se tiene como objetivo analizar si estas se pueden aplicar en tiempo real, lo cual hace que se tengan que optimizar todos los recursos para conseguir obtener un resultado de alta precisión en el menor tiempo posible. Poder aplicar el sistema en tiempo real permitiría a los potenciales pacientes utilizarlo en su día a día, lo cual mejoraría su calidad de vida al disponer de un sistema de alertas que le avisa si va a padecer un ataque epiléptico hasta una hora antes o más de que ocurra, permitiendo así, que los pacientes tomen las medidas necesarias para mantenerse a salvo o, incluso, para evitar que el ataque suceda. Se aplicarán algunos cambios a cada una de las técnicas y se analizará como afectan al resultado en cada caso.

Full text

Equation Chapter 1 Section 1 Trabajo de Fin de Máster Máster en Ingeniería de Telecomunicación Comparación de técnicas de aprendizaje profundo (deep learning) para detección de crisis epilépticas Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Autor: Francisco Luis Sanmillán Vidoy Tutor: Rubén Martín Clemente Sevilla, 2020 iii Trabajo de Fin de Máster Máster en Ingeniería de Telecomunicación Comparación de técnicas de aprendizaje profundo (deep learning) para detección de crisis epilépticas Autor: Francisco Luis Sanmillán Vidoy Tutor: Rubén Martín Clemente Profesor titular Dep. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2020 v Trabajo de Fin de Máster: Comparación de técnicas de aprendizaje profundo (deep learning) para detección de crisis epilépticas Autor: Francisco Luis Sanmillán Vidoy Tutor: Rubén Martín Clemente El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2020 El Secretario del Tribunal vii A mi familia A mis maestros ix Agradecimientos En primer lugar, quiero agradecer a Rubén, el tutor de este trabajo, haber confiado una vez más en mí. Al igual que en el TFG, agradezco su paciencia y que siempre haya sacado tiempo para resolver mis dudas y guiarme en el desarrollo de este trabajo. Sin lugar a duda, no habría llegado hasta aquí de no ser por el apoyo constante de Daniela, quien ha convivido conmigo día a día y no ha dejado de animarme en ningún momento. Desde la distancia, también han sido un gran apoyo, mis abuelos, siempre intentando que dé lo mejor de mí, mi tío Joaquín, guiándome en cómo afrontar cada asignatura, y mis hermanos Juan y Pedro, siempre dispuestos a ayudarme y aconsejarme. Quiero agradecer a mis amigos el haber compartido conmigo tantos buenos momentos y, por último, a todas aquellas personas con las que he tenido el gusto de compartir la experiencia de estudiar el Máster de telecomunicaciones, quienes, en mayor o menor medida, también han contribuido a que esté donde estoy. Francisco Luis Sanmillán Vidoy Sevilla, 2020 ÍNDICE DE FIGURAS Figura 1 Estados cerebrales de pacientes con epilepsia [4] 17 Figura 2 Partes del encéfalo 18 Figura 3 Lóbulos de la corteza cerebral 20 Figura 4 Homúnculos motor y sensorial 21 Figura 5 Capas de la corteza cerebral 22 Figura 6 Principales tipos de ondas cerebrales 23 Figura 7 Electrodos en casco de malla 25 Figura 8 Electrodos quirúrgicos 26 Figura 9 Sistema Internacional 10/20 de colocación de electrodos 27 Figura 10 Esquema de montaje para un registro monopolar 28 Figura 11 Esquema de montaje para un registro monopolar promediado 28 Figura 12 Esquema de montaje para un registro bipolar 28 Figura 13 Montajes bipolares longitudinal, o de doble banana, (A) y transversal (B) 29 Figura 14 Fichero SUBJECT-INFO con la edad y el género de los sujetos 30 Figura 15 Tipos de inteligencia artificial [9] 31 Figura 16 Asistentes inteligentes [11] 32 Figura 17 Esquema del test de Turing [12] 33 Figura 18 Categorías más importantes de inteligencia artificial [14] 34 Figura 19 MLP [18] 37 Figura 20 Función escalón 39 Figura 21 Softmax 39 Figura 22 Sigmoide 40 Figura 23 ReLU 41 Figura 24 Tangente hiperbólica 41 Figura 25 Arquitectura propuesta para el clasificador basado en MLP [4] 46 Figura 26 CNN [25] 47 Figura 27 Arquitectura CNN propuesta [4] 49 Figura 28 Diagrama de bloques de CNN+MLP [4] 50 Figura 29 Funcionamiento de una neurona recurrente en una red RNN [28] 51 Figura 30 Celda básica LSTM [4] 53 Figura 31 Diagrama de bloques CNN+Bi-LSTM [4] 54 xvii Figura 32 La red LSTM bidireccional desenrollada [4] 55 Figura 33 Algoritmo de selección de canal (Channel select) [4] 72 1 INTRODUCCIÓN n este trabajo se llevan a cabo varias técnicas de detección de crisis epilépticas y se intenta analizar en qué condiciones y con qué parámetros se obtienen las detecciones más precisas y con la mayor anticipación. Para conseguir esto último se realizarán diversas pruebas utilizando señales electroencefalográficas (EEG) en crudo bajo distintas modelos de inteligencia artificial y variando sus parámetros, como pueden ser redes MLP, redes CNN o redes RNN y las múltiples variaciones de parámetros posibles. Antes de comenzar con las pruebas se hace necesario introducir los distintos contenidos que se tratan en este trabajo, así como explicar la procedencia y características de las señales EEG utilizadas y presentar los distintos modelos utilizados. La estructura del trabajo será la siguiente: 1. Introducción: En la cual se explican los objetivos y el alcance del trabajo y se presenta la estructura del mismo. 2. Epilepsia: En este apartado se explicará con detalle en qué consiste la epilepsia y de qué diferentes formas pueden afectar a los pacientes. Entender bien en que consiste y cómo afecta la epilepsia a los distintos pacientes será fundamental a la hora de analizar resultados en este trabajo, puesto que es un trastorno muy singular. 3. Electroencefalogramas (EEG): Se explicará en qué consiste la encefalografía, como se obtienen las señales y las distintas formas estipuladas de posicionamiento de sensores para obtener dichas señales. 4. Procedencia de las señales EEG: Base de datos de la cual se han extraído las señales y explicación de dónde y cómo se obtuvieron las señales EEG que se utilizarán en este trabajo. 5. Pequeña introducción a la inteligencia artificial: Apartado importante en el cual se indican y describen las distintas categorías de IA y se introducen los campos más importantes en los que se divide actualmente. 6. Introducción a las distintas técnicas que se aplicarán: en este apartado se describirá como funciona un perceptrón multicapa y sus particularidades, así como, cómo funcionan las redes neuronales convolucionales y, por último, se describirán las redes neuronales recurrentes. 7. Especificaciones: Se detallarán los distintos modelos que se van a utilizar, así como, los parámetros concretos que se establecerán en cada uno de estos modelos inicialmente. E El verdadero progreso es el que pone la tecnología al alcance de todos. Henry Ford Introducción 12 12 8. Tablas de resultados: Se incluirán varías tablas con los diferentes resultados obtenidos. Estas tablas constarán con las precisiones de detectar un ataque epiléptico obtenidas en las pruebas que se van a realizar. 9. Conclusiones: Para finalizar se analizarán los aspectos relevantes que se obtengan a partir de las tablas de resultados y se tratará de vislumbrar qué implicaciones pueden tener. 13 2 CONOCIMIENTOS PREVIOS Este apartado es el mismo que el de mi trabajo fin de grado dado en [1], ya que los conocimientos previos coinciden al tratar ambos sobre la epilepsia. 2.1. Epilepsia La epilepsia es un trastorno crónico del sistema nervioso central que origina una predisposición a sufrir crisis epilépticas repetidas. La epilepsia no es tan solo una enfermedad, sino una familia de trastornos neurológicos crónicos que tienen en común las convulsiones recurrentes o convulsiones epilépticas. Estas convulsiones epilépticas, que pueden aparecer en cualquier momento y duran unos segundos o minutos, son el resultado de una actividad transitoria, excesiva y anormal de las células nerviosas en la corteza cerebral [2] [3]. Cincuenta millones de personas en todo el mundo tienen epilepsia, cuatrocientas mil de ellas en España. Es el tercer trastorno neurológico más común tras el Alzheimer y el accidente cerebrovascular [2] [3]. Uno coma dos millones de individuos afectados sigue padeciendo convulsiones aun tomando medicación antiepiléptica. A las convulsiones padecidas por este subconjunto de pacientes se las conoce como convulsiones epilépticas intratables. En este trabajo, las señales que se usarán serán de pacientes con este tipo de convulsiones [2] [3]. 2.1.1. Síntomas Durante un ataque epiléptico el afectado puede tener sensaciones y emociones extrañas o comportamientos poco comunes, tales como espasmos musculares violentos, pérdida del conocimiento o alucinaciones sensoriales. Estos ataques epilépticos, que en cada persona son diferentes y que dependen de la zona del cerebro afectada y las causas de la epilepsia, son intermitentes y constituyen el único síntoma de este trastorno. Las convulsiones suponen un gran riesgo de lesión y limitan la independencia y la movilidad del afectado. La mayor parte de los afectados son plenamente capaces en los periodos en los que no están padeciendo un ataque. Aun así, existe un mayor riesgo de muerte o discapacidad grave asociado con la epilepsia. 2.1.2. Causas La epilepsia puede desarrollarse por una mutación heredada del comportamiento neuronal, es decir, por factores genéticos, o por algún traumatismo en la cabeza que dañe el tejido cerebral, o, incluso, Conocimientos previos 14 14 podría desarrollarse a partir de otra enfermedad que dañe, destruya o afecte al tejido cerebral, como en el caso de un tumor cerebral o de una infección, como la meningitis. También se dan casos de epilepsia en niños que tienen un mal desarrollo cerebral debido a problemas antes del nacimiento. En la mitad de los casos la causa de la epilepsia es desconocida. 2.1.3. Diagnóstico Para diagnosticar la epilepsia se realizan pruebas como electroencefalogramas, resonancias magnéticas craneales, TACs y análisis de sangre. Todas las pruebas anteriores junto a la historia clínica del paciente permiten no solo diagnosticar la epilepsia, sino también saber de qué tipo es (se explicarán más adelante los distintos tipos de epilepsia), y, en ciertos casos, conocer la causa de la epilepsia. En algunos afectados, no se detecta nada en las pruebas anteriores, teniendo resultados completamente normales. En estos casos el diagnóstico se basará en la historia clínica del afectado. 2.1.4. Tratamiento No hay cura para la epilepsia, pero los medicamentos pueden controlar las convulsiones para la mayoría de las personas. Cuando los medicamentos no funcionan bien, la cirugía o los dispositivos implantados, como los estimuladores del nervio vago, pueden ayudar. También dietas especiales pueden tratar con eficacia ciertos tipos de epilepsia. Es importante comenzar el tratamiento de inmediato, tras ser diagnosticada la epilepsia. En el caso de que los medicamentos no funcionen bien y el paciente tenga que someterse a cirugía, se pueden distinguir distintos tipos de intervenciones quirúrgicas, como los siguientes: • Cirugía para extirpar el foco epiléptico, en la cual se extrae la zona del cerebro donde se produce la crisis epiléptica. Se conoce como lobectomía o lesionectomía. • Otro tipo de cirugía se da cuando el foco epiléptico se encuentra en una zona del cerebro que no se puede extirpar. En este caso, lo que se hace es realizar una serie de cortes diseñados para impedir que las crisis se propaguen a otras partes del cerebro, dejando intactas las capacidades normales de la persona. • La callosotomía, que es el corte de las conexiones neuronales entre hemisferios. Se hace en niños con crisis graves que se propagan de un hemisferio a otro. Puede eliminar crisis como las crisis de caída. • Una cirugía muy radical, que se usa como última opción, es la hemisferectomía y la hemisferotomía, que consisten en retirar la mitad de la corteza cerebral. Este tipo de cirugía se usa para casos como el de la encefalitis de Rasmussen. 15 Para los afectados que son resistentes a la medicación y no pueden ser sometidos a cirugía, puede resultar interesante el uso de dispositivos estimuladores, como, por ejemplo, los siguientes: • El estimulador del nervio vago, que se implanta bajo la piel del pecho y se adhiere al nervio vago en la parte inferior del pecho, envía descargas de energía eléctrica al cerebro a través del nervio vago, reduciendo así entre un 20 y un 40 por ciento las crisis. • El estimulador para la neuroestimulación reactiva, que se implanta para analizar los patrones de la actividad cerebral y detectar una próxima crisis. Una vez detectada una crisis, el dispositivo manda una descarga eléctrica o administra un medicamento, para impedir la crisis. Analizar las detecciones de una próxima crisis de forma eficiente es el objetivo de este trabajo. 2.1.5. Tipos Según el NINDS (National Institute of Neurological Disorders and Stroke), a grandes rasgos se distinguen dos tipos de crisis: las generalizadas, que afectan a toda la superficie del cerebro y provocan la pérdida de conocimiento y las crisis parciales o focales, donde la descarga comienza en una zona concreta que puede extenderse al resto de la corteza cerebral. Sin embargo, dentro de cada una de estas dos categorías hay muchos tipos de crisis. Los médicos han llegado a describir más de 30 tipos de crisis epilépticas [3]. Algunos tipos de epilepsia son los siguientes [2]: ➢ Crisis generalizadas: en las cuales, como se ha mencionado antes, la descarga epiléptica afecta al mismo tiempo a toda la superficie del cerebro. Los tipos de crisis epilépticas generalizadas más frecuentes son: 1. Crisis generalizadas tónicas: causan rigidez muscular, sobre todo, en la espalda, en los brazos y en las piernas. 2. Crisis generalizadas clónicas: causan movimientos bruscos repetidos de los músculos del cuerpo. 3. Crisis generalizadas tónico-clónica: Se da cuando hay una pérdida brusca del conocimiento, cayendo el afectado al suelo si está de pie. Hay una fase tónica, que produce rigidez en el cuerpo en un primer momento, y, una fase clónica, que produce movimientos rítmicos por todo el cuerpo. Este tipo es una de las crisis epilépticas de mayor seriedad, ya que se pueden producir lesiones. No obstante, este tipo de epilepsia se controla bien con medicación. 4. Crisis generalizada de ausencia: En las que, la persona permanece absorta e inmóvil durante diez o quince segundos. No revisten gravedad, pero puede ocasionar déficit de atención al afectado, puesto que, los ataques de este tipo son muy frecuentes. 5. Crisis generalizada mioclónica: Se produce una sacudida brusca en todo el cuerpo o bien tan solo en una parte, durante un instante. Suele ocasionar caída al suelo del Conocimientos previos 16 16 afectado o la caída de los objetos que tenga en las manos. No son graves y suelen pasar desapercibidas. 6. Crisis generalizadas atónicas: El afectado cae de forma brusca al perder la conciencia. Dura un instante y la recuperación también es muy rápida. Suele ir acompañada de otros tipos de epilepsia. ➢ Crisis focales o parciales: Según el sitio de la superficie del cerebro donde se produzcan las convulsiones tendremos un tipo de crisis epiléptica local u otro, habiendo muchas variantes. El 60 por ciento de las personas afectadas por epilepsia padecen crisis focales. Las crisis focales más importantes son las siguientes: 1. Sin alteración del conocimiento (crisis parciales simples): algunas de estas crisis producen sacudidas rítmicas de una parte del cuerpo durante segundos o minutos. Otras producen sensaciones anormales, tales como hormigueos que se extienden de forma brusca o alucinaciones visuales o, incluso, pueden producirse sensaciones de déjà vu, que solo nota quien padece la crisis 2. Con alteraciones del conocimiento (crisis epiléptica parcial compleja): el afectado unas veces pierde el conocimiento, quedándose inmóvil sin responder durante varios segundos o pocos minutos, pero sin perder el tono muscular. Otras veces sí que se mueve, pero tiene una actuación extraña y no responde o lo hace de forma incoherente. Recupera el conocimiento poco a poco 3. Evolucionando a crisis convulsiva bilateral (crisis bilateral con generalización secundaria): se da cuando una crisis focal simple o compleja se extiende desde el foco epiléptico a toda la superficie cerebral. 4. Espasmos epilépticos: Se producen en niños de meses de edad y es raro que se produzcan en niños mayores de dos años. Consisten en una flexión o extensión brusca del cuerpo y de la cabeza durante varios segundos. Así como hay distintos tipos de crisis epilépticas, también hay muchos tipos diferentes de epilepsia. Se han identificado cientos de síndromes epilépticos diferentes. Algunos de ellos son los siguientes [2]: 1 La epilepsia de ausencia: en la que se producen crisis repetidas que causan pérdidas momentáneas del conocimiento. Suelen ser causadas por factores genéticos. Algunas personas pueden realizar movimientos sin sentido, otras no muestran síntomas evidentes, excepto momentos breves en los que parecen estar perdidos en el espacio. Inmediatamente después de pasar la crisis el afectado puede seguir con lo que estaba haciendo. No obstante, estas crisis pueden ocurrir tan frecuentemente que la persona no se pueda concentrar en lo que esté haciendo. 2 La epilepsia del lóbulo frontal: se da cuando se producen crisis focales breves que pueden ocurrir en serie. Involucra las crisis que pueden causar movimientos anormales descontrolados. Normalmente ocurren cuando la persona está dormida, pero también pueden aparecer cuando está despierta. 3 La epilepsia del lóbulo temporal: es el más común entre los que tienen crisis focales. Estas 17 crisis se asocian con sensaciones de náuseas, de miedo, de déjá vu o con cambios inusuales del gusto y del olfato. Esta alteración puede aparecer como un episodio de mirar fijamente al vacío, un estado de ensueño o automatismos repetidos. 4 La epilepsia neocortical: se caracteriza por crisis originadas en la capa exterior del cerebro, en la corteza cerebral. Pueden ser tanto focales como generalizadas. Dependiendo del lugar donde se originen las crisis en el cerebro tendrá distintos síntomas. Hay muchos otros tipos de epilepsia, como, por ejemplo, los siguientes: el síndrome de Lennox- Gastaut, la encefalitis de Rasmussen, la epilepsia mioclónica juvenil, el síndrome de Dravet o el hamartoma hipotalámico. Por otra parte, los médicos clasifican la actividad cerebral de los pacientes con epilepsia mediante la utilización de electroencefalogramas, explicados con detalle en la siguiente sección, en cuatro estados: ⎯ Estado “ictal”, que es el estado cerebral que se da durante las convulsiones. ⎯ Estado “preictal”, que es el estado cerebral en el que se encuentra el paciente justo antes de la primera convulsión. En este trabajo se considerará “preictal” el estado en el que está el paciente la hora antes de que ocurra la primera convulsión. ⎯ Estado “postictal”, que es el estado cerebral en el que se encuentra el paciente una vez que terminan las convulsiones. ⎯ Estado “interictal”, que es el estado cerebral en el que se encuentra el paciente cuando no se encuentra en ninguno de los estados anteriores. En este trabajo se considerará que el paciente está en un estado “interictal” cuando esté cuatro horas antes y después de cualquier convulsión. Esta división en cuatro estados se representa en la Figura 1, en la que se puede observar una señal de electroencefalograma con convulsiones y la división en los distintos estados. También se observa, como se verá más adelante, que la detección se realizará comparando entre los estados “preictal” e “interictal”, ya que interesa detectar un ataque epiléptico antes de que suceda, con el objetivo de evitarlo o de tomar precauciones. Figura 1 Estados cerebrales de pacientes con epilepsia [4] Conocimientos previos 24 24 2.2.4. Captación del EEG La actividad bioeléctrica puede captarse mediante diversos procedimientos: ⎯ Sobre el cuero cabelludo. ⎯ En la base del cráneo. ⎯ En el cerebro expuesto. ⎯ En localizaciones cerebrales profundas. 2.2.4.1. Tipos de electrodos Existen distintos tipos de electrodos [7]: ⎯ Electrodos superficiales: se aplican sobre el cuero cabelludo y se dividen en varios tipos a su vez: 1) Adheridos: Son pequeños discos metálicos de 5 mm de diámetro. Se adhieren con pasta conductora y se fijan con colodión que es aislante. Aplicados correctamente dan resistencias de contacto muy bajas (1-2 kilo ohmios). 2) De contacto: Consisten en pequeños tubos de plata clorurada roscados a soportes de plástico. En su extremo de contacto se colocan una almohadilla que se humedece con solución conductora. Se sujetan al cráneo con bandas elásticas y se conectan con pinzas de “cocodrilo”. Son de colocación muy fácil, pero incómodos para el paciente. Por esto no permiten registros de larga duración. 3) En casco de malla: Los electrodos están incluidos en una especie de casco elástico. Existen cascos de diferentes tamaños, dependiendo de la talla del paciente. Se sujetan con cintas a una banda torácica. Como características más importantes presentan la comodidad de colocación, la comodidad para el paciente en registros de larga duración, su gran inmunidad a los artefactos y la precisión de su colocación, lo que los hace muy útiles en estudios comparativos, aunque para sacar provecho de esta característica es precisa una técnica muy depurada. Este tipo de electrodo se puede observar en la Figura 7. 25 Figura 7 Electrodos en casco de malla 4) De aguja. Su uso es muy limitado y solo se emplean en recién nacidos y en UCI. Pueden ser desechables o de uso múltiple, en los que, su esterilización y manipulación deben ser muy cuidadosos. ⎯ Electrodos basales: los electrodos descritos hasta aquí registran solamente la convexidad superior de la corteza. Para el estudio de la cara basal del encéfalo se utilizan electrodos especiales como el faríngeo, el esfenoidal, y el timpánico. Estos electrodos son semi-invasivos, requieren de cirugía menor con anestesia local. Los esfenoidales recogen información de la actividad en la región media temporal y se pueden dejar fijos durante varias semanas sin tener efectos secundarios. ⎯ Electrodos quirúrgicos: Se utilizan durante el acto quirúrgico y son manipulados exclusivamente por el neurocirujano. Pueden ser durales, corticales o intracerebrales. Este tipo de electrodos se pueden observar en la Figura 8. Conocimientos previos 26 26 Figura 8 Electrodos quirúrgicos Si utilizamos electrodos de superficie o basales obtendremos el electroencefalograma (EEG). Sin embargo, si usamos electrodos quirúrgicos en la superficie de la corteza obtendremos el electrocorticograma (ECoG), y si usamos electrodos quirúrgicos de aplicación profunda obtendremos el estéreo electroencefalograma (E-EEG). 2.2.4.2. Sistema de posicionamiento de electrodos superficiales La colocación de los electrodos se realiza normalmente siguiendo el sistema internacional 10-20, que emplea cuatro referencias anatómicas de la cabeza del paciente: nasión, inión y puntos pre-auriculares izquierdo y derecho. Es un método reconocido internacionalmente para describir y aplicar la ubicación de los electrodos en el cuero cabelludo en el contexto de una prueba EEG. Este método fue desarrollado para asegurar la reproducibilidad estandarizada para que los estudios de un sujeto pudieran compararse para distintas pruebas de EEG y los estudios de distintos sujetos pudieran compararse entre sí. Este sistema se basa en la relación entre la ubicación de un electrodo y el área subyacente de la corteza cerebral. El sistema 10/20 hace referencia a la manera de colocar los electrodos en la cabeza siguiendo una proporción (10% y 20%) respecto a la medida de la distancia nasion-inion. Cada zona tiene una letra para identificar el lóbulo y un número para identificar la ubicación del hemisferio. Las letras F, T, C, P y O representan los lóbulos frontal, temporal, central, parietal y occipital, respectivamente. Los números pares (2,4,6,8) se refieren a las posiciones de los electrodos en el hemisferio derecho, mientras que los números impares (1,3,5,7) se refieren a las del hemisferio izquierdo. La "z" (zero) se refiere a un electrodo colocado en la línea media. Además de estas combinaciones, los códigos de letras A y Fp identifican los lóbulos de las orejas y del frontal, respectivamente. Se utilizan dos puntos de referencia anatómicos para el posicionamiento de los electrodos EEG: en primer lugar, el nasion, que es el área entre los ojos, justo por encima del puente de la nariz; En segundo 27 lugar, el inion, que es el punto más bajo del cráneo de la parte posterior de la cabeza, normalmente marcado por un gran bulto. Este sistema puede observarse en la Figura 9. Figura 9 Sistema Internacional 10/20 de colocación de electrodos 2.2.4.3. Montaje de un EEG Cada electrodo conectado en el cuero cabelludo constituye un punto de registro. Para realizar este registro es necesario disponer de dos terminales para establecer una diferencia de potencial. Según el propósito de la prueba a realizar y el número de canales disponibles habrá que seleccionar de que electrodos queremos realizar el registro. En primer lugar, hay que seleccionar entre registro monopolar o registro bipolar. En los registros monopolares se toma el registro de cada electrodo de forma independiente a los demás, usando un electrodo activo, que es el que está conectado al registro, y un electrodo referencial, con el que establecer la diferencia de potencial. En este tipo de registros lo ideal es poner el electrodo a un potencial de cero voltios, pero en la realidad no hay seguridad de que ese sea el potencial, por ello, lo que se hace es conectar el electrodo de referencia en el lóbulo de la oreja o en el mentón, para obtener un valor aproximado (Esto se muestra en la Figura 10). Otra forma es usar como electrodo de referencia un electrodo conectado a la suma de los demás electrodos, suma que será cero (Esto se muestra en la Figura 11). Conocimientos previos 28 28 En el montaje de la Figura 11 se hace uso de sistema Wilson, al realizar la interconexión entre todos los electrodos usando resistencias de valor bajo, entre 1 y 1’5 Mohmios. Este sistema permite tomar tantos registros como se desee, tan solo dependiendo del número de canales disponibles. También se pueden tomar otro tipo de referencias, con el objetivo de eliminar ciertas interferencias. Esto se aplica, por ejemplo, para el caso de atenuar los artefactos debidos a los parpadeos o, también, para los debidos a pulsaciones cardiacas. Para estos casos se sitúan dos o más electrodos en los párpados, para el caso de los parpadeos, o en zonas cercanas al corazón, para el caso de las pulsaciones cardiacas. Así se consigue que en estos electrodos se cortocircuite la señal de los parpadeos o la cardiaca, atenuándose la señal en gran medida. Figura 12 Esquema de montaje para un registro bipolar Figura 10 Esquema de montaje para un registro monopolar Figura 11 Esquema de montaje para un registro monopolar promediado 29 En la Figura 12, se puede observar que se toman parejas de electrodos activos, midiéndose la diferencia de potencial entre cada par. Esto se conoce como registro bipolar y permite obtener un número enorme de combinaciones entre electrodos en grupos de 8, de 12, de 16 o más, según el número de canales. Al haber tantas combinaciones posibles, es necesario indicar que combinaciones tendrán mayor interés. A cada una de estas combinaciones se le llama montaje. Se puede distinguir entre montajes de largas distancias o de cortas distancias, dependiendo si se usan parejas de electrodos alejados o de electrodos vecinos. Sin embargo, los montajes también han sido clasificados por la Federación Internacional de EEG y Neurofisiología en longitudinales y transversales, que se pueden observar en la Figura 13. Figura 13 Montajes bipolares longitudinal, o de doble banana, (A) y transversal (B) Además, hay otros montajes, como el temporal ring o las Zetas del Standard Cero o, también, las triangulaciones. En el diseño de montajes se recomienda usar como mínimo 8 canales, utilizar el sistema 10-20 de posicionamiento de electrodos y se recomienda también que cada sesión rutinaria incluya uno de los montajes de los tres tipos principales: referencial, longitudinal bipolar y transversal bipolar. Conocimientos previos 30 30 2.3. Base de datos La base de datos, que se usará en este trabajo, fue recogida en el Children’s Hospital Boston y está formada por registros EEG de sujetos pediátricos con crisis intratable. Los sujetos fueron monitorizados hasta varios días después de la retirada de la medicación antiepiléptica, para caracterizar sus crisis y evaluar la posibilidad de intervención quirúrgica [8]. Se obtuvieron grabaciones, agrupadas en 24 casos, de 23 sujetos (5 varones, de edades entre 3 y 22 años, y 17 mujeres, de edades entre 1,5 y 19 años). El caso chb21 se obtuvo 1,5 años después del caso chb01 y pertenecen al mismo sujeto [8]. En cada sujeto se tienen entre 9 y 42 grabaciones en ficheros de extensión ‘. Edf’ continuos. Casi todas estas grabaciones tienen duración de una hora, menos en el caso chb10 que duran dos horas y cuatro horas en los casos chb04, chb06, chb07, chb09 y chb23 [8]. Todas las señales se digitalizaron a 256 muestras por segundo con una resolución de 16 bits. La mayoría de los archivos contienen 23 señales EEG (24 o 26 en algún caso). Se utilizó el Sistema Internacional 10-20 para posicionar los electrodos [8]. Para cada sujeto se dispone de un fichero llamado chbnn.summary.txt, en el cual se indica el montaje utilizado, la hora en la que se realizaron las distintas grabaciones e, incluso, se indica en que segundo empiezan y en cual acaban las crisis epilépticas que se produzcan [8]. A continuación, en la Figura 14, se incluye el contenido del fichero SUBJECT-INFO, en el que se informa de la edad y el sexo de los sujetos, excepto del caso chb24. Figura 14 Fichero SUBJECT-INFO con la edad y el género de los sujetos 31 3 INTELIGENCIA ARTIFICIAL Se trata de un programa o software diseñado para realizar operaciones propias de la inteligencia humana, como pueden ser tareas de autoaprendizaje o de clasificación. Figura 15 Tipos de inteligencia artificial [9] La inteligencia artificial se ha dividido en tres grandes categorías. Estas se muestran en la Figura 15 y son: o Inteligencia artificial débil Es un tipo de inteligencia racional que se limita a un ámbito estrecho, es decir, que solo pretende ser aplicable a un tipo específico de problemas bien definidos y acotados. La inteligencia utilizada por la IA estrecha es limitada, ya que no son capaces de adaptarse a su entorno sino, tan solo, utilizar una serie de casos posibles ya definidos para resolver de la mejor Inteligencia artificial 32 32 forma posible el problema [10]. Hay muchos ejemplos de este tipo de inteligencia, como los asistentes inteligentes (como Siri, Cortana, Alexa o Google Assistant), los chatbots (Eliza, Vergic, Ada…) o los asistentes de voz (Movistar, Orange…). Figura 16 Asistentes inteligentes [11] o Inteligencia artificial general Es una inteligencia algo más compleja, similar a la humana, la que podría razonar y realizar juicios. Esta inteligencia solo existe de momento a nivel teórico y no sería una unión de inteligencias débiles, sino que, al poder razonar, podría resolver miles de tareas distintas, tal como los seres humanos. Este tipo de IA pasaría sin problemas el test de Turing que es una prueba que permite comprobar que una máquina es capaz de tener un comportamiento inteligente similar o indistinguible al de un ser humano. Lo que mide esta prueba viene reflejado en el diagrama de la Figura 17. 33 Figura 17 Esquema del test de Turing [12] o Inteligencia artificial fuerte Un último tipo de inteligencia artificial es la IA fuerte, inteligencia que dispondría de “estados mentales” y sería consciente de sí misma. Esta inteligencia iría más allá de la humana al tener una gran potencia de cálculo y al ser capaz de adaptarse al entorno con rapidez. Sería capaz de resolver cualquier problema, sentir emociones o contar con una experiencia subjetiva propia. Esta inteligencia, al igual que la anterior, existe solo teóricamente y plantearía en un principio grandes problemas éticos [10]. Otras fuentes clasifican la inteligencia artificial en cuatro tipos, que son: máquinas reactivas (decisiones sobre el momento presente sin tener en cuenta el pasado, sin evolución), memoria limitada (pueden almacenar información del pasado pero de forma limitada), teoría de la mente (capaces de comprender el entorno que les rodea y entender y aprender cómo funcionan sistemas, objetos o personas) y autoconciencia ( una IA que tiene consciencia de sí misma que se reconoce como un ente independiente y es capaz de tomar decisiones) [13]. La inteligencia artificial actual está dividida en diversos campos, siendo los más importantes los que se muestran en la Figura 18. Consistiendo cada uno de estos campos en lo siguiente: Introducción a técnicas de IA 40 40 • Función sigmoide Es un caso particular de la función Softmax, donde el número de clases es dos. Se representa en la Figura 22 y sigue la ecuación (5). 𝜙= 1 1+𝑒−𝑥 (5) Figura 22 Sigmoide • Función rectificadora (ReLU) Esta función descarta los valores negativos poniéndolos a ‘0’ y deja pasar los valores positivos, manteniendo su valor. Se representa en la Figura 23 y sigue la ecuación (6). 𝜙=max (𝑥,0) (6) 41 Figura 23 ReLU • Función tangente hiperbólica Esta es similar a la función sigmoide, con la salvedad de que esta se mueve en el rango entre ‘-1’ y ‘1’. Se representa en la Figura 24 y sigue la siguiente ecuación (7). 𝜙=1−𝑒−2𝑥 1+2−2𝑥 (7) Figura 24 Tangente hiperbólica Introducción a técnicas de IA 42 42 Algunas peculiaridades a tener en cuenta son: • Inicialización de pesos y sesgos Al comienzo de la construcción de la red se deben asignar un valor inicial a todos los pesos y sesgos de la red. Generalmente los sesgos siempre se inician a 0 y, por otra parte, los pesos se suelen iniciar con valores aleatorios, aunque hay técnicas con las que se obtienen mejores resultados. Si los pesos se inicializan a 0 la derivada con respecto a la función de pérdidas es la misma para todos los pesos, por lo que todos los pesos tendrían los mismos valores en las siguientes iteraciones. De esta forma, lo que se acaba consiguiendo es que las capas ocultas sean simétricas y continuas en las distintas iteraciones, por lo que, establecer inicialmente los pesos a 0 no hace a este modelo mejor que un modelo lineal. Es más adecuado si se inician los pesos en valores aleatorios, sin embargo, no todos los valores son adecuados, presentándose varias posibilidades: ⎯ Si los valores establecidos fueran muy altos, se conseguiría que la pendiente del gradiente cambie lentamente, por lo que se tendrían problemas de convergencia, haciendo que el modelo no consiga alcanzar la solución o tarde más tiempo. ⎯ Si estos fueran demasiado bajos, serían muy cercanos a 0 y se tendrían un resultado similar que cuando se asignan a 0. ⎯ Asignar valores más adecuados, con los que se consiguen mejores resultados y se puede realizar mediante varias técnicas que se utilizan habitualmente, como, por ejemplo: o La inicialización de He: la cual consiste en utilizar la función de activación ReLU e inicializar aleatoriamente los pesos, pero multiplicándolos por una distribución normal de media 0 y desviación estándar √2 𝑁𝑖𝑛, siendo 𝑁𝑖𝑛 el número de entradas de la capa [21]. o La inicialización de Xavier Glorot: similar a la inicialización de He, pero utilizando tanh () como función de activación y multiplicando los pesos aleatoriamente escogidos por una distribución normal de media 0 y desviación estándar √2 𝑁𝑖𝑛+𝑁𝑜𝑢𝑡, siendo 𝑁𝑖𝑛 y 𝑁𝑜𝑢𝑡el número de entradas y salidas, respectivamente [22]. o Otra técnica utilizada es el esquema LSUV donde los pesos se preinician con matrices ortonormales y posteriormente se obliga a que la varianza de cada capa sea igual a 1. Esta técnica funciona correctamente con diversas funciones de activación [23]. 43 • Función de costes La función de costes mide el error a la salida, que es la diferencia entre el valor de salida calculado por la red y el valor real que debería obtenerse. Esta información dada por la función de costes se utiliza en las sucesivas iteraciones para realizar el ajuste de los pesos de la red propagando hacía atrás (backpropagation) la función de costes obtenida en las distintas iteraciones, teniendo como objetivo que dicha diferencia entre el valor de salida y el valor real sea lo más pequeña posible, esto es, reduciendo la función de costes. Hay distintos estimadores de error de la función de coste, entre los que destacan: o Error cuadrático medio (RMSE), que se obtiene mediante la ecuación (8). 𝑅𝑀𝑆𝐸=√∑(𝑦𝑖−𝑦𝑖)2 𝑛 𝑛 𝑖=1 (8) Siendo 𝑦𝑖 es el valor estimado a la salida, 𝑦𝑖 la salida real y n el número de salidas. o Error absoluto medio (MAE), que se obtiene mediante la ecuación (9). 𝑀𝐴𝐸= ∑|𝑦𝑖−𝑦𝑖|2 𝑛𝑖=1 𝑛 𝑛−1∑|𝑦𝑛−𝑦𝑛|2 𝑛𝑖=2 (9) o Error de escala absoluta media (MASE), que se obtiene mediante la ecuación (10). 𝑀𝐴𝑆𝐸=∑|𝑦𝑖−𝑦𝑖|2 𝑛 𝑛 𝑖=1 (10) o Entropía cruzada categórica (Categorical Cross-Entropy), que se obtiene mediante la ecuación (11). Introducción a técnicas de IA 44 44 ℒ(𝜃)=∑𝑦𝑖log(𝑦𝑖) 𝑛 𝑖=1 (11) o Entropía cruzada binaria (Binary Cross-Entropy), que se obtiene mediante la ecuación (12). ℒ(𝜃)=∑𝑦𝑖log(𝑦𝑖)+(1−𝑦)log(1−𝑦𝑖) 𝑛 𝑖=1 (12) Este último estimador del error es el que se aplicará en los distintos modelos de este trabajo. • Descenso del gradiente En cada iteración, una vez calculada la función de costes, se calcula el gradiente como una derivada de varias variables respecto a todos los parámetros de la red, que gráficamente es la pendiente de la tangente de la función de costes con los pesos y sesgos actuales. Este gradiente es un vector que indica la dirección y el sentido de máximo aumento de la función de costes, esto es, del error. Como se quiere que el error se reduzca, se utiliza el sentido contrario al indicado por el gradiente. Esto último es lo que se conoce como descenso del gradiente, el cual, en una red neuronal profunda, podría ser complicado de calcular si no fuera por el algoritmo de propagación hacia atrás que se detalla a continuación. • Propagación hacia atrás – backpropagation Este algoritmo consiste en calcular las derivadas parciales de la función de coste con respecto únicamente a las variables de la última capa. Tras esto, se pasa a la capa anterior y se calculan de nuevo las derivadas parciales de la función de costes con respecto a los parámetros de dicha capa anterior. Estos cálculos se facilitan en gran medida por la regla de la cadena y se realizan hasta recorrer todas las capas de la red y llegar al inicio de la misma. Una vez obtenido el vector gradiente se actualizan todos los parámetros de la red restándoles el valor de gradiente correspondiente y se comienza una nueva iteración. Esto se realiza hasta que termine el proceso con el objetivo de obtener el mínimo error posible. • Algoritmos de optimización Estos se aplican sobre el descenso del gradiente y hay diferentes técnicas, algunas de las cuales son: 45 ⎯ Momentum: Esta técnica se basa en actualizar los parámetros sumándole un término adicional que tenga en cuenta la iteración anterior, y, por tanto, teniendo en cuenta los gradientes de las iteraciones anteriores. Con esto se consigue que se acelere el descenso del gradiente cuando el modelo vaya encaminado hacia la dirección correcta y que se atenúen las oscilaciones. ⎯ AdaGrad (Adaptive Gradient Algorithm): Esta técnica se basa en ir ajustando el learning rate – tasa de aprendizaje - a los parámetros de la red, realizando actualizaciones grandes para los parámetros que apenas cambian y actualizaciones pequeñas para los parámetros que cambian frecuentemente. ⎯ Adadelta: Es una mejora de AdaGrad donde, en vez de tener en cuenta el gradiente acumulado desde el principio de la red, este se restringe a una ventana de tamaño fijo n y, por tanto, a los últimos n gradientes. ⎯ RMSProp (Root Mean Square Propagation): Permite solucionar el problema de los minibatches (grupo de muestras a partir de las que se calcula el gradiente), en los que se divide entre un gradiente diferente cada vez. RMSProp obliga a que minibatches adyacentes tengan gradientes similares. Se obtienen medias móviles de los gradientes al cuadrado para cada peso y se dividen los gradientes entre la raíz del cuadrado de la media [24]. ⎯ Adam (Adaptive Moment Estimation): Adam es el algoritmo resultante de la combinación entre los algoritmos RMSProp y momentum. Realiza una combinación lineal entre el gradiente y el incremento anterior y tiene en cuenta los gradientes recientemente aparecidos en las actualizaciones para mantener diferentes tasas de aprendizaje para cada parámetro. Introducción a técnicas de IA 46 46 • Modelo propuesto En el modelo que se propone, se aplican, una vez segmentadas, las señales EEG crudas a un perceptrón multicapa que consta de cuatro capas ocultas. El número de neuronas en cada capa oculta será de 300, 100, 50 y 20, respectivamente, aunque se realizarán pruebas cambiando el número de capas y de neuronas. Al ser, el perceptrón multicapa, un modelo totalmente conectado, se tendrá un número total de parámetros entrenables elevado. El modelo se entrena con backpropagation, o propagación hacia atrás, y se optimiza mediante el algoritmo RMSprop. Como función de pérdidas se utiliza la entropía cruzada binaria que viene definida en la ecuación (13). Como funciones de activación se utiliza la función ReLU (Rectifier Linear Unit) para las capas ocultas, con el fin de añadir no linealidad y robustez contra el ruido en los datos de entrada. La ReLU se ha definido anteriormente en la ecuación (6). En la capa de salida se utiliza la función sigmoide, con la cual decidir a qué clase pertenecen los datos de entrada. La sigmoide viene dada por la ecuación (5). 𝑙(𝑦,𝑦)=−1𝑛∑[𝑦𝑖𝑙𝑜𝑔(𝑦𝑖 )+(1−𝑦)log (1 − 𝑦𝑖 )] 𝑛 𝑖=1 (13) Donde 𝑦 es la salida calculada, 𝑦 es la salida deseada y 𝑙(𝑦,𝑦) es la función de pérdidas. Esta arquitectura de clasificador MLP se representa en la Figura 25. Figura 25 Arquitectura propuesta para el clasificador basado en MLP [4] 47 4.2. Red neuronal convolucional (CNN) Las redes neuronales convolucionales están constituidas por un conjunto de modelos que se basan en cómo funciona la corteza visual primaria del cerebro humano cuando reconoce objetos, y al utilizar matrices bidimensionales son muy efectivas para tareas de visión artificial [19]. Estas redes se utilizan mayoritariamente en reconocimiento de imágenes y vídeo, en sistemas de recomendación, en clasificación de imágenes, en análisis de imágenes médicas, en el procesamiento del lenguaje natural y en series temporales. Debido al buen funcionamiento de las redes CNN, cada vez se han utilizado más y se han obtenido grandes mejoras en las aplicaciones de visión artificial y de aprendizaje automático. Las redes neuronales convolucionales aprovechan el patrón jerárquico en los datos y combinan patrones o características más pequeñas y simples (en imágenes serían bordes, manchas, etc) para obtener así patrones más complejos (en imágenes serían formas de objeto como, por ejemplo, una silla, una casa o un gato). Esto hace que las CNN sean como versiones regularizadas del perceptrón multicapa, teniendo una escala de conectividad y complejidad menor. La conectividad total de las neuronas en los perceptrones multicapa los hace propensos al sobreajuste de los datos, problema que se corrige con las CNN al tener menor número de conexiones [19]. Las CNN están formadas por una capa de entrada, una capa de salida y de múltiples capas ocultas, que pueden ser capas convolucionales de una o más dimensiones, capas de submuestreo (pooling), capas totalmente conectadas (Fully Connected), que son en esencia perceptrones multicapa, o capas de normalización. A diferencia de las capas convolucionales o de las capas totalmente conectadas, las capas de submuestreo no añaden a la red ningún parámetro que se pueda aprender, como pesos o sesgos. [19] En primer lugar, se encuentra la fase de extracción de características, en la cual se incluyen alternativamente capas convolucionales y de submuestreo que hacen que se reduzca la dimensionalidad de los datos. Al final se incluyen capas de perceptrón para realizar la clasificación final sobre las características extraídas. Esto se muestra en la Figura 26. Figura 26 CNN [25] Introducción a técnicas de IA 48 48 A continuación, se van a detallar cada uno de los componentes por separado: • Neuronas convolucionales: En la parte de extracción de características, las neuronas de las capas de convolución llevan a cabo operaciones sobre los datos en 2D que pasan por estas. La salida de cada neurona convolucional se calcula con la ecuación dada por (14) [26]. 𝑋𝑜𝑢𝑡=𝑓(𝑏𝑗+∑𝐾𝑖𝑗⊗𝑋𝑖𝑛𝑡 𝑖) (14) Siendo 𝑋𝑜𝑢𝑡 la matriz de salida de la neurona j, que se calcula mediante la combinación lineal de las salidas 𝑋𝑖𝑛𝑡 de las neuronas de la capa anterior aplicándole a cada una de ellas el núcleo convolucional 𝐾𝑖𝑗 correspondiente a cada conexión, denotando el operando de convolución con el símbolo ⊗. A lo anterior se le suma el sesgo 𝑏𝑗 y se la aplica la función de activación f [26]. • Neuronas de submuestreo: Estas neuronas utilizan la operación de max-pooling que funciona cogiendo el valor máximo de una ventana de muestra de tamaño predefinido y asigna este valor a toda la zona de datos o píxeles del tamaño de la ventana de muestra. La salida de esta operación son los valores máximos de todas las zonas del tamaño de la ventana de muestra en los que se pueden dividir las matrices de datos. Por tanto, a la salida, las matrices de datos se habrán reducido por un factor igual a la ventana de muestra [19] • Neuronas de clasificación Los datos de entrada de estas neuronas ya han pasado la parte de extracción de características, por lo que ya han sido reducidos y disponen de un número mucho menor de características que contienen más información. En esta fase de clasificación se clasifican estas características asignándole una etiqueta u otra. Estas neuronas funcionan igual que las de un perceptrón multicapa, por lo que, las salidas se obtendrán, como ya se vio anteriormente, con las ecuaciones dadas en (1) y (2). 49 • Modelo propuesto Estas redes tienen un buen rendimiento, obteniéndose en general buenos resultados, lo que se debe a que son capaces de extraer automáticamente las características espaciales significativas que mejor representan los datos sin disponer de ninguna decisión humana a la hora de elegir dichas características más representativas y habiéndole pasado los datos sin ningún procesamiento previo. La conectividad escasa les aporta una gran ventaja frente a otras redes, ya que el número total de parámetros entrenables es mucho más reducido, siendo más eficiente. Para este modelo los segmentos de señal EEG se convertirán en matrices 2D para que sea adecuado para una red neuronal convolucional. Se tienen cuatro capas convolucionales y tres capas de agrupación máxima (maximum pooling). En cada convolución se elige un número de 32 filtros (kernels), con un tamaño de 3x2, para cubrir las matrices de los datos EEG que no son cuadradas. Las capas de agrupación máxima tienen un tamaño de agrupación de 2x2. Se utiliza la función ReLU como función de activación de las capas convolucionales, así como, una técnica de normalización por lotes (Batch Normalization technique) para mejorar la velocidad de entrenamiento y reducir el sobreajuste añadiendo algo de ruido a la activación de cada capa. Esta red neuronal convolucional descrita, encargada de la extracción de características, se muestra en la Figura 27. La transformada de normalización por bloques se define en la ecuación (15). 𝐵𝑁𝛾,𝛽(𝑥𝑖)=𝛾𝑥𝑖−𝜇𝐵 √𝜎𝐵2+є+𝛽 (15) Donde 𝑥𝑖 es el vector que se va a normalizar en un mini-batch 𝐵={𝑥1,𝑥2,𝑥3,… 𝑥𝑚}, 𝜇𝐵 y 𝜎𝐵2 son la media y la varianza del actual mini-batch de 𝑥𝑖, respectivamente, є es una constante añadida a la varianza para aportar estabilidad numérica, 𝛾 y 𝛽 son los parámetros de aprendizaje que se utilizan para escalar y cambiar el valor normalizado, respectivamente. Figura 27 Arquitectura CNN propuesta [4] RESULTADOS 56 56 5 RESULTADOS Este trabajo está basado en el artículo “Efficient Epileptic Seizure Prediction Based on Deep Learning” de Hisham Daoud y Magdy A. Bayoumi [4], del que se pretende replicar algunas de sus técnicas, añadirle variaciones y analizar cómo afectan a los distintos modelos. Las especificaciones indicadas en esta sección se han obtenido de este artículo científico. El objetivo es detectar lo antes posible y con precisión el estado “preictal” (periodo de tiempo justo antes de la convulsión) diferenciándolo del estado “interictal” (periodo entre convulsiones separado por más de cuatro horas antes y después de cualquier convulsión), y hacerlo de forma que se pueda aplicar en tiempo real. Para ello se introduce al sistema las señales EEG crudas, sin procesar, y, tras esto, se realizará la extracción de características y la clasificación en un único sistema automatizado. Se van a utilizar varias técnicas, que son: un perceptrón multicapa, una red neuronal convolucional y una red neuronal recurrente. A estas técnicas se les introducirá algunos cambios y se analizarán los resultados obtenidos. La base de datos de datos de grabaciones EEG de pacientes con epilepsia que se va a utilizar se ha detallado en la sección 1.3 de este trabajo. Las distintas técnicas se han implementado en Python, haciendo uso de la librería “Keras”. En el apartado de Anexos se incluyen todos los códigos. Todo se ha realizado mediante Google Colaboratory, que es un entorno de Google Research que permite que cualquier persona escriba y ejecute código en Python a través del navegador. Se ha elegido este entorno porque, además de ser muy útil al tener ya la mayoría de las librerías instaladas, permite utilizar las GPUs de Google, con lo que se consigue una gran capacidad de procesamiento. 5.1. Metodología En este trabajo se utilizan tres modelos de inteligencia artificial y se tiene el objetivo de una predicción lo más precisa y temprana posible de los ataques epilépticos buscando que se pueda realizar en tiempo real. Como se ha mencionado, las predicciones se acometen como una tarea de clasificación entre estados cerebrales “preictales” e “interictales”, alertando cuando se produce un estado “preictal”. En este trabajo se consideran como “preictales” todas aquellas muestras de las grabaciones de los pacientes con epilepsia que hay hasta una hora antes de que el ataque epiléptico ocurra, y como “interictales”, aquellas que se encuentran más de cuatro horas antes y después de cualquier ataque epiléptico. Como se ha indicado, se introducirán al sistema señales EEG en crudo, esto es, sin ningún preprocesado previo. Las características discriminatorias se aprenderán automáticamente mediante técnicas de inteligencia artificial, para así reducir la carga de la tarea de clasificación. Al disponer de un número de muestras “interictales” muy superior al de muestras “preictales” se realiza una tarea de balanceo, mediante la cual se les pasan a los modelos el mismo número de muestras 57 “preictales” que “interictales”, ya que, en caso contrario, si se le pasaran muchas más muestras de una categoría, el clasificador sería mucho más preciso con esta categoría que con la de menos muestras. Las señales EEG se dividen en segmentos de cinco segundos no superpuestos, a los que se considera como “batchs” de entrenamiento. En el primer modelo se realiza un perceptrón multicapa (MLP), esto es, una red neuronal profunda simple, que se entrena para que aprenda los parámetros más discriminativos, para con ellos realizar la tarea de clasificación. En el segundo, se realiza una red neuronal convolucional (CNN) con la cual se mejora la extracción de características, por lo que, al realizar la clasificación, que se realiza con un MLP, se obtendrán mejores resultados. En el tercer modelo se vuelve a utilizar la red CNN del segundo modelo para realizar la extracción de características, y esta se concatena a continuación con una red Bidirectional Long Short-Term Memory (Bi-LSTM) con la que se realiza la clasificación. Las redes LSTM son eficaces en el aprendizaje de características temporales ya que mantienen las dependencias existentes en secuencias a largo plazo haciendo uso de su memoria. Las LSTM bidireccionales mejoran aún más la predicción al utilizar la información de las instancias temporales anterior y siguiente. 5.2. Red MLP En el primer modelo, que se ha detallado en la sección “Modelo propuesto” del apartado 4.1, se obtienen los resultados dados por la Tabla 1. En esta tabla y las siguientes se analizan varios pacientes (pacientes 1, 3, 5, 9, 16, 20, 22 y 23), de los que se obtienen las siguientes características: ⎯ Sensitivity - sensibilidad: Que mide el porcentaje los verdaderos positivos y se puede calcular como se indica la ecuación (22). 𝑆𝑒𝑛𝑠𝑖𝑏𝑖𝑙𝑖𝑡𝑦=𝑡𝑝/(𝑡𝑝+𝑓𝑛) (22) Siendo tp (true positive) los verdaderos positivos y fn (false negative) los falsos negativos. ⎯ Specificity - especificidad: Mide el porcentaje de falsos positivos, esto es, de que no se detecten muestras “preictales” y sean clasificadas correctamente. Este parámetro se calcula como indica la ecuación (23). RESULTADOS 58 58 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦=𝑡𝑛/(𝑡𝑛+𝑓𝑝) (23) Siendo tn (true negative) los verdaderos negativos y fp (false positive) los falsos positivos. ⎯ Accuracy – precisión: Dada automáticamente por el sistema, aunque también puede ser calculada como se indica la ecuación (24). 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦=(𝑡𝑝+𝑡𝑛)/(𝑡𝑝+𝑡𝑛+𝑓𝑝+𝑓𝑛) (24) Siendo tn los verdaderos negativos (true negative) y fp los falsos positivos (false positive). ⎯ False alarm h-1: Calculada como se indica la ecuación (25). ℎ−1=𝑓𝑝/(𝑓𝑝+𝑓𝑛+𝑡𝑛+𝑡𝑝) (25) Esto es, dividiendo el número de falsos positivos (falsas alarmas) entre el número de casos total. ⎯ Tiempo de entrenamiento (min): Es el tiempo que tarda cada modelo en hacer el entrenamiento y el test. Este tiempo depende de la GPU asignada por Google Colab que varía con el tiempo, asignando unas veces GPUs más potentes y otras veces GPUs menos potentes. Por este motivo, cada técnica se han realizado las pruebas durante una misma sesión para los distintos pacientes utilizados, asegurando así que se están utilizando los mismos recursos y se puedan comparar tiempos entre los distintos pacientes utilizados en cada técnica. ⎯ Número de parámetros: Indica el número de parámetros que se han utilizado en el modelo para cada paciente. 59 o PRIMERA PRUEBA CON LA RED MLP En primer lugar, se va a probar el modelo MLP con las especificaciones dadas en el subapartado “Modelo propuesto” dentro del apartado 4.1. El esquema del modelo viene representado en la Figura 25, la tabla con los resultados se muestra en la Tabla 1 y sus especificaciones resumidas son: - Cuatro capas ocultas con un número de unidades de 300, 100, 50 y 20, respectivamente. - 10 epochs. - 1280 muestras de batch_size. - Todas las muestras se utilizan para entrenamiento y test. - RMSProp como optimizador. - Entropía cruzada binaria como función de costes o pérdidas (Loss). Tabla 1 Resultados de la primera prueba del modelo MLP (R=Mejor. A=Peor) Se puede observar que, en general, se obtienen buenos resultados, por encima del 70%, salvo en los pacientes 5 y 16, y que la media de todos también se mantiene por encima del 70%. Se observa también que, al ser una red MLP y estar, por tanto, sus neuronas completamente conectadas, se tiene un alto número de parámetros, lo cual, hace a esta red ineficiente si se compara con el siguiente modelo que utiliza una red convolucional que reduce ampliamente el número de parámetros utilizados. También destaca que hay una gran variabilidad entre los distintos pacientes, teniendo algunos que superan incluso el 90% de precisión y otros que ni llegan al 70%. Esto puede ser debido a una gran variedad de motivos, como puede ser, por ejemplo, el hecho de que para algunos pacientes se disponga de un mayor número de muestras “preictales” e “interictales” con las que realizar el entrenamiento que con otros, lo que se debe a su vez a la gran casuística de los pacientes con epilepsia, teniendo algunos PATIENT SENSITIVITY SPECIFICITY ACCURACY FALSE ALARM h-1 TRAINING TIME (min) No. OF PARAMETERS P 1 0.70195 0.70251 0.70223 0.148 13.28 9756512 P 3 0.91122 0.91071 0.91099 0.044 15.17 9756512 P 5 0.61721 0.61648 0.61681 0.191 12.01 9756512 P 9 0.71108 0.71143 0.71125 0.144 14.72 9756512 P 16 0.53811 0.54071 0.53941 0.22 10.21 9906512 P 20 0.74421 0.74417 0.74419 0.127 11.36 9906512 P 22 0.82145 0.81392 0.81771 0.093 13.51 9906512 P 23 0.92666 0.92692 0.92687 0.036 11.75 9756512 MEAN 0.73543 0.73501 0.73523 0.106 12.65 9812493 RESULTADOS 60 60 muy pocos ataques epilépticos durante la sesión de grabación, lo que implica pocas muestras “preictales” e “interictales” con las que entrenar, y teniendo otros pacientes muchos ataques epilépticos durante el mismo periodo de tiempo, lo que implica que tienen muchas muestras “preictales” e “interictales” con las que realizar el entrenamiento. Particularmente, los pacientes 1, 3, 9 y 23, tienen muchas más muestras que los pacientes 5, 16, 20 y 22, dándose que para los pacientes 1, 3, 9 y 23 se dispone de más de diez mil muestras tanto “preictales” como “interictales”, mientras que de otros casos como en paciente 16, se disponen menos de siete mil muestras tanto “preictales” como “interictales”, o del paciente 20, por debajo de las ocho mil. La disposición o no de muestras “preictales” en un paciente depende directamente del número de ataques epilépticos que tenga el paciente durante la sesión de grabación. Aparentemente, siempre se va a disponer de más muestras “interictales” que “preictales”, sin embargo, se tiene la consideración de que para que una muestra sea “interictal” tiene que estar alejada más de cuatro horas antes y después de cualquier ataque epiléptico y, como las grabaciones de los pacientes están realizadas durante un mismo día en el que el paciente presenta varios ataques epilépticos, el número de muestras “interictales” posibles se reduce considerablemente. Otro motivo de la gran variabilidad en los resultados entre los diferentes pacientes se debe también a la gran casuística de la epilepsia en los distintos pacientes, ya que la epilepsia afecta a cada paciente de forma distinta, produciendo convulsiones en distintas zonas del cerebro, por lo que, se pueden tener desde pacientes que tengan convulsiones en una zona del cerebro muy reducida y que solo es detectada por pocos sensores, a pacientes a los que dichas convulsiones afectan a zonas más amplias del cerebro o incluso a varias zonas, siendo detectadas en estos casos por un mayor número de sensores. En definitiva, que es posible que en algunos pacientes tan solo unos pocos sensores capten las convulsiones, y que el resto de los sensores no solo no aporte información, sino que, además, hacen que los resultados empeoren. Debido también a esta gran casuística de la epilepsia, otro posible motivo de los diferentes resultados en los distintos pacientes es la diferente intensidad de las señales y las convulsiones en cada paciente. Si la intensidad de las señales en algún paciente es más pequeña, sus muestras “preictales” pueden ser más difíciles de detectar y diferenciar de las muestras “interictales”. En lo que se ha comentado en estos últimos párrafos se puede ver la gran complejidad que presenta un trastorno como la epilepsia y justifica los esfuerzos que se realizan por entender más esta enfermedad y por mejorar la vida de los pacientes epilépticos. o SEGUNDA PRUEBA CON LA RED MLP En esta segunda prueba se va a aumentar el número de unidades de las capas ocultas para ver cómo afectan a los resultados. La tabla con los resultados se muestra en la Tabla 2 y las especificaciones resumidas quedarían como sigue: - Cuatro capas ocultas con un número de unidades de 3000, 1000, 50 y 20, respectivamente. - 10 epochs. - 1280 muestras de batch_size. 61 - Todas las muestras se utilizan para entrenamiento y test. - RMSProp como optimizador. - Entropía cruzada binaria como función de costes o pérdidas (Loss). Tabla 2 Resultados de la segunda prueba del modelo MLP (R=Mejor. A=Peor) Al aumentar el número de unidades de las capas ocultas, se observan unos notables incrementos tanto del tiempo de entrenamiento como del número de parámetros y, sin embargo, los resultados obtenidos son prácticamente iguales al caso anterior, por lo que, no es eficiente en este caso aumentar el número de unidades de las capas de la red. El gran incremento tanto del tiempo de entrenamiento como del número de parámetros se debe a que, como se ha comentado anteriormente, las neuronas de una red perceptrón multicapa están completamente conectadas, lo que hace que, al aumentar el número de unidades, aumenten exponencialmente el número de conexiones de la red, lo que conlleva a un gran aumento de la complejidad, aumentando en gran medida el número de parámetros de la red y el tiempo de ejecución. o TERCERA PRUEBA CON LA RED MLP En esta segunda prueba se van a añadir ciertos cambios para ver cómo afectan a los resultados. Se le va a añadir un “validation_split” de 0.1, esto es, en el entrenamiento, un 10% de las pruebas se van a utilizar como validación. Por otra parte, se va a aumentar el número de epochs a 20. Los resultados se indican en la Tabla 3. Las especificaciones resumidas, quedarían como sigue: PATIENT SENSITIVITY SPECIFICITY ACCURACY FALSE ALARM h-1 TRAINING TIME (min) No. OF PARAMETERS P 1 0.69228 0.69228 0.69231 0.153 51.08 93775112 P 3 0.91517 0.91536 0.91526 0.042 49.18 93775112 P 5 0.60727 0.60686 0.60709 0.196 56.43 93775112 P 9 0.70218 0.70912 0.70570 0.145 54.72 93775112 P 16 0.55199 0.55520 0.55376 0.222 44.03 93925112 P 20 0.72616 0.72573 0.72601 0.137 48.72 93925112 P 22 0.81714 0.81595 0.81650 0.092 52.45 93925112 P 23 0.92261 0.92269 0.92265 0.038 46.15 93775112 MEAN 0.73111 0.73232 0.73176 0.108 50.19 93831334 RESULTADOS 62 62 - Cuatro capas ocultas con un número de unidades de 300, 100, 50 y 20, respectivamente. - Un “validation_split” del 10%. - 20 epochs. - 1280 muestras de batch_size. - RMSProp como optimizador. - Entropía cruzada binaria como función de costes o pérdidas (Loss). Tabla 3 Resultados de la tercera prueba del modelo MLP (R=Mejor. A=Peor) Añadirle validación en el entrenamiento y aumentar a 20 epochs tampoco hace que mejoren los resultados, obteniéndose valores similares. En este caso, tampoco es efectivo aumentar el número de epochs, puesto que lo único que se consigue con esto es aumentar el tiempo de entrenamiento sin mejorar los resultados. o CUARTA PRUEBA CON LA RED MLP En esta tercera prueba se van a añadir, además de las modificaciones de la segunda prueba (‘validation_split y 20 epochs’), más capas al modelo, teniendo ahora como unidades de las capas ocultas 300, 100, 70, 50, 30 y 20, respectivamente. Los resultados se muestran en la Tabla 4. Las especificaciones resumidas quedarían como sigue: PATIENT SENSITIVITY SPECIFICITY ACCURACY FALSE ALARM h-1 TRAINING TIME (min) No. OF PARAMETERS P 1 0.70032 0.69493 0.69767 0.152 35.32 9756512 P 3 0.91033 0.91057 0.91046 0.045 34.85 9756512 P 5 0.57837 0.58145 0.57994 0.216 39.16 9756512 P 9 0.69369 0.69369 0.69369 0.153 38.25 9786512 P 16 0.55099 0.54833 0.54965 0.225 30.54 9906512 P 20 0.72387 0.72452 0.72421 0.142 33.54 9906512 P 22 0.82890 0.82875 0.82881 0.094 36.55 9906512 P 23 0.90117 0.90122 0.90121 0.051 32.06 9756512 MEAN 0.72484 0.72428 0.72458 0.116 34.92 9816260 63 - Cuatro capas ocultas con un número de unidades de 3000, 1000, 70, 50, 30 y 20, respectivamente. - Un “validation_split” del 10%. - 20 epochs. - 1280 muestras de batch_size. - RMSProp como optimizador. - Entropía cruzada binaria como función de costes o pérdidas (Loss). Tabla 4 Resultados de la cuarta prueba del modelo MLP (R=Mejor. A=Peor) Nuevamente, en esta última prueba con la red MLP, se vuelven a obtener resultados similares, por lo que, aumentar el número de capas ocultas tampoco funciona en este caso. Según se ha observado, cambiar los parámetros de esta red MLP no hace que se obtengan mejores resultados, por lo que, los resultados obtenidos en la primera prueba son los máximos valores que se pueden obtener con esta red y, si se quiere mejorarlos, habría que cambiar la red y/o añadirle capas más complejas. En el siguiente modelo, se van a añadir capas convolucionales, más complejas que las de MLP y permitirán obtener mejores resultados. PATIENT SENSITIVITY SPECIFICITY ACCURACY FALSE ALARM h-1 TRAINING TIME (min) No. OF PARAMETERS P 1 0.68685 0.68617 0.68651 0.156 54.68 9763212 P 3 0.90893 0.90901 0.90895 0.045 53.82 9763212 P 5 0.58981 0.59006 0.58991 0.204 59.29 9763212 P 9 0.69461 0.69488 0.69475 0.152 58.72 9793212 P 16 0.54929 0.55104 0.55021 0.224 46.83 9913212 P 20 0.70101 0.70135 0.70117 0.149 51.96 9913212 P 22 0.82528 0.82532 0.82529 0.087 56.40 9913212 P 23 0.89517 0.89341 0.89455 0.053 49.52 9913212 MEAN 0.72066 0.72081 0.72076 0.116 53.74 9841699 RESULTADOS 64 64 5.3. Red CNN+MLP Las tablas incluidas en este apartado constan de los mismos campos que las tablas del apartado anterior, esto permitirá observar de forma clara las diferencias entre los distintos resultados obtenidos por los modelos. o PRIMERA PRUEBA CON LA RED CNN+MLP En primer lugar, se va a probar el modelo CNN+MLP con las especificaciones dadas en el subapartado “Modelo propuesto” dentro del apartado 4.2. La red CNN viene representada en la Figura 27, el esquema del modelo completo en la Figura 28 y los resultados de esta prueba se indican en la Tabla 5. Las especificaciones resumidas son: - Se le pasan matrices de 1280x23 de las señales EEG recortadas. - La CNN intercala capas convolucionales con capas de agrupación (pooling), tal y como se muestra en la Figura 27. Se utilizan cuatro capas convolucionales, de 32 unidades y de 3x2 para hacerla adecuada para matrices rectangulares, y tres de pooling de 2x2. - Una capa para aplicar la técnica de normalización de Batch, explicada en el apartado 4.2. - Una red MLP cuyas cuatro capas ocultas tienen 300, 100, 50 y 20 unidades, respectivamente. - 50 epochs. - 32 muestras de batch_size. - Todas las muestras se utilizan para entrenamiento y test. - RMSProp como optimizador. - Entropía cruzada binaria como función de costes o pérdidas (Loss). 65 Tabla 5 Resultados de la primera prueba del modelo CNN+MLP (R=Mejor. A=Peor) Para este primer caso de la red CNN se obtienen muy buenos resultados, la mayoría por encima del 90%, obteniendo una media del 89%. Se puede observar que el número de parámetros es mucho interior al que se tenía con la red MLP, lo que se debe a que la red CNN hace agrupación y consigue reducir el número de características. Otro aspecto importante es el tiempo de entrenamiento, el cual es mucho inferior al de la red MLP. Esto se debe también al uso de GPU, muy adecuada a la hora de entrenar con redes convolucionales. o SEGUNDA PRUEBA CON LA RED CNN+MLP Se va a probar el modelo CNN+MLP con las especificaciones utilizadas en la primera prueba, pero añadiéndole más capas de normalización de batch y entrenando con 200 epochs. Los resultados vienen indicados en la Tabla 6. Las especificaciones resumidas son: - Se le pasan matrices de 1280x23 de las señales EEG recortadas. - La CNN intercala capas convolucionales con capas de agrupación (pooling), tal y como se muestra en la Figura 27. Se utilizan cuatro capas convolucionales, de 32 unidades y de 3x2 para hacerla adecuada para matrices rectangulares, y tres de pooling de 2x2. - Varias capas intercaladas para aplicar la técnica de normalización de Batch, explicada en el apartado 4.2. - Una red MLP cuyas cuatro capas ocultas tienen 300, 100, 50 y 20 unidades, respectivamente. - 200 epochs. PATIENT SENSITIVITY SPECIFICITY ACCURACY FALSE ALARM h-1 TRAINING TIME (min) No. OF PARAMETERS P 1 0.99908 0.99908 0.99908 0.0004 3.45 1552992 P 3 0.97161 0.97508 0.97508 0.012 3.13 1552992 P 5 0.85333 0.86511 0.86111 0.067 3.87 1552992 P 9 0.73317 0.73708 0.73474 0.131 3.74 1552992 P 16 0.73608 0.71958 0.72577 0.141 3.54 1552992 P 20 0.98437 0.98437 0.98437 0.007 3.92 1552992 P 22 0.91281 0.90966 0.91071 0.045 4.13 1552992 P 23 0.99420 0.99516 0.99420 0.0024 2.93 1552992 MEAN 0.89159 0.89131 0.891416 0.016 3.56 1552992 RESULTADOS 72 72 5.5. Selección de canal (Channel select) Por último, se va a implementar un algoritmo de selección de canal, mediante el cual se va a buscar igualar o incluso mejorar los resultados que se obtienen utilizando todos los sensores. El esquema de este algoritmo se representa en la Figura 33 y, como se puede observar, es iterativo. En cada una de las iteraciones el algoritmo va añadiendo un sensor más al grupo de sensores utilizados. El algoritmo seguirá iterando hasta que el resultado obtenido iguale o mejore al resultado que se obtiene utilizando todos los sensores. Como resultado se tendrá la precisión obtenida, la cual será igual o mayor que la obtenida sin seleccionar canales, y el número de canales seleccionados con el cual se ha obtenido esta precisión. Este algoritmo resulta interesante ya que, debido a la naturaleza de la epilepsia que dependiendo del paciente puede afectar a una zona del cerebro u otra, se verá como utilizando un número de canales inferior se pueden obtener mejores resultados. Esto se debe a que, al afectar la epilepsia normalmente solo a alguna zona concreta del cerebro del paciente, muchos de los canales no aportan ninguna información, llegando incluso a hacer que los resultados empeoren. Figura 33 Algoritmo de selección de canal (Channel select) [4] 73 Este algoritmo de selección se va a aplicar con el modelo CNN+Bi-LSTM, cuyos resultados se han indicado en el apartado anterior. Como se puede observar en la Figura 33, en este algoritmo es necesario calcular la entropía y esta se calcula mediante la ecuación (26). 𝐻=−∑𝑝𝑖ln𝑝𝑖 𝑘 𝑖=1 (26) Dónde 𝐻 es la entropía, 𝑝𝑖 es la probabilidad de la clase 𝑖 en el canal y 𝑙𝑛 es el logaritmo neperiano. En este caso se está utilizando un logaritmo neperiano, por lo que la entropía se mide en nats, sin embargo, podría utilizarse igualmente un logaritmo en base dos, con lo que la entropía se mediría en bits y como esta se va a utilizar para comparar los resultados serían los mismos. Calcular la entropía es necesario en el algoritmo para medir la cantidad de información que aporta cada canal y poder así ordenar dichos canales de mayor a menor entropía. Esto permite utilizar, en primer lugar, tan solo los canales que más información aportan e ir añadiendo un canal más en cada iteración del algoritmo. Por tanto, el algoritmo, en cada iteración, lo que hace es realizar el entrenamiento y el test del modelo con los canales que más información aportan y compara el resultado con el obtenido aplicando el modelo con todos los canales. El algoritmo continúa iterando y añadiendo canales hasta que se obtenga un resultado igual o mejor que el obtenido con todos los canales o hasta que se añadan todos los canales, resultando que no se ha podido conseguir obtener mejor o igual resultado con menos canales. En el caso en el que en alguna de las iteraciones se obtenga mejor o igual resultado, se tiene que se pueden eliminar el resto de los canales sobrantes, con lo que se consigue que el sistema tenga una mayor eficiencia, ya que se están quitando canales que no aportan apenas información o, incluso, que hacen que los resultados empeoren, reduciéndose la carga computacional. Conviene recordar que este proceso es específico para cada paciente, por lo que, los canales que más información aportan para un paciente, en otro, podrían ser incluso los que menos información aporten, lo que obliga a realizar todo el proceso para cada uno de los pacientes. La entropía se calcula calculando el número de clases, la probabilidad de cada clase y restando la probabilidad de cada clase por el logaritmo neperiano de esta probabilidad. Los resultados obtenidos al aplicar este algoritmo en cada paciente son: ⎯ Paciente 1: Precisión con todos los canales: 0.99725 Precisión resultante: 0.99817. Número de canales: 10 El número de canales utilizado para obtener la misma o más precisión es de 10. Por lo que se dejan de utilizar 13 canales, lo que implica un gran ahorro computacional. RESULTADOS 74 74 ⎯ Paciente 3: Precisión con todos los canales: 0.9275782108306885 Precisión: 0.9663962721824646. Número de canales: 9 El número de canales utilizado para obtener la misma o más precisión es de 8. Dejando de utilizar 15 canales, lo que implica un gran ahorro computacional. ⎯ Paciente 5: Precisión con todos los canales: 0.8299999833106995 Precisión: 0.8299999833106995. Número de canales: 8 El número de canales utilizado para obtener la misma o más precisión es de 8. Dejando de utilizar 15 canales, lo que implica un gran ahorro computacional ⎯ Paciente 9: Precisión con todos los canales: 0.6071987748146057 Precisión: 0.7190923094749451. Número de canales: 8 El número de canales utilizado para obtener la misma o más precisión es de 8. Dejando de utilizar 15 canales, lo que implica un gran ahorro computacional ⎯ Paciente 16: Precisión con todos los canales: 0.6309278607368469 Precisión: 0.6721649765968323. Número de canales: 12 El número de canales utilizado para obtener la misma o más precisión es de 12. Dejando de utilizar 11 canales, lo que implica un gran ahorro computacional ⎯ Paciente 20: Precisión con todos los canales: 0.8888888955116272 Precisión: 0.96875. Número de canales: 10 El número de canales utilizado para obtener la misma o más precisión es de 10. Dejando de utilizar 13 canales, lo que implica un gran ahorro computacional 75 ⎯ Paciente 22: Precisión con todos los canales: 0.9327731132507324 Precisión: 0.9337227005958557. Número de canales: 17 El número de canales utilizado para obtener la misma o más precisión es de 17. Dejando de utilizar 6 canales, lo que implica un gran ahorro computacional ⎯ Paciente 23: Precisión con todos los canales: 0.9835748672485352 Precisión: 0.9942029118537903. Número de canales: 11 El número de canales utilizado para obtener la misma o más precisión es de 11. Dejando de utilizar 12 canales, lo que implica un gran ahorro computacional Conclusiones 76 76 6 CONCLUSIONES Después de realizar este estudio, podemos concluir que se han obtenido buenos resultados de los que se pueden extraer varios aspectos interesantes. En la Tabla 11 se han incluido la media de los resultados obtenidos en las primeras pruebas de las tres técnicas utilizados en este trabajo. Como puede observarse, de los tres modelos, el que mejor resultados ha obtenido es el modelo CNN+Bi-LSTM, con el que se ha obtenido una probabilidad media del 90%, además de utilizar un número bajo de parámetros y con tiempos de entrenamiento y test también bajos, entre uno y dos minutos. Con el modelo MLP, que es el más básico, se han obtenido resultados por encima del 70%, que no están nada mal, pero, sin embargo, los altos tiempos de ejecución hacen que no sea una buena opción. Por último, el segundo de los tres modelos, el de CNN+MLP, es preferible frente al básico MLP, ya que se obtienen resultados similares al tercer modelo, aunque sigue siendo mejor el tercero, ya que tiene tiempos de entrenamiento y test inferiores. Por otra parte, como se ha mencionado anteriormente, llama la atención la gran variación de resultados en un mismo modelo de unos pacientes frente a otros, ya que hay pacientes cuyos resultados están por encima del 90% y otros incluso por debajo del 70%. Se puede concluir que esto se debe a la gran casuística de la que es característica la epilepsia. Este trastorno afecta a cada paciente de una forma diferente y muy particular, por lo que, para conseguir resultados óptimos, con los que mejorar la calidad de vida de los pacientes, se tienen que implementar soluciones que son específicas para cada paciente. Esta gran casuística de la epilepsia es producida por el amplio abanico de posibilidades a las que se pueden enfrentar los pacientes con este trastorno. Algunas de las características en las que este trastorno puede ser diferente de un paciente a otro son, por ejemplo, la localización de las convulsiones en el cerebro, el número de convulsiones, la intensidad y duración de estas, etc. Sería interesante, para un estudio posterior, a partir de este trabajo, analizar qué diferencias hay entre las señales de un paciente en el cual se están obteniendo probabilidades superiores al 90% y las señales de un paciente en el que se obtienen probabilidades del 70%. Esto último permitiría, si se consiguiesen detectar las diferencias entre las señales, saber cómo modificar las técnicas y conseguir así mejores resultados en los pacientes en los que se obtienen probabilidades más bajas. Tabla 11 Resultados medios obtenidos en la primera prueba de las tres técnicas PATIENT SENSITIVITY SPECIFICITY ACCURACY FALSE ALARM h-1 TRAINING TIME (min) No. OF PARAMETERS MLP 0.73543 0.73501 0.73523 0.106 12.65 9812493 CNN+MLP 0.89159 0.89131 0.891416 0.016 3.56 1552992 CNN+Bi-LSTM 0.90882 0.90815 0.90833 0.013 1.75 42511 77 Tras los tres modelos, se ha realizado una última prueba en la que se ha utilizado el algoritmo de selección de canal, algoritmo que aporta resultados muy interesantes, ya que permite que se puedan obtener iguales o mejores resultados utilizando muchos menos canales, lo que es interesante, puesto que con esto se consigue un gran ahorro computacional que al final se traduce en un menor tiempo de ejecución, algo muy conveniente para la aplicación del sistema a tiempo real. Una vez aplicado este algoritmo de selección de canal, puede observarse que este es muy útil, ya que, en todos los casos analizados, se consiguen mejores resultados utilizando menos canales, lo que resulta en una mayor eficiencia al reducir en gran medida la carga computacional. Además, permite saber, para cada paciente, qué canales son los que más información aportan, permitiendo que análisis posteriores se puedan realizar de forma más eficiente, limitándose tan solo a estos canales discriminativos específicos para cada caso. Referencias 78 78 REFERENCIAS [1] F. S. Vidoy, «Detección de crisis epilépticas a partir del electroencefalograma,» Dep. Teoría de la Señal y Comunicaciones de la Etsi (US), Sevilla, 2017. [2] Á. (. A. d. Epilepsia). [En línea]. Available: http://www.apiceepilepsia.org/Descripcion-de-los- diferentes-tipos-de-crisis-epilepticas. [3] NINDS, «NINDS (National Institute of Neurological Disorders and Strokes),» [En línea]. Available: https://espanol.ninds.nih.gov/trastornos/crisis_epilepticas.htm. [4] H. D. y. M. A. Bayoumi, «Efficient Epileptic Seizure Prediction Based on Deep Learning,» 2019. [5] S. Giménez, «medicina21,» Farmavet, 2018. [En línea]. Available: https://www.medicina21.com/articulos/ver/1178. [6] M. Gratacós, «Tronco del encéfalo: funciones, partes y anatomía,» [En línea]. Available: https://www.lifeder.com/tronco-del-encefalo/. [7] R. B. Navarro, «Tema 5. Electroencefalografía,» Instrumentación Biomédica. Departamento Electrónica. Universidad Alcalá. [8] A. L., Goldberger; y otros, «PhysioBank, PhysioToolkit, and PhysioNet}: Components of a New Research Resource for Complex Physiologic Signals,» Circulation, vol. 101, nº 23, pp. e215-- e220, 2000 (June 13). [9] J. Pastor, «Qué es la inteligencia artificial,» 2018. [En línea]. Available: https://www.xataka.com/robotica-e-ia/que-inteligencia-artificial. [10] R. L. d. M. Badía y P. M. González, Inteligencia artificial (¿Qué sabemos de?), ES: La catarata, 2017. [11] Domotizados.co, «Los asistentes virtuales mas usados en los hogares,» Domotizados, Febrero 2018. [En línea]. Available: https://domotizados.co/asistentes-digitales-tomando-el-control/. [12] C. Gillingham, «A Venn diagram illustrating one of the weaknesses of the Turing test.,» 2007. [13] Iat.es, «INTELIGENCIA ARTIFICIAL: QUÉ ES, TIPOS, TÉCNICAS, VENTAJAS,» IAT, Febrero 2020. [En línea]. Available: https://iat.es/tecnologias/inteligencia-artificial/. [14] «Inteligenciayartificial,» 2019. [En línea]. Available: https://inteligenciayartificial.com/. [15] P. R. de los Santos, «Tipos de aprendizaje en Machine Learning: supervisado y no supervisado,» Telefónica, Noviembre 2017. [En línea]. Available: https://empresas.blogthinkbig.com/que- 79 algoritmo-elegir-en-ml-aprendizaje/. [16] Salesforce, «Machine Learning y Deep Learning: aprende las diferencias,» Julio 2018. [En línea]. Available: https://www.salesforce.com/mx/blog/2018/7/Machine-Learning-y-Deep- Learning-aprende-las-diferencias.html. [17] Decidesoluciones, «Procesamiento del Lenguaje Natural (PLN o NLP): qué es y para qué se utiliza,» 2019. [En línea]. Available: https://decidesoluciones.es/procesamiento-del-lenguaje- natural-pln-o-nlp-que-es-y-para-que-se-utiliza/. [18] A. H. Fath, F. Madanifar y M. Abbasi, «Implementation of multilayer perceptron (MLP) and radial basis function (RBF) neural networks to predict solution gas-oil ratio of crude oil systems,» de Petroleum, 2020, pp. Volume 6, Issue 1, 80-91. [19] V. Mirjalili y S. Raschka, Python machine learning, Barcelona: Marcombo, 2019. [20] J. D. G. Villanueva, «Redes neuronales desde cero,» 2019. [En línea]. Available: https://www.iartificial.net/redes-neuronales-desde-cero-i-introduccion/. [21] K. He, X. Zhang, S. Ren y J. Sun, «Delving deep into rectifiers: Surpassing human.level performance on imagenet classification,» de Procedings of the IEEE international conference on computer vision, 2015, pp. 1026-1034. [22] Y. Bengio y X. Glorot, «Understanding the difficulty of training deep feedforward neural networks,» de Proceedings of the Thirteen International Conference on Artificial Inteligence and Statistics, 2010, pp. 249-256. [23] D. Mishkin y J. Matas, «All you need is a good init,» de Tetrahedron, 2015, pp. 3013-3018. [24] J. M. V. Arias, «Modelo de aprendizaje profundo/red neuronal convolucional (CNN) para clasificación de calidad de ácidos grasos por imágenes de semillas de Helianthus annuus,» Universitat Oberta de Catalunya, 2019. [25] J. Torres, «Deep learning: Introducción práctica con Keras,» 2019. [En línea]. Available: https://torres.ai/deep-learning-inteligencia-artificial-keras/. [26] F. Huang y Y. LeCun, «Large-scale Learning with SVM and Convolutional for Generic Object Categorization,» de 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2006, pp. vol. 1, pp. 284-291. [27] S. Dupond, «A through review on the current advance of neural network structures,» de Annual Reviews in Control, 2019, pp. 14: 200-230. [28] J. Torres, «Redes Neuronales Recurrentes,» Septiembre 2019. [En línea]. Available: https://torres.ai/redes-neuronales-recurrentes/. [29] Y. Bengio y Y. Lecun, «Convolutional Networks for Images, Speech, and Time-Series,» 1997. Glosario 80 80 GLOSARIO ECoG: Electrocorticograma 17 E-EEG: Estéreo-Electroencefalograma 17 EEG: Electroencefalograma 1, 10 ERFC: Exponencial Radial Base Function 31 ICA: Independent Component Analysis 22 KKT: Karush-Kuhn-Tucker 28 NINDS: National Institute of Neurological Disorders and Stroke 7 PhysioBank ATM: PhysioBank’s Automated Teller Machine 22 RBF: Radial Base Function 31 SVM: Máquina de Soporte Vectorial 1 TAC: Tomografía Axial Computarizada 6 UCI: Unidad de Cuidados Intensivos 16 81 ANEXO. FUNCIONES DE PYTHON UTILIZADAS En esta sección se añaden los códigos de todos los modelos utilizados en este trabajo. Todos han sido realizados en Python y, entre otras, con la librería Keras, utilizando Google Colaboratory como entorno de desarrollo. ➢ Código modelo MLP import keras from keras.models import Sequential from keras.layers import Dense import numpy as np import lee_grabaciones_mlp # Lee_grabaciones_mlp es el fichero .py que contiene una función por cada paciente y se encarga de leer de la base de datos las señales EEG y seleccionar las muestras “preictales” e “interictales” de cada grabación. from time import time # CAMBIAR NÚMERO DE PACIENTE SEGÚN INTERESE. SE TIENEN LOS PACIENTES 1,3,5,9,16,20,22,23 train_signal, test_signal, train_labels, test_labels = lee_grabaciones_mlp.leer_paciente_1() # De la función leer_paciente_*() se obtienen directamente las señales de train, test y los vectores de etiquetas network = Sequential() network.add(Dense(30000, activation='relu')) network.add(Dense(300, activation='relu')) network.add(Dense(100, activation='relu')) network.add(Dense(50, activation='relu')) network.add(Dense(20, activation='relu')) network.add(Dense(2, activation='sigmoid')) network.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy',keras.metrics.SpecificityAtSensitivity(0.5),keras.metrics.Sensiti vityAtSpecificity(0.5),keras.metrics.FalsePositives(),keras.metrics.TruePositives(),ke ras.metrics.FalseNegatives(),keras.metrics.TrueNegatives()]) start = time() # Para calcular el tiempo de entrenamiento y test. Empieza a contar desde aquí network.fit(train_signal, train_labels, epochs=10, batch_size=1280) # Entrenamiento. 1280 muestras equivalen a 5 segundos de grabación test_loss, test_acc,specificity,sensitivity,fp,tp,fn,tn =network.evaluate(test_signal, test_labels) # Test print("sensitivity calculada: ",tp/(tp+fn))# Imprime el valor de la sensibilidad print("specificity calculada: ",tn/(tn+fp))# Imprime el valor de la especifidad print("Acuraccy: ",test_acc)# Imprime el valor de la precisión print("fp: ",fp) # Imprime el valor de los falsos positivos