Full text
Proyecto Fin de Carrera Ingeniería de Telecomunicación Formato de Publicación de la Escuela Técnica Superior de Ingeniería Autor: F. Javier Payán Somet Tutor: Juan José Murillo Fuentes Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2013 Trabajo Fin de Grado Grado en Ingeniería Aeroespacial Detección de los niveles de estrés y ansiedad en pilotos aplicando técnicas de Machine Learning Autor: Carlos Navarro Cantos Tutora: María Ángeles Martín Prats Dpto. Tecnología Electrónica Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2018
Trabajo Fin de Grado Grado en Ingeniería Aeroespacial Detección de los niveles de estrés y ansiedad en pilotos aplicando técnicas de Machine Learning Autor: Carlos Navarro Cantos Tutora: María Ángeles Martín Prats Profesor Titular Dpto. Tecnología Electrónica Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2018
Trabajo Fin de Grado: Detección de los niveles de estrés y ansiedad en pilotos aplicando técnicas de Machine Learning Autor: Carlos Navarro Cantos Tutora: María Ángeles Martín Prats El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores: Presidente: Vocal/es: Secretario: acuerdan otorgarle la calificación de: El Secretario del Tribunal Fecha:
Índice Índice de Tablas III Índice de Figuras V 1 Introducción 7 1.1 Neurofisiología y el estudio de las emociones 7 1.1.1 Aspectos Anatomofisiológicos 8 1.1.2 Anatomía microscópica 8 1.1.3 Potencial de acción 9 1.1.4 Comunicación entre neuronas 9 1.2 Estructura del Sistema Nervioso Central 10 1.2.1 La amígdala como protagonista de las emociones 11 1.2.2 Sistema Nervioso Autónomo y Somático 12 1.3 Aspectos relevantes de la emoción 13 1.3.1 Fisiología de las emociones 13 1.3.2 Clasificación de las emociones 13 Línea evolucionista: Darwin 14 La línea Psicofisiológica 15 Línea neurológica 16 Teorías de la activación 17 Teorías cognitivas 17 1.4 Fisiología del estrés 20 1.4.1 Fisiología del estrés 20 Eje hipofisiosuprarrenal 20 Sistema Nervioso Autónomo 21 Fases del estrés 21 Modelo biopsicosocial 22 1.5 Bioseñales 22 1.5.1 Electrocardiograma 23 1.5.2 Electroencefalograma 24 1.5.3 Electromiograma 24 1.5.4 Respuesta Galvánica de la Piel 24 1.5.5 Otros potenciales bioeléctricos 24 1.6 Sensores Biométricos 26 1.6.1 Electrocardiógrafo 26 1.6.2 Equipos para la medición de la actividad cerebral 27 1.6.3 Equipos para la medición de la respuesta galvánica 27 1.7 Machine Learning 29 1.7.1 Relación Sesgo-Varianza 32 1.7.2 Overfitting y Underfitting 32 I
II Índice 1.7.3 Algoritmos de aprendizaje 33 Perceptron 33 Red neuronal multicapa 34 K-Nearest Neighbors 41 Support Vector Machines 41 2 Análisis Experimental 43 2.1 Sensor GSR 43 2.2 Protocolo de pruebas 47 Bases de datos canciones 48 2.3 Machine Learning en Matlab 51 2.3.1 Matlab: nntool 52 2.3.2 Matlab: nnstart 53 2.3.3 Classification Learner 53 2.4 Creación aplicación para detectar los niveles de estrés en Matlab 55 2.4.1 Creación Red Neuronal 56 3 Análisis de Resultados 61 3.1 Resultados Primera Prueba 61 3.1.1 5 Personas 15 canciones 15 segundos 61 3.1.2 16 personas 15 canciones de 15 segundos 62 Mejora realización de la primera prueba 65 3.2 Resultados segunda prueba 67 3.3 Método alternativo 69 3.3.1 Validación de los resultados 70 4 Conclusiones y trabajo futuro 73 5 Códigos 75 Bibliografía 81
Índice de Tablas 1.1 Lenguaje subjetivo/funcional 15 1.2 Clasificación algoritmos Machine Learning 31 2.1 Especificaciones Grove GSR 44 2.2 Canciones utilizadas y sus puntuaciones 48 3.1 Canciones primera prueba segunda parte 65 3.2 Resultados test SAM 67 3.3 Comparación media del test y paper para cada canción 67 3.4 Resultados predicción modelos ML 69 III
4Capítulo 0. Índice de Figuras a un microcontrolador y se exportan los datos vía Matlab. Con los ficheros de datos, el siguiente paso es crear un modelo que sea capaz de predecir estados futuros de estrés y con ello provocar una respuesta en la aeronave, en caso de que se esté midiendo a pilotos, o equipo que se esté utilizando. La facilidad para crear estos modelos con Matlab lo hacen una herramienta idónea para estos procedimientos. Los mejores resultados, según los datos que se obtienen del sensor, son los proporcionados por los algoritmos de SVM tras realizar algunas simplificaciones sobre los objetivos introducidos.
Abstract Nowadays, a huge number of aeronautics professionals are involved in situations in which they have to manage stress or anxiety. This sensations can not provide them with the correct answers and in many cases a fatal accident occur. Researches have shown that being pilot is one of the most stressful jobs and they take decisions in a short time and very important for the safety of the crew and the passengers. Many of them declare that they work after few hours sleeping, 75 percent of pilots say they feel fatigued commmonly. Moreover, there are other aeronautics professionals with a vital importance in this sector,as Reason model show in its explanation. To determine these levels of stress and anxiety, Universities have dedicated areas in which they investigate emotional topics, they call this computational affective areas. For instance,MIT researches have demonstrated a way to the recognition of stress in a call center. The concept of Big Data is being trended recently due to the ascent of the social networks and the Internet. There are websites that storage huge amount of data and they use with no legal consent in future applications. However, there are also other ways to use these methods. For example, Big Data and Machine Learning are crucial in finance for brokers who create predictive models whit these techniques or for doctors who investigate cancer, they study different images and they try to recognize a pattern. Machine Learning is useful when we do not have an equation o mathematical expression to determine how a model works. Aeronautics presents a great number of equations that explain in a well way how an aircraft and the aeronautics sector works. Although, Imperial College researchers have shown models that apply Machine Learning concepts to determine the trajectory of the aircraft in extreme weather conditions. In this book, we try to create a predictive tool which can provide an answer about the anxiety or stress level. To do that, people have collaborated to measure the electrodermal activity with a galvanic skin response sensor and the data have been stored. With this data, we have calculated features and apply as inputs in the Machine Learning algorithms. Finally, the predictive model has been created. 5
1 Introducción En este trabajo se ha comenzado dando una explicación sobre lo que ocurre en el organismo cuando tiene que producir una reacción a un estímulo, desde las estructuras más básicas del sistema nervioso, las neuronas y su composición, hasta la forma en que éstas se comunican mediante potenciales de acción hasta llegar a las vías motoras. Debido a la complejidad de esta ciencia, la neurofisiología es un campo aún por descubrir en muchos aspectos, la investigación se centró en el sistema límbico y la amígdala ya que tienen gran repercusión sobre las emociones experimentadas por las personas. A la hora de estudiar las emociones se ha hecho un estudio general sobre aquellas teorías que a lo largo de la historia han sido de utilidad en cuanto al estudio de la conducta del hombre y la percepción y reacción a los estímulos que observa. Desde Darwin hasta nuestra década, estas teorías han ido acompañadas del conocimiento científico, lo que ha implicado una evolución hacia teorías más cognitivas debido a los avances en neurociencia y el estudio del sistema nervioso. Las teorías psicofisiológicas son de especial importancia para el entendimiento del objeto del trabajo. Estas teorías establecen una escala de las emociones separándolas por un lado en función del grado de activación o excitación que provoca una reacción en el individuo y por otro el nivel de agrado o desagrado. Combinando ambos parámetros se podría explicar cualquier emoción experimentada por una persona. Con esto como punto de partida, se pretende desarrollar una herramienta que consiga detectar los niveles de estrés y ansiedad, alto arousal o activación y bajo valence o grado de placer, más concretamente en las fases de distrés del organismo en las cuales se vuelve menos productivo y no es capaz de tomar decisiones de manera lúcida. Debido a la complejidad de la formulación del problema, es lógico pensar que no existe una ecuación o relación matemática que permita conocer la emoción de una persona en función de unos parámetros determinados. Sin embargo, se podrían recoger datos de constantes del organismo de personas en diferentes situaciones y asociarlas a la emoción que han percibido. Es en esta parte donde se presenta los algoritmos de Machine Learning, los cuales crean modelos que a partir de un número de inputs, por lo general cientos o miles, y targets permiten crear funciones las cuales asocian unos parámetros con sus objetivos y se crea un modelo de predicción. Estos métodos se basan en cálculo de distancias o probabilidades, siendo más complejos cuantas más clases haya que clasificar. Para poder introducir entradas al modelo es necesario recopilar los datos del organismo de cada persona. Para ello existen alternativas diversas: encefalograma, para medir la respuesta cerebral, electrocardiograma, para conocer el ritmo cardíaco, electromiograma, conectando los electrodos a músculos determinados, reconocimiento facial o la respuesta galvánica de la piel. 1.1 Neurofisiología y el estudio de las emociones Para conocer y entender el comportamiento del ser humano frente a un estímulo es necesario realizar un estudio previo sobre el funcionamiento del sistema nervioso, así como las partes que lo componen. En este 7
8Capítulo 1. Introducción Figura 1.1 Planteamiento del trabajo. estudio neurofisiológico, rama de la fisiología que estudia el sistema nervioso, se describirá en primer lugar la anatomía del sistema nervioso y sus conexiones para, posteriormente, la implicación que se tiene en cada parte cuando se experimenta una emoción. 1.1.1 Aspectos Anatomofisiológicos El sistema nervioso es una red compleja de estructuras especializadas (encéfalo, médula espinal y nervios) que tiene como misión controlar y regular el funcionamiento de los diversos órganos y sistemas, coordinando su interrelación y la relación del organismo con el medio externo. El sistema nervioso está organizado para detectar cambios en el medio interno y externo, evaluar esta información y responder ocasionando cambios en músculos o glándulas. El sistema nervioso se divide en dos grandes subsistemas: •Sistema Nervioso Central (SNC) : compuesto por el encéfalo y la médula espinal. El encéfalo es la parte contenida en el cráneo que comprende el cerebro, cerebelo y tronco del encéfalo. La médula espinal es la parte contenida dentro del canal vertebral y se conecta con el encéfalo a través del agujero occipital del cráneo. El SNC recibe, integra y correlaciona distintos tipos de información sensorial. •Sistema Nervioso Periférico (SNP) : dentro del cual se incluyen todos los tejidos nerviosos situados fuera del sistema nervioso central. Los nervios que se originan en el encéfalo se denominan nervios craneales y los que se originan en la médula espinal nervios raquídeos. Los nervios son haces de fibras nerviosas que comunican los receptores sensoriales hasta el SNC y desde el SNC a los órganos efectores. 1.1.2 Anatomía microscópica El tejido nervioso consta de dos tipos de células: las neuronas y la neuroglia o glia. Las neuronas son las responsables de las funciones atribuidas al sistema nervioso: pensar, sentir, razonar, control muscular, etc. Son células excitables que conducen los impulsos que hacen posibles todas las funciones del sistema nervioso. El encéfalo humano contiene alrededor de 100000 millones de neuronas. La estructura básica es como se ve en la figura 1.2 y constan de tres partes esenciales: • Cuerpo neuronal: el cual contiene el núcleo y citoplasma. • Dendritas: prolongaciones corta ramificadas a través de las cuales la neurona recibe estímulos procedentes de las neuronas vecinas. • Axones: prolongación a través de la cual se traduce el impulso desde el cuerpo celular a otra neurona. El lugar de contacto entre dos neuronas o entre una neurona y un órgano efector se denomina sinapsis.
1.1 Neurofisiología y el estudio de las emociones 9 Figura 1.2 Estructura de una Neurona: dibujo Ramón y Cajal. Las neuronas están sostenidas por un grupo de células no excitables que en conjunto se denominan neuroglia. Las células de la neuroglia son, en general, más pequeñas que las neuronas y las superan en 5 a 10 veces en número. Las principales células de la neuroglia son: astrocitos, oligodendrocitos, células ependimarias, células de Schwann y células satélite. 1.1.3 Potencial de acción Existen tres grupos de neuronas responsables de producir una respuesta en el organismo: sensitivas, interneuronas y motoras. Un reflejo puede producirse cuando estas neuronas se activan e igualmente puede inhibirse cuando neuronas encefálicas activan interneuronas inhibidoras que forman sinapsis con las neuronas motoras. El mensaje es conducido por el axón y se denomina potencial de acción. Las membranas de todas las células del organismo tienen carga eléctrica, pero sólo los axones son capaces de producir potenciales de acción. El potencial de reposo de la membrana se debe a que varios iones están en concentraciones distintas en el líquido del interior celular respecto al líquido del exterior de la célula. El líquido extracelular es abundante en Na+yCl−, y el líquido intracelular en K+y varios aniones orgánicos. La permeabilidad de la membrana celular a distintos iones está regulada por canales iónicos. Cuando el potencial de la membrana está en el valor de reposo (-70 mV), los canales de sodio y potasio dependientes del voltaje están cerrados. Cierta cantidad de Na+ entra continuamente en el axón, pero es rápidamente expulsada de la célula por los transportadores sodio-potasio. Cuando un estimulador eléctrico despolariza la membrana del axón de modo que su potencial alcanza el umbral de excitación, los canales de sodio dependientes del voltaje se abren, y el Na+ entra rápidamente en la célula, impulsado por la fuerza de difusión y la presión electrostática. La entrada de estos iones de carga positiva reduce el potencial de membrana y, ciertamente, provoca que se invierta, de modo que el interior se convierte en positivo. La apertura de los canales de sodio es temporal. La despolarización causada por la entrada de Na+ activa los canales de potasio dependientes del voltaje, y el K+ sale del axón, desplazándose a favor de su gradiente de concentración. Esta salida de K+ lleva rápidamente al potencial de membrana de nuevo a su valor de reposo. Como el potencial de acción de un axón individual es un fenómeno de todo o nada, las neuronas representan la intensidad mediante su tasa de activación. El potencial de acción comienza normalmente en un extremo del axón, allí donde se une al soma. 1.1.4 Comunicación entre neuronas Una vez explicada la estructura a nivel microscópico y los potenciales de acción, es decir, cómo se producen los impulsos nerviosos en las neuronas, es necesario explicar el mecanismo por el cual se produce la sinapsis entre las células. Las sinapsis consisten en uniones entre las terminaciones nerviosas de una neurona y la membrana de otra neurona, una célula muscular o una célula glandular. Cuando se propaga un potencial de acción por un axón, las terminales nerviosas de su extremo liberan un neurotransmisor, sustancia química que produce
10 Capítulo 1. Introducción Figura 1.3 Permeabilidad de los iones durante el potencial de acción. despolarizaciones (PPSE) o hiperpolarizaciones (PPSI) de la membrana postsináptica, membrana de la célula que tiene receptores para el neurotransmisor liberado. La tasa de activación del axón de la neurona postsináptica está determinada por la actividad relativa de las sinapsis excitadoras e inhibidoras en la membrana de sus dendritas y soma, fenómeno conocido como integración neuronal. Las terminales sinápticas contienen vesículas sinápticas, pequeñas esferas ubicadas en el extremo de los axones. La mayoría de las terminales contienen vesículas de dos tamaños; las más pequeñas son abundantes. Cuando el potencial de acción se transmite por el axón, la despolarización abre canales de calcio dependientes del voltaje, que permiten la entrada de Ca2+. Los iones calcio se unen a los grupos de moléculas proteicas en las membranas de vesículas sinápticas atracadas en la zona de liberación. Los grupos de proteínas se separan, haciendo que las vesículas se rompan y liberen el neurotransmisor. A modo de resumen: la conexión entre neuronas se conoce como sinapsis. Si se supone que una neurona envía una señal , o pulso eléctrico (también llamado spike), a través de una sinapsis, a la neurona que envía el pulso se le conoce como neurona presináptica y a la neurona que lo recibe como neurona postsináptica. En el caso que la neurona presináptica envíe pulsos excitatorios se tendrá un cambio llamado PPSE, mientras que si envía pulsos inhibitorios tendremos un cambio llamado PPSI. Una sola neurona del córtex vertebral suele estar conectada a 104 neuronas postsinápticas. Muchas de las terminaciones de un axón terminan directamente en las neuronas más próximas, pero otras pueden llegar a medir varios centímetros, para alcanzar a neuronas que están en otras áreas del cerebro. 1.2 Estructura del Sistema Nervioso Central El SNC está formado por el encéfalo y la médula espinal. El encéfalo es la parte del sistema nervioso central contenida en el cráneo y el cual comprende el cerebro, el cerebelo, el diencéfalo y el tronco encefálico. El cerebro está compuesto por la corteza y el cuerpo calloso, el diencéfalo por el tálamo, epífisis e hipotálamo, y el tronco del encéfalo por el mesencéfalo, protuberancia y el bulbo raquídeo. Debido a que en el presente trabajo se expondrá de manera exhaustiva el estudio de las emociones y sus implicaciones en el organismo, resulta interesante centrarse en las partes del cerebros las cuales están relacionadas con ellas, es decir, el sistema límbico y en particular la amígdala cerebral. El sistema límbico está relacionado con la memoria, recuerdos, atención, instintos sexuales, emociones (placer, miedo, agresividad, etc), la personalidad y la conducta. Dicho sistema está formado por el tálamo, hipotálamo, hipocampo, amígadala, cuerpo calloso y septo. De manera esquemática algunas de las funciones vinculadas a las reacciones emocionales que cumples las estructuras principales [6]: •Núcleo amigdalino : regulación de la conducta emocional innata y base de las respuestas y aprendizajes emocionales. Especialmente vinculado a las experiencias generadoras de miedo y a conductas agresivas.
1.2 Estructura del Sistema Nervioso Central 11 Figura 1.4 Estructuras del sistema límbico. •Hipotálamo : principal conexión con el sistema nervioso autónomo y endocrino vía hipófisis y centros troncoencefálicos. Rector de las expresiones motoras emocionales básicas. •Hipocampo : principal estructura asociada al aprendizaje y memoria espaciotemporal, cumpliendo un papel fundamental en el condicionamiento contextual. •Área septal: vinculada al reforzamiento de conductas de supervivencia, motivación sexual, etc •Núcleo anterior del Tálamo : principal distribuidor de la información derivada de los estímulos emocionales hacia la corteza ventromedial prefrontal y hacia estructuras como el hipocampo y la amígdala. •Circunvolución cingulada : se propone como una de las zonas donde se realiza la integración de la información emocional con la cognoscitiva. El círculo anterior se relaciona con el control o dirección de la atención, con las conductas de anticipación, la monitorización de acciones que median reforzadores negativos y con la modulación de estados cognitivos y afectivos. Pese al atractivo que presenta esta estructura como sustrato organizador de las emociones diferentes autores (Kotter, 1992) proclaman la insuficiencia de dichos argumentos y la falta de consenso sobre los criterios a tener en cuenta para la inclusión de las estructuras anteriores en el sistema. Además, en la actualidad, cada vez se apoya con mayor fuerza el papel de la corteza prefrontal en la integración de la información sensorial y emocional crítica para la toma de decisiones y la conducta social adaptativa, así como la interpretación, expresión y modulación de las emociones. Una posible solución a este problema con el concepto de sistema límbico es estudiar los diferentes subsistemas neurofisiológicos y funcionales que intervienen en cada una de las reacciones emocionales con identidad propia. 1.2.1 La amígdala como protagonista de las emociones Según lo comentado en la sección anterior, es relevante conocer el funcionamiento de la amígdala para poder encontrar patrones fisiológicos ante determinados cambios emocionales y situaciones estresantes. La amígdala está constituida por diferentes núcleos con fibras que se conectan con el hipocampo, ganglios basales, hipotálamo, tálamo y núcleos del tronco cerebral. El complejo amigdalino tiene un papel fundamental en la coordinación de las representaciones corporales de las emociones y de la percepción consciente de las mismas (sentimientos)(Hamman et al.,1999). La información que ingresa a la amígdala lo hace desde distintos sistemas corticales y subcorticales, donde se procesan e integran para elaborar una respuesta emocional concreta. Una vez integradas las respuestas en el complejo amigdalino, las mismas viajarán por las vías eferentes para ejercer sus acciones coordinando la respuesta corporal de las emociones y la percepción consciente de dichas emociones.
12 Capítulo 1. Introducción 1.2.2 Sistema Nervioso Autónomo y Somático El sistema nervioso también se puede clasificar por el modo en el que se transfiere la información, que puede ser de forma voluntaria o involuntaria. Se denomina sistema nervioso somático aquel que de forma voluntaria recoge información a través de la piel, ojos, músculos, etc. y envía la respuesta motora al músculo esquelético. Dicho sistema actúa sobre el ambiente externo y responde voluntariamente a señales sensoriales percibidas conscientemente. El sistema nervioso autónomo o vegetativo es la parte del sistema nervioso central y periférico que se encarga de la regulación de las funciones involuntarias del organismo, del mantenimiento de la homeostasis interna y de las respuestas de adaptación ante las variaciones del medio externo e interno (McCorry, 2007). El sistema nervioso autónomo recoge la información de corazón, hígado, etc. y la envía por su rama simpática o parasimpática a glándulas, corazón, hígado, etc y músculo liso. La mayoría de las señales sensoriales son percibidas de forma no consciente y la mayoría de las actividades motoras no son ejecutadas voluntariamente. El principal centro organizativo del sistema nervioso autónomo es el hipotálamo, controlando todas las funciones vitales e integrando los sistemas autónomo y endocrino. En el tronco encefálico y amígdalas del cerebro, están localizados los centros de organización y respuesta aguda del sistema nervioso autónomo, cuya función es la de integrar los ajustes hemodinámico momentáneos y mantener la automaticidad de la ventilación. El sistema nervioso simpático y el sistema nervioso parasimpático realizan acciones que pueden parecer incompatibles de una misma función. El sistema nervioso simpático actúa en casos de urgencia, activación y estrés. Cuando el organismo siente que está en peligro se prepara para enfrentarse al peligro y actuar en el concepto de "luchar-huir". El organismo necesita utilizar al máximo la energía de la que dispone provocando reacciones como la aceleración del pulso y la respiración, incremento de la sudoración, frena la digestión, aumenta la presión arterial y hace que la sangre llegue en mayor cantidad al cerebro, piernas y brazos. El sistema nervioso parasimpático prepara al organismo para captar y conservar la energía. Por otro lado, la activación del parasimpático tiene que ver con situaciones de recuperación de energía. Durante la activación del sistema nervioso parasimpático se relaja el corazón, se activan las secreciones digestivas, aumenta el peristaltismo (conjunto de movimientos de contracción del tubo digestivo), se reduce el flujo sanguíneo hacia el cerebro, lo que trae como consecuencia un estado de somnolencia. Cuando el sistema nervioso autónomo se activa, la transmisión del estímulo excitatorio a través de la hendidura sináptica ocurre mediante liberación fundamentalmente de tres neurotransmisores que son la noradrenalina, la acetilcolina y, en casos de emergencia, la adrenalina. En los circuitos donde el neurotransmisor es la acelticolina se denominan colnérgicos y cuando es la noradrenalina se llaman adrenérgicos. Cada órgano y tejido está inervado por vías simpáticas y/o parasimpáticas distintas, con muy poca o ninguna interferencia entre ellas. Las neuronas pueden acoplarse selectivamente, de manera que los circuitos individuales sistémicos u otras unidades efectoras se activan de forma independiente.
1.3 Aspectos relevantes de la emoción 13 1.3 Aspectos relevantes de la emoción Diversos autores destacan en que existe una correlación fisiológica de la emoción. Las emociones permiten afrontar situaciones difíciles y predisponen a la acción, en este sentido, las emociones se han desarrollado genéticamente como un bagaje emocional que tiene un valor de supervivencia. Las emociones son, por tanto, impulsos que llevan a las personas a actuar. La aparición de nuevos métodos para profundizar en el estudio de la fisiología del cuerpo y del cerebro confirma con mayor sustento que cada emoción predispone al organismo a un tipo diferente de respuesta. Existe evidencia acerca de la presencia de diferenciación hemisférica en el procesamiento emocional y de la existencia de mediadores neuroanatómicos de la emoción, implicándose el sistema nervioso central en las emociones y su comportamiento derivado. Por otro lado, el conjunto de emociones que se pueden experimentar se pueden reducir en emociones básicas (alegría, ira, miedo, sorpresa, desagrado y tristeza) las cuales son independientes de parámetros culturales o sociales. Este número reducido de 6 a 8 emociones básicas determinadas genéticamente serían la base de cuya combinación surgen las diferentes emociones sociales. 1.3.1 Fisiología de las emociones Las emociones están asociadas a diferentes patrones de reacciones fisiológicas y actividad cerebral. Distintos autores destacan que existe un correlato fisiológico de la emoción, así, las reacciones fisiológicas que acompañan a las emociones están reguladas por el sistema nervioso autónomo (SNA) y en las dos ramas en las que se divide, el sistema simpático y el parasimpático. Ambas ramas van a determinar si el organismo se encuentra en un estado de relajación o excitación. Los seres humanos (y los miembros de otras especies) comunicamos nuestras emociones principalmente a través de gestos faciales. Darwin consideraba que las expresiones de este tipo eran innatas [ 7 ], que estos movimientos musculares eran patrones comportamentales heredados. Ekman y sus colaboradores llevaron a cabo estudios transculturales con miembros de una tribu de Nueva Guinea y sus resultados apoyaron la hipótesis de Darwim. El reconocimiento de la expresión emocional de otras personas implica más el hemisferio derecho que el izquierdo. Estudios han puesto de manifiesto que juzgamos mejor las expresiones faciales o el tono de voz cuando la información se presenta en el hemisferio derecho que cuando se presenta al hemisferio izquierdo. Las exploraciones con TEP (Tomografía por Emisión de Positrones) realizadas cuando las personas juzgan la emoción transmitida mediante la voz muestran que el hemisferio derecho se activa más que el izquierdo. Los estudios con personas con lesiones en el cerebro corroboran dichos hallazgos. Además, indican que el reconocimiento de un rostro en particular implica a circuitos neuronales diferentes de los que se requieren para reconocer la expresión facial. Las expresiones faciales de las emociones (y conductas estereotipadas como la risa o el llanto) son prácticamente imposibles de disimular. Por ejemplo, tan solo una sonrisa auténtica de placer causa la contracción de la parte lateral del orbicularis oculi (músculo de Duchenne). La circunvolución cingulada anterior participa en el control de los aspectos motores de la risa, mientras que la apreciación del humor involucra a la corteza prefrontal ventromedial. Las expresiones genuinas de emoción están controladas por circuitos neuronales especiales. La mejor prueba de esta afirmación la aportan los síndromes complementarios de parálisis facial intencional y parálisis emocional. Las personas con parálisis facial emocional pueden mover los músculos faciales de forma voluntaria, pero no en respuesta a una emoción; mientras que las personas con parálisis facial intencional muestran los síntomas opuestos. Además, la mitad izquierda del rostro de las personas (al igual que en los primates) suele ser más expresiva que la derecha. 1.3.2 Clasificación de las emociones Resulta difícil clasificar las múltiples teorías de la emoción desde criterios generales [ 8 ]. Plutchik (1980), por ejemplo, opta por presentar un esquema de las orientaciones teóricas clásicas al que añade otros grupos o categorías más actuales. Las cuatro grandes tradiciones teóricas según Plutchik, son:
20 Capítulo 1. Introducción 1.4 Fisiología del estrés El estrés se define como un estímulo puntual, agresivo o no, percibido como amenazante para la homeostasis. Selye (1955) habla de reacción de alarma. El estrés activa un conjunto de reacciones que implican respuestas conductuales y fisiológicas (neuronales, metabólicas y neuroendocrinas) que permiten al organismo responder al estresor de la manera más adaptada posible [10]. El organismo siempre se encuentra en un estado de estrés mínimo que, ante determinadas situaciones, se incrementa pudiendo producir un efecto beneficioso o negativo, dependiendo de si la reacción del organismo es suficiente para cubrir una determinada demanda o ésta "supera" a la persona. Este nivel de equilibrio dependerá de factores individuales (disposición biológica y psicológica) de las distintas situaciones y experiencias. Un determinado grado de estrés estimula el organismo y permite que éste alcance su objetivo, volviendo a la normalidad cuando el estímulo ha cesado. Por ejemplo, cuando un atleta intenta conseguir un buen resultado en una competición, está sometido a un estrés que implica un aumento de la actividad muscular (más irrigación, el corazón late más rápido, etc.) lo que ayudará a alcanzar el éxito y conseguir su objetivo. Una vez finalizada las pruebas atléticas, se produce un descenso de las constantes del organismo y vuelve a su estado basal. Cuando se mantiene la presión y se entra en el estado de resistencia, las personas empiezan a tener una sensación de disconfort (tensión muscular, palpitaciones, etc). Si continúa el estresor, se llega al estado de agotamiento, con posibles alteraciones funcionales y/u orgánicas: son las llamadas "enfermedades de adaptación". Estos síntomas son percibidos como negativos por las personas y producen preocupación, lo que a su vez agrava los síntomas creando así un bucle. 1.4.1 Fisiología del estrés La respuesta fisiológica es la reacción que se produce en el organismo ante los estímulos estresores. Ante una situación de estrés, el organismo tiene una serie de reacciones fisiológicas que suponen la activación del eje hipofisiosuprarrenal y del sistema nervioso autónomo. El eje hipofisiosuprarrenal (HSP) está compuesto por el hipotálamo, estructura nerviosa situada en la base del cerebro que actúa de enlace entre el sistema endocrino y el sistema nervioso, la hipófisis, glándula situada asimismo en la base del cerebro, y las glándulas suprarrenales, que se encuentran sobre el polo superior de cada uno de los riñones y que están compuestas por la corteza y la médula. Ambos sistemas producen la liberación de hormonas, sustancias elaboradas en las glándulas que, transportadas a través de la sangre, excitan, inhiben o regulan la actividad de los órganos [11]. Eje hipofisiosuprarrenal Se activa tanto con las agresiones físicas como psíquicas y, al activarse, segrega la hormona CRF (factor liberador de corticotropina), que actúa sobre la hipófisis y provoca la secreción de la hormona adenocorticotropa (ACTH). Esta secreción incide sobre la corteza de las glándulas suprarrenales, dando lugar a la producción de corticoides que pasan por el torrente circulatorio y producen múltiple incidencia orgánica. Los corticoides, hormonas pertenecientes al grupo de los esteroides (hormonas necesarias para el correcto funcionamiento del organismo), que se liberan debido a la ACTH son: •Glucocorticoides : el más importante es el cortisol que facilita la excreción de agua y el mantenimiento de la presión arterial; afecta a los procesos infecciosos y produce una degradación de las proteínas intracelulares. Tiene, asimismo, una acción hiperglucemiante (aumenta la concentración de glucosa en sangre) y se produce un aumento de calcio y fosfato liberados por los riñones y de lípidos. •Andrógenos : Son las hormonas que estimulan el desarrollo de las características secundarias masculinas y estimulan el aumento tanto de la fuerza como de la masa muscular.
1.4 Fisiología del estrés 21 Sistema Nervioso Autónomo Este sistema mantiene la homeostasis del organismo. La activación simpática supone la secreción de catecolaminas, que son: • La adrenalina segregada por parte de la médula suprarrenal, especialmente en casos de estrés psíquico y de ansiedad. • La noradrenalina segregada por las terminaciones nerviosas simpáticas, aumentando su concentración principalmente es el estrés tipo físico, en situaciones de alto riesgo o agresividad. Estas hormonas son las encargadas de poner el cuerpo en estado de alerta preparándolo para huir o luchar. Son las que permiten enlazar el fenómeno del estrés con los fenómenos psicofisiológicos de la emoción. Ambas intervienen en los siguientes procesos: • Dilatación de las pupilas. • Dilatación bronquial. • Movilización de los ácidos grasos, pudiendo dar lugar a un incremento de lípidos en sangre (posible arterioesclerosis). • Aumento de la coagulación. • Incremento en el ritmo cardíaco que puede desembocar en una hipertensión arterial. • Vasodilatación muscular y vasoconstricción cutánea. • Reducción de los niveles de estrógenos y testosterona, hormonas que estimulan el desarrollo de características sexuales. • Inhibición de la secreción de la prolactina, que influye sobre la glándula mamaria. • Incremento de la producción de tiroxina, que favorece el metabolismo genético, la síntesis de proteína, etc. Fases del estrés El origen histórico del concepto de estrés parte de las investigaciones que realizó Hans Selye en el año 1936 y que dieron lugar al llamado síndrome general de adaptación. Ante una situación de amenaza para su equilibrio, el organismo emite una respuesta con el fin de intentar adaptarse. Selye define este fenómeno como el conjunto de reacciones fisiológicas desencadenadas por cualquier exigencia ejercida sobre el organismo, por la incidencia de cualquier agente nocivo llamado estresor. Se puede definir, pues, como la respuesta física y específica del organismo ante cualquier demanda o agresión, ante agresores que pueden ser tanto físicos como psicológicos. En este proceso de adaptación por parte del organismo se distinguen las fases de alarma, adaptación y agotamiento. Figura 1.7 Fases estrés. Fase de alarma : Ante la aparición de un peligro o estresor se produce una reacción de alarma durante la que baja la resistencia por debajo de lo normal. Es importante resaltar que todos los procesos que se producen son reacciones encaminadas a preparar el organismo para la acción de afrontar una tarea o esfuerzo. Esta primera fase supone la activación del eje hipofisiosuprarrenal; existe una reacción instantánea y automática que se compone de una serie de síntomas siempre iguales, aunque de mayor a menor intensidad:
22 Capítulo 1. Introducción • Se produce una movilización de las defensas del organismo. • Aumenta la frecuencia cardíaca. • Se contrae el bazo, liberándose gran cantidad de glóbulos rojos. • Se produce una redistribución de la sangre, que abandona los puntos menos importantes, como la piel (palidez) para acudir a los músculos, cerebro y corazón que son las zonas de acción. • Aumenta la capacidad respiratoria. • Se produce una dilatación de las pupilas. • Aumenta la coagulación de la sangre. • Aumenta el número de linfocitos (células de defensa). Fase de resistencia o adaptación : En ella el organismo intenta superar, adaptarse o afrontar la presencia de los factores que percibe como una amenaza o del agente nocivo y se producen la normalización de los niveles de corticoides teniendo lugar una desaparición de la sintomatología. Fase de agotamiento : Ocurre cuando la agresión se repite con frecuencia o es de larga duración, y cuando los recursos de la persona para conseguir un nivel de adaptación no son suficientes dándose una alteración de los tejidos de la piel y aparece la patología llamada psicosomática. Modelo biopsicosocial Este modelo relaciona una situación determinada y la vivencia de esta situación, con las consecuencias fisiológicas expuestas hasta ahora y proporciona una estrategia para localizar factores ambientales estresantes y analizar sus consecuencias en el aspecto individual. Se ha visto como ante cualquier situación que se reconoce (proceso cognitivo) da señales de la corteza cerebral al hipotálamo y, vía el sistema nervioso autónomo, a la médula de las glándulas suprarrenales, que responden liberando adrenalina y noradrenalina, las llamadas hormonas del estrés, estas hormonas movilizan el cuerpo y hacen luchar o huir (fight or flight). Cuando la situación produce sentimientos de distrés o desamparo, el cerebro envía también mensajes al córtex de los suprarrenales, que segrega otra hormona del estrés: el cortisol, que tiene un papel importante en el sistema inmunológico. Esto es más complejo e incluye la liberación de ACTH de la glándula pituitaria. Los estudios experimentales basados en esta teoría han permitido identificar dos características específicas de los procesos de trabajo en función de la percepción que se tenga del trabajo o de la actitud ante el mismo: positiva (eutrés) o negativa (distrés) y en relación al contenido de la tarea: actividad o pasividad. •Esfuerzo y eutrés : En este grupo se incluyen a las personas que desarrollan un tipo de trabajo de gran control personal, creatividad y muy dedicados a su trabajo. En este caso, se produce un aumento de secreción de catecolaminas, y el cortisol se halla muy bajo o inexistente. Se encuentran en este grupo, por ejemplo, empresarios, artistas, científicos, artesanos, etc., pues en este tipo de profesiones se suelen realizar trabajos con un alto grado de autocontrol y autonomía. •No esfuerzo y eutrés : La no actividad se acepta como algo positivo, dándose un descanso de cuerpo y mente. •Esfuerzo y distrés : En aquellos trabajos que implican elevadas exigencias de producción, pero en los que la persona tiene un bajo control de la situación. •Poco esfuerzo y distrés : personas sin empleo y en trabajos muy coercitivos, en los que la persona tiene muy poca o ninguna autonomía. Acompañado de una gran liberación de cortisol. 1.5 Bioseñales En este apartado se presentará el estudio de las señales electrodérmicas y la relación con el sistema nervioso y con las distintas teorías de las emociones, las cuales se utilizarán en los sensores empleados en el trabajo.
1.5 Bioseñales 23 Una señal es un medio de transmisión de información, cuya adquisición permite obtener información sobre la fuente que generó. En el caso de las bioseñales, las fuentes son los diferentes sistemas fisiológicos del organismo. Para medir potenciales bioeléctricos es necesario un transductor capaz de convertir potenciales y corrientes iónicas en potenciales y corrientes eléctricas. Un transductor de este tipo consta de dos electrodos que miden la diferencia de potencial iónico entre los puntos de aplicación respectivos. Aunque en ocasiones se pueden hacer medidas de potenciales de acción individuales, dichas medidas son difíciles ya que exigen una colocación precisa de un electrodo. La forma más común de medida de biopotenciales es el efecto combinado de una gran cantidad de potenciales de acción tal como aparecen en la superficie del cuerpo, o en uno o más de los electrodos insertados en un músculo, nervio o zona cerebral. 1.5.1 Electrocardiograma Los biopotenciales generados por los músculos del corazón producen el electrocardiograma (ECG). El corazón se encuentra dividido en cuatro cámaras, las dos superiores o aurículas están sincronizadas para actuar juntas y de forma análoga, las dos inferiores o ventrículos. La aurícula derecha recibe la sangre de las venas del cuerpo que se bombea hacia el ventrículo derecho que, a su vez, la bombea a los pulmones para su oxigenación. La sangre enriquecida con oxígeno pasa a la aurícula izquierda que la bombea al ventrículo izquierdo y éste la bombea a las arterias para que circule por todo el cuerpo. Dado que los ventrículos se encargan del bombeo de la sangre a los vasos, los músculos ventriculares son mucho mayores y más importantes que los de las aurículas. Para que el sistema cardiovascular funcione adecuadamente, todas las cámaras del corazón deben funcionar con una interrelación temporal exacta. Cada potencial de acción en el corazón se origina cerca del extremo superior de la aurícula derecha en un punto denominado marcapasos o nódulo sinoauricular. El marcapasos es un grupo de células especializadas que generan espontáneamente potenciales de acción a un ritmo regular, aunque controlado por inervación. Para iniciar el latido el potencial de acción generado por el marcapasos se propaga en todas las direcciones a lo largo de la superficie de ambas aurículas. El frente de onda de activación viaja paralelo a la superficie de las aurículas hacia la unión de las aurículas y los ventrículos. La onda termina en un punto cerca del centro del corazón que se denomina nódulo auriculoventricular. En este punto, unas fibras nerviosas actúan como línea de retardo para lograr una temporización adecuada entre la acción de las aurículas y los ventrículos. Una vez que la excitación eléctrica ha atravesado la línea de retardo, se inician potenciales de acción en la musculatura de los ventrículos, sin embargo, el frente de onda no sigue a lo largo de la superficie sino perpendicular a ella y se mueve desde el interior hacia el exterior de la pared ventricular, terminando en la punta o ápice del corazón. La onda de despolarización va seguida de una onda de repolarización de unos 0,2 a 0,4 s. Esta repolarización no se inicia partiendo de células musculares vecinas, sino que se produce al volver cada célula a su potencial de acción de forma independiente. Figura 1.8 Forma de onda del ECG.
24 Capítulo 1. Introducción 1.5.2 Electroencefalograma La representación registrada de los potenciales bioeléctricos generados por la actividad neuronal del cerebro se denomina electroencefalograma, el cual tiene una forma muy compleja y las formas de onda varían con la situación de los electrodos de medida sobre la superficie de la cabeza. Los potenciales EEG medidos en la superficie del cuero cabelludo representan en realidad el efecto combinado de los potenciales neuronales de una región amplia de la corteza y de distintos puntos interiores. Una persona despierta, atenta, presenta un EEG de alta frecuencia y asíncrono. Por otro lado, una persona fatigada produce una actividad rítmica en torno a 8-13 Hz. La frecuencia EEG está afectada por la actividad mental de una persona. El contenido de las frecuencias de la señal EEG es de gran importancia. Además son de gran interés las relaciones de fase entre señales EEG similares de diferentes puntos del cerebro. Otro tipo de medida EEG es la respuesta evocada. Se trata de una medida de la alteración de la señal EEG producida mediante un estímulo externo fácilmente repetible. 1.5.3 Electromiograma Los potenciales bioeléctricos asociados con la actividad muscular constituyen el electromiograma (EMG). Se pueden medir en la superficie del cuerpo cerca del músculo de interés o directamente en el músculo atravesando la piel con electrodos de aguja. Dado que la mayoría de las medidas EMG se proponen obtener una indicación de la actividad de un músculo determinado o un grupo de músculos más que de una fibra muscular individual la señal es una suma de potenciales de acción individuales de las fibras que constituyen el músculo o músculos donde se mide. Los electrodos de EMG recogen potenciales de todos los músculos dentro de su alcance. Esto significa que los potenciales de músculos grandes cercanos pueden interferir con los intentos de medir el EMG de músculos pequeños, aún cuando los electrodos se coloquen directamente sobre los músculos pequeños. La amplitud de la forma de onda EMG medida es la suma instantánea de todos los potenciales generados en un mismo instante. Dado que estos potenciales de acción se producen tanto con polaridades positivas como negativas en un par de electrodos determinado, a veces se suman y a veces se cancelan. De este modo, la señal EMG se parece a un ruido aleatorio, siendo la energía de la señal función de la cantidad de actividad muscular y de la situación de los electrodos [12]. 1.5.4 Respuesta Galvánica de la Piel La función de las glándulas sudoríparas ecrinas se encuentra sometida a la regulación de la temperatura corporal. La vía aferente parte de diversos termorreceptores (cutáneos e hipotalámicos) que emiten impulsos a través de la médula espinal y el tálamo hacia el hipotálamo, centro donde se integran las señales sensoriales. La sudoración también tiene un componente de control emocional (sudoración emocional) regulado por el córtex cingulado anterior y el sistema límbico. Las vías eferentes de las glándulas sudoríparas pertenecen exclusivamente al sistema simpático, cuyo neurotransmisor es la acetilcolina, a diferencia de la mayoría de las ramas simpáticas que utilizan noradrenalina. Por lo tanto, son exclusivamente simpático colinérgicas. Cuando en una zona superficial de las glándulas sudoríparas se aplica un pequeño voltaje mediante un sensor de acero inoxidable, se crea una corriente debida a la reacción electroquímica. Con esta baja tensión, el estrato córneo actúa como un condensador y sólo permite la transmisión de iones de sudor. Esto asegura que la corriente medida (conductancia) se corresponda exclusivamente a la función de sudoración. Esta medida también se llama respuesta galvánica de la piel (Galvanic Skin Response) y se mide en microsiemens µS. 1.5.5 Otros potenciales bioeléctricos Se pueden obtener del organismo otras señales eléctricas, aunque la mayor parte de ellas son variaciones especiales del EEG, EMG o trenes de disparo nervioso.
1.5 Bioseñales 25 Figura 1.9 Capas de la piel. El electrooculograma, EOG, es una medida de las variaciones del potencial córnea-retina en función de la posición y movimiento del ojo. Estos potenciales bioeléctricos se diferencian en su rango frecuencial en sólo unos Hz.
26 Capítulo 1. Introducción 1.6 Sensores Biométricos Como se ha visto en la sección anterior, existen diferentes métodos a la hora de estudiar la respuesta del organismo ante estímulos varios. Sin embargo, no todos los procedimientos permiten obtener los parámetros de activación (arousal), así como, el grado de placer o displacer (valence). Los equipos para medir éstos son los expuestos en esta sección: 1.6.1 Electrocardiógrafo Este aparato sirve para monitorizar la actividad eléctrica y muscular del músculo cardíaco [ 13 ] tomando muestras cada cierto período de tiempo. Una máquina de medición ECG puede interpretar la siguiente información: • Información sobre la frecuencia y ritmo de los latidos del corazón. • Conocer el tamaño del corazón y la posición de las distintas cámaras. • Salud del músculo cardíaco y la respuesta eléctrica natural del mismo. • Comprobar los efectos que provoca una determinada medicación en el corazón, así como, detectar posibles anormalidades causadas por otras condiciones. Este aparato de medición data de principios del siglo pasado y debe su invención al físico alemán Willem Einthoven, por el cual en 1924 le otorgaron el Premio Nobel de Fisiología. La versión actual de la máquina inventada por Einthoven tiene diferentes tamaños llegando incluso a ser fáciles de transportar y con funcionalidades diversas como la posibilidad de uso sin cables, los electrodos conectados a la piel no van directamente a la máquina, o el almacenamiento de datos en una memoria interna. Para la medición se utilizan del orden de 12 caminos de conducción colocados en partes del cuerpo definidas y dados por la colocación de 10 electrodos. Con este método se obtiene una perspectiva de la actividad del corazón desde diferentes ángulos a través de dos planos eléctricos, el horizontal y vertical. El plano horizontal viene determinado por 6 electrodos colocados en el pecho, mientras, para el vertical se utlizan 4 posicionados en las extremidades. El triángulo de Einthoven permite explicar los 6 caminos de conducción cuando se tienen solamente cuatro electrodos colocados en las extremidades. El principio destrás del triángulo de Einthoven describe como los electrodos RA (brazo derecho), LA (brazo izquierdo) y LL (pierna izquierda) graban la información cardíaca de los vectores aVR (augmented Vector Right), aVL (augmented Vector Left), aVF (augmented Vector Foot) y de los caminos I, II y III. Como resultado, se forma un triángulo equilátero. Figura 1.10 Triángulo de Einthoven.
1.6 Sensores Biométricos 27 1.6.2 Equipos para la medición de la actividad cerebral Los tres equipos más comunes a la hora de recoger la actividad del cerebro son: el electroencefalograma (EEG), resonancia magnética (fMRI) y magnetoencefalograma (MEG). De estos métodos el mejor relación coste eficiencia es el electroencefalograma. EEG : Se mide la actividad eléctrica de varias capas del córtex cerebral. Cuando una gran cantidad de neuronas se activan en patrones sincronizados, se genera una actividad que es radiada a través del cuero cabelludo, lo cual se mide con los electrodos. Las señales necesitan ser amplificadas, y se comparan con una determinada referencia. EEG representa siempre un incremento o decremento relativo de la electricidad en una localización específica. Los cambios eléctricos ocurren muy rápido, por lo que EEG obtendrá información con mucha resolución (próximos a muestras cada milisegundo). EEG permite almacenar los procesos cerebrales que ocurren tras un estímulo visual o auditivo (aparecen procesos cerebrales 50-100 ms después de la percepción del estímulo). fMRI : La resonancia magnética es un procedimiento de neuroimagen que mide la actividad cerebral en función de los flujos de sangre. Debido a que los flujos de sangre son lentos, fMRI presenta unos tiempos de resolución menor que otros métodos. Por otro lado, pese su menor resolución se tiene un excelente conocimiento espacial. Típicamente, los encuestados tienen que permanecer inmóviles en el centro de una máquina la cual dispone de un superconductor magnético que rota a alta frecuencia alrededor del cuerpo. fMRI mide los cambios en el campo magnético debido a la diferencia entre la sangre rica o baja en oxígeno lo que muestra la acción relativa de cada región del cerebro. Se pueden crear imágenes espaciales del cerebro con gran precisión, y reconstruir la forma de las diferentes capas corticales. MEG : magnetoencefalografía, esta técnica recoge los campos magnéticos generados por la actividad neuronal. Los equipos MEG son similares a los fMRI, por lo que los encuestados necesitan permanecer inmóvil durante la realización de la prueba. Las mediciones MEG normalmente se realizan en una cámara blindada para evitar interferencias magnéticas del exterior. La gran ventaja de este método es que MEG combina la alta precisión del EEG con la alta precisión en el espacio de fMRI. Esta imagen final da idea sobre las partes del cerebro que están activas. 1.6.3 Equipos para la medición de la respuesta galvánica La observación de la sudoración de la piel requiere un equipamiento básico, siendo esta técnica no invasiva para la persona utilizando dos electrodos en la piel. Este método es más cómodo de utilizar para los encuestados comparados con otros método de neuroimagen como fMRI o EEG, donde las fases de calibración y preparación son esenciales. Los sensores GSR tienen un tamaño de 1 cm 2 fabricados en AgCl y colocados en un broche de presión reutilizable o en un parche. Este último requiere un gel conductor para mejorar la conductividad entre la piel y el electrodo. El procedimiento es [14]: 1. Colocar dos electrodos en localizaciones que respondan a cambios emocionales. 2. Aplicar un voltaje constante. 3. Medir la diferencia de voltaje entre dos electrodos. 4. Exportar los resultados asociados a la conductancia de la piel. Pese a existir glándulas sudoríparas presentes en todo el cuerpo, ciertas zonas son más propensas a reflejar los cambios como la palma de la mano, los dedos o planta del pie. Para garantizar la precisión de las mediciones el sensor necesita estar colocado durante todo el proceso, y en la misma posición para todos los encuestados, así como tener la superficie de la piel correctamente limpia y seca. La señal GSR consiste en dos componentes diferenciadas: Nivel de conductancia de la piel, referido al nivel tónico (respuestas fisiológicas lentas) que va cambiando en función de la hidratación del encuestado y regulación individual, y respuesta conductiva de la piel, controla la respuesta fásica (relacionado con cambios
28 Capítulo 1. Introducción rápidos) mediante el número de picos y amplitud de estos. La información proporcionada por la fase tónica es practicamente irrelevante frente a la obtenida por la parte fásica.
1.7 Machine Learning 29 1.7 Machine Learning Hasta ahora en el trabajo se ha expuesto todo lo necesario para comprender el método empleado desde el punto de vista fisiológico, las teorías psicológicas relacionadas con este campo de investigación y los equipos que existen a la hora de medir el comportamiento del organismo a los estímulos, en el siguiente índice se exponen los algoritmos empleados posteriormente en la prueba experimental. Actualmente, los conceptos de Machine Learning y Big Data están teniendo gran repercusión debido al auge de las ciencias de la información y a la digitalización de practicamente todas las tareas realizadas por el ser humano. Machine Learning es una forma de inteligencia artificial que habilita a un sistema a aprender de los datos en lugar de tener una función implementada explícitamente [ 15 ]. Machine Learning puede utilizar varios algoritmos para aprender de manera iterativa a partir de los datos con el objetivo de ir mejorando y conseguir mejores predicciones en las salidas. La salida de un modelo de Machine Learning es la generada cuando se entrena el modelo a partir de los datos. Después del entrenamiento, si al modelo se le proporciona una entrada, éste predecirá la salida. Los complejos algoritmos pueden ser automáticamente ajustados basados en rápidos cambios de las variables, como los datos de un sensor, el tiempo, datos climatológicos, etc. Sin embargo, estos conceptos no son nuevos. El campo de la inteligencia artificial data de la década de los años 50 y el concepto de aprendizaje automático fue explicado en la Journal of Research and Development en 1959. Con las décadas, las técnicas de inteligencia artificial han sido ampliamente utilizadas para mejorar la respuesta del código subyacente. Figura 1.11 Clasificación Inteligencia Artificial. Existen diferentes versiones sobre Machine Learning las cuales se diferencian en el tipo y cantidad de datos: •Supervised Learning : El método de aprendizaje supervisado comienza con una cantidad de datos fijada y una cierta correspondencia de como se clasifican dichos datos. Este método intenta encontrar patrones a partir de los datos para ser aplicados a procesos de análisis. Los datos se etiquetan con características, las cuales definen el significado de los datos. Por ejemplo, se podría tener millones de imágenes de animales las cuales contuvieran una explicación sobre el tipo de animal y, a partir de los algoritmos de Machine Learning, poder distinguir un animal frente a otro. Cuando la etiqueta es contínua esto se conoce como regresión y cuando los datos proceden de un conjunto finito de elementos se conoce como clasificación. En esencia, regresión utilizada en supervised learning ayuda a entender la correlación existente entre las variables. Un ejemplo de este tipo de aprendizaje es el pronóstico del tiempo. Ocasionalmente, los patrones que son identificados en una subcategoría de los datos pueden no ser detectados sobre el conjunto de todos los datos. Se puede producir overfitting (sobreajuste) cuando se entrena en exceso el algoritmo de aprendizaje con unos ciertos datos los cuales se conoce el resultado. Sin embargo, cuando un sistema se entrena con datos extraños el algoritmo de aprendizaje puede
36 Capítulo 1. Introducción red neuronal no es distinto del entrenamiento de cualquier función paramétrica de un modelo de predicción, todo lo que se necesita es: • Un conjunto de puntos para entrenar el modelo. • Una función de costes. • Una estrategia de iteración, como por el ejemplo el gradiente descente. Un primer paso para desarrollar un algoritmo práctico para el entrenamiento de la red neuronal es reemplazar la función de activación de Heaviside ec. 1.9 por una función diferenciable aproximación de ésta. Función sigmoide: la función logística sigmoide es: f(z) = σ(z) = 1 1+exp(−az)(1.10) Cuanto mayor es el valor del parámetro ase aproxima a la función de Heaviside. Figura 1.16 Función sigmoide. Otra opción es utilizar la función arcotangente hiperbólica con dos parámetros de control. Esta función es antisimétrica. La expresión es: f(z) = atanh(cz 2)(1.11) Estrategia Gradiente descendente : es el algoritmo de entrenamiento más simple y también el más extendido y conocido [ 20 ]. Se trata de un método de primer orden ya que solo utiliza el vector gradiente. En este método para construir el punto ωi+1 a partir de ωi se traslada este punto en la dirección de entrenamiento di=−gi.Es decir: ωi+1=ωi−giνi(1.12) Donde el parámetro ν se denomina tasa de entrenamiento, que puede fijarse a priori o calcularse mediante un proceso de optimización unidimensional a lo largo de la dirección de entrenamiento para cada uno de los pasos. Pese a la sencillez del algoritmo tiene el inconveniente de que para funciones con valles largos y estrechos (refiriéndose a las curvas de nivel de la función) requieren muchas iteraciones. Esto se debe a que aunque la dirección elegida es en la que la función de error disminuye más rapidamente, esto no significa que necesariamente produzca la convergencia rápida.
1.7 Machine Learning 37 Por tanto, es el algoritmo recomendado cuando tenemos redes neuronales muy grandes, con muchos miles de parámetros, almacenándose solo el valor del vector gradiente (de tamaño n ) en lugar de la matriz Hessiana (de tamaño n2). Método de Newton : El método de Newton hace uso de la matriz Hessiana y tiene como objetivo encontrar las mejores direcciones de variación de los parámetros haciendo uso de las derivadas segundas de la función de error. Para ello, se hace uso de un desarrollo de Taylor de orden 2 de f , que se puede aproximar por alrededor del conjunto inicial de parámetros, ω0donde H0es el hessiano en ese punto: f(w) = f0+g0(ω−ω0)+ 1 2(ω−ω0)2H0(1.13) Si se tiene en cuenta que gdebe ser 0 para el mínimo de fse tiene: g(w) = g0+H0(ω−ω0) = 0 (1.14) Por lo que, partiendo de un vector de parámetros ω0 , el método de Newton permite generar la sucesión de parámetros de la siguiente forma: ωi+1=ωi−H−1 igi(1.15) Por las condiciones impuestas, podría ocurrir que la sucesión de parámetros tienda a un máximo en lugar de a un mínimo. Por lo que no se garantiza la reducción del error en cada iteración. Para evitar este problema, se modifica la ecuación anterior: ωi+1=ωi−(H−1 igi)ν(1.16) El algoritmo seguido por este método obtiene primero la dirección de entrenamiento y posteriormente una velocidad de entrenamiento adecuada. En general, el método de Newton requiere menos pasos que el de Descenso del Gradiente para encontrar el mínimo de la función de error. Sin embargo, tiene el inconveniente de que el cálculo del Hessiano y su inversa tiene un coste computacional elevado. Gradiente conjugado : Este método se considera como uno intermedio entre el Descenso del Gradiente y el método de Newton. Tiene el objetivo de acelerar la convergencia y a la vez evitar los recursos de computación asociados a la evaluación, almacenamiento y cálculo de la inversa de la matriz Hessiana. En este algoritmo de entrenamiento la búsqueda se realiza a lo largo de direcciones conjugadas, lo que normalmente produce una convergencia más rápida que las direcciones obtenidas con el Descenso del Gradiente. Dos direcciones, u y v se dicen conjugadas respecto de una matriz A si uTAv =0 . En este caso se conjugan con respecto a la matriz Hessiana H . El método del Gradiente Conjugado construye una sucesión de direcciones de entrenamiento dada por: di+1=gi+1+diγi(1.17) Donde γ se denomina parámetro conjugado el cual existen diferentes maneras de calcularlo. Independientemente de la forma, la dirección de entrenamiento se restablece periódicamente a la negativa del gradiente para evitar acumulación de errores en las aproximaciones. Los valores de los parámetros de la función se calculan entonces como: ωi+1=ωi+diν(1.18) Este método es recomendable cuando se tienen redes neuronales muy grandes, ya que no requiere cálculo del Hessiano. Método Cuasi-Newton : El método de Newton requiere gran carga computacional, por lo que son necesarias alternativas para evitar el cálculo de la matriz Hessiana así como su inversa. En este método, en lugar de calcular lo comentado anteriormente se construye una aproximación de la inversa en cada iteración utilizando sólo información sobre las primeras derivadas de la función error. Llamando a esta aproximación Gi , la fórmula se expresa como: ωi+1=ωi−(Gigi)ν(1.19)
38 Capítulo 1. Introducción Este método es el por defecto usado en la mayoría de los casos, ya que es más rápido que los anteriores. Algoritmo Levenberg-Marquardt : Conocido también como el método de mínimos cuadrados amortiguado diseñado para trabajar específicamente con funciones de error que se expresan como suma de errores cuadráticos. En lugar de calcular la matriz Hessiana usa el vector gradiente y la matriz Jacobiana. Suponiendo la función de error como: f(ω) = m ∑ i=0 e2 iω(1.20) Donde m es el conjunto de datos de entrenamiento y ei el error que se comete en la iteración i-ésima. La matriz jacobiana de la función de error se calcula como la formada por las derivadas de los errores con respecto a los parámetros: Ji j(ω) = ∂ei ∂ωj ,donde i =1,...,m y j =1,...,n(1.21) El vector gradiente de la función de error se calcula como: ∇f=2JTe(1.22) Finalmente, el Hessiano se puede aproximar por (donde λ es el factor de amortiguamiento que asegura la positividad del Hessiano e Ila matriz identidad): H≈2JTJ+λI(1.23) A partir de las igualdades anteriores se define el proceso de mejora de parámetros con el algoritmo de Levenberg-Marquardt: ωi+1=ωi−(JT iJi+λiI)−1(2JT iei)(1.24) Cuando λ=0 se obtiene el método de Newton utilizando el Hessiano aproximado. Si λ es grande, se convierte en el algoritmo de Descenso del Gradiente con una tasa de entrenamiento pequeña. Por ello, λ0 se inicializa para que sea grande de modo que la primeras actualizaciones sean pequeños pasos en la dirección de descenso del gradiente. Si alguna iteración genera un fallo, entonces λ se incrementa por un factor, si no, a medida que disminuye el error, λ disminuye de manera que el algoritmo de Levenberg-Marquardt se aproxima al método de Newton. Este proceso acelera la convergencia al mínimo. Este algoritmo es un método adaptado para funciones de un tipo particular, lo que hace que sea muy rápido cuando se entrenan redes neuronales medidas con este tipo de errores. No obstante, también presenta desventajas como la invalidez a la hora de aplicarse a funciones de error que tengan expresiones distintas. También, para conjuntos de datos y redes neuronales muy grandes, la matriz jacobiana se hace enorme requiriendo mucha memoria. En consecuencia, el algoritmo de Levenberg-Marquardt no se recomienda cuando tenemos grandes conjuntos de datos y/o redes neuronales con mucha memoria. Figura 1.17 Comparación algoritmos redes neuronales.
1.7 Machine Learning 39 Análisis Discriminante Lineal Este método lineal es la técnica de clasificación ideal cuando se tienen más de dos clases y se utiliza debido a las limitaciones de la función logística, apta solo para funciones con dos clases, baja calidad con poco ejemplos o clases muy diferenciadas. Representación de modelos LDA: Esto es bastante directo. Consiste en las propiedades estadísticas de los datos calculados para cada clase. Para una simple entrada x esto puede ser la media o varianza de las variables de cada clase, en caso de tener múltiples variables se hace con la matriz de covarianza. Estos parámetros estadísticos son calculados a partir de los datos e introducidos en las ecuaciones LDA para realizar predicciones. LDA realiza algunas suposiciones sobre los datos: • Los datos siguen una distribución Gaussiana. • Cada atributo tiene la misma varianza, los valores de cada variable varían sobre la media pero todos de la misma manera. LDA realiza predicciones estimando la probabilidad que el nuevo conjunto de entradas pertenezca a una clase. La clase que tiene la mayor probabilidad es la clase de salida y, por tanto, la predicción está hecha. Se utiliza el teorema de Bayes para estimar probabilidades. El teorema de Bayes puede usarse para etimar la probabilidad de una clase de salida k dada la entrada x usando la probabilidad de cada clase y la probabilidad de que el dato pertenezca a esa clase. P(Y=k|X=x) = P(k)×P(x|k) ∑K l=1P(l)×P(x|l)(1.25) Donde: •P(Y=k|X=x)es la probabilidad de la clase Y=kdada la entrada x. •P(k)es la probabilidad de que sea la clase k. •P(x|k)es la probabilidad de que xpertenezca a la clase k. • El denominador normaliza para cada clase l. Al utilizar una función Gaussiana para estimar P(x|k) y simplificando se obtiene una función discriminante para ky la clase con el mayor discriminante será la clasificación de salida Y=k: Dk(x) = x×mediak sigma2−media2 k 2×sigma2+ln(P(k)) (1.26) Dk(x) es la función discriminante para la clase k dad la entrada x, la media, varianza y P(k) , estimado todo de los datos. Existen extensiones a los algoritmos LDA como son: Quadratic Discriminant Analysis, Flexible Discriminant Analysis o Regularized Discriminant Analysis. Árboles de Decisión Los árboles de clasificación o regresión o CART es un término introducido por Leo Breinman para referirse a los algoritmos de árboles de decisión que pueden ser usados para clasificación o regresión en modelos predictivos. La representación del modelo CART se corresponde con árboles binarios. Los algoritmos con árboles binarios se tienen nodos que representan una única entrada y una división en dicha variable. Cada nodo contiene salidas utilizadas para realizar la predicción. Con la representación binaria de estos modelos realizar predicciones es relativamente directo. Dada una nueva entrada, se recorre el árbol evaluando la entrada especificada en cada nodo desde la raíz. Crear un árbol binario es un proceso de división. Se trata de un proceso numérico se realizan las particiones utilizando funciones de coste. La partición con el mejor coste (el menor coste ya que esto se minimiza) es seleccionada. Para modelos predictivos de regresión la función de coste que es minimizada para elegir la
40 Capítulo 1. Introducción Figura 1.18 Ejemplo LDA. partición idónea es la suma de los cuadrados de los errores a lo largo del conjunto de datos de entrenamiento: n ∑ i=1 (yi−prediccioni)2(1.27) Para modelos de clasificación se utiliza la función de Gini como función de coste y es usada para proporcionar una indicación de como de desigual son las salidas de cada nodo. G= n ∑ k=1 pk×(1−pk)(1.28) Donde G es el coste de Gini sobre todas las clases, un nodo que tuviera todas las clases del mismo tipo tendría G=0. Como criterio de parada el procedimiento más común es utilizar un mínimo respecto a los valores de entrenamiento. Una de las ventajas de este método es que no necesita un preprocesamiento de los datos. Naïve Bayes Este método es una simple y poderosa herramienta para determinar un modelo predictivo. Es un algoritmo de clasificación para clases binarias o multiclases. Es una de las técnicas más fáciles de entender cuando se tienen este tipo de variables. El cálculo de las probabilidades para cada hipótesis son simplificadas para hacer sus cálculos más tratables. Se almacenan una lista de probabilidades para los modelos aprendidos Naïve Bayes: • Probabilidad de las clases: las probabilidades de cada clase del conjunto de entrenamientos. • Probabilidades condicionadas: las probabilidades condicionadas de cada valor de entrada dada una clase. Este método también puede ser extendido a valores de los atributos reales asumiendo comúnmente una distribución Gaussiana. Esta extensión del modelo se denomina Gaussian Naïve Bayes. Asimismo, otras funciones se pueden utilizar para estimar la distribución de los datos, pero la distribución Gaussiana (o Normal) es la más fácil de trabajar ya que sólo se necesita determinar la media y desviación estándar del conjunto de datos de entrenamiento.
1.7 Machine Learning 41 Las probabilidades de nuevos valores de x son calculadas utilizando la función de densidad de probabilidad Gaussiana ( pd f ). Cuando se realiza una predicción los parámetros de entrada son añadidos a la función de densidad de probabilidad Gaussiana la cual proporcionará una probabilidad estimada para la entrada y una clase determinada. pd f (x,media,sd) = 1 √2π×sd ×exp −(x−media)2 2×sd2(1.29) K-Nearest Neighbors Este método de Machine Learning no utiliza un modelo específico sino que almacena el conjunto total de los datos lo que no requiere un aprendizaje previo. KNN realiza predicciones usando el conjunto de datos de entrenamiento directamente. Figura 1.19 Ejemplo algoritmo KNN. En la figura1.19 se observa un ejemplo del algoritmo planteado. En la imagen se distinguen dos clases a y o y un nuevo punto de entrada c el cual se quiere determinar su clase. Se utiliza k=3 por lo que se distinguen entre los tres vecinos más próximos. La categoría de salida será aquella que tenga más cantidad de vecinos próximos. Existen diferentes maneras de calcular las distancias entre los puntos: • Distancia Euclídea: distance(a,b) = sn ∑ i=1 (ai−bi)2(1.30) • Distancia Hamming: calcular la distancia entre vectores binarios. • Distancia Manhattan: Calcula la distancia real entre vectores usando la suma de diferencias absolutas. distance(a,b) = n ∑ i=1|xi−yi|(1.31) • Distancia Minkowski: Generalización entre la distancia Euclídea y la Manhattan. Support Vector Machines SVM es una de las técnicas más empleadas de Machine Learning desde su desarrollo en la década de 1990. Con este método se consigue un alto rendimiento con pocos ajustes. Para poder entender el algoritmo seguido por SVM es necesario comprender el clasificador de margen máximo. En SVM, un hiperplano es seleccionado para separar de la mejor forma un conjunto de puntos, en dos dimensiones esto puede ser
42 Capítulo 1. Introducción Figura 1.20 Procedimiento SVM. entendido como una línea que separa las dos clases. La distancia entre la línea y los puntos más próximos se denomina margen. La mejor o más óptima línea que separa las dos clases es aquella que tiene mayor margen. Dicho margen se calcula como la distancia perpendicular de los puntos más próximos a la línea. Sólo estos puntos son relevantes en la definición de la línea y en la determinación de los clasificadores. El hiperplano, por tanto, es aprendido del conjunto de datos de entrenamiento usando un procedimiento de optimización que maximiza el margen entre los puntos. A la hora de introducir los datos se necesita un preprocesamiento inicial: • Entradas numéricas: SVM asume que los inputs son números. Si se tiene variables categóricas es necesario convertirlas previamente en binarias. • Clasificación binaria: El algoritmo SVM básico explicado necesita problemas de clasificación binarios.
2 Análisis Experimental En los apartados previos se ha detallado toda la información necesaria para conocer lo que ocurre en el organismo de una persona cuando reacciona a un estimulo determinado, lo que se produce en el sistema nervioso y de manera inconsciente hasta que se produce una reacción, así como los equipos utilizados para medir dichas reacciones, las teorías psicológicas relacionadas con las emociones, y finalmente, los algoritmos de Machine Learning que se pueden utilizar para predecir una salida, la activación o arousal, a partir de los inputs elegidos. En este apartado se realizará un análisis a partir de todo lo anterior hasta determinar una herramienta para detectar los niveles de ansiedad en pilotos y trabajadores del sector aeronáutico pudiéndose implementar en cualquier sector propenso a este tipo de emociones. Para ello, se ha utilizado la respuesta galvánica de la piel y las facilidades que proporciona programas como Matlab para crear algoritmos predictivos. 2.1 Sensor GSR El sensor utilizado se trata de un sensor encargado de medir la resistencia de la piel a la conducción eléctrica mediante dos electrodos los cuales se colocan en la falangina, parte intermedia del dedo, de los dedos índice y corazón. Figura 2.1 Sensor GSR utilizado en las pruebas. El sensor lo distribuye la empresa Grove a un precio asequible, sin embargo, es necesario conectarlo a un microcontrolador para poder conocer los datos del sensor. Las especificaciones de este sensor son las siguientes: 43
44 Capítulo 2. Análisis Experimental Tabla 2.1 Especificaciones Grove GSR. Parámetro Valor/Rango Operación voltaje 3.3V/5V Sensibilidad Ajustable via potenciometro Input Resistencia Output Voltaje Material electrodo Nickel En la práctica, para obtener los valores de resistencia de una persona ( Ω ) es necesario aplicar la siguiente ecuación 2.1 [21]: Resistencia =(1024+2×Entrada)×10000 512−Entrada (2.1) No obstante, se utilizarán los datos directamente dados por el sensor sin necesidad de conversión puesto que es indiferente la magnitud física que se mida ya que lo que interesa son los datos en sí y no el valor específico de estos. El modelo esquemático del sensor se observa en la siguiente imagen 2.2: Figura 2.2 Esquemático Grove GSR. El sensor se conecta a un microcontrolador Arduino Mega 2560 el cual presenta las siguientes características: • Microcontrolador ATmega2560. • Voltaje de entrada de 7/12V. • 54 pines digitales de entrada/salida. • 16 pines de entrada analógicas. • 256 kbytes de memoria flash. • Velocidad de reloj de 16 MHz. La forma de conectar el sensor a la placa Arduino Mega es como sigue: 1. Conectar los electrodos al sensor. 2. Conectar el cable rojo a 5V y el gris a GND. 3. Conectar a la entrada A0 los cables verde y amarillo del sensor.
2.1 Sensor GSR 45 Una vez se ha establecido las conexiones para conectarlo al ordenador se utiliza el puerto serie del dispositivo.Por otro lado, se necesita calibrar el sensor ajustando el valor del potenciómetro para evitar la saturación en el valor de tensión medido. La sensibilidad de éste se ajusta con un tornillo que mediante una resistencia variable (hasta 200kΩ). Antes del primer uso se ajusta las vueltas de este tornillo hasta poder visualizar un valor de 512, haciendo que en reposo, la medida se encuentre en la posición central en el monitor serie de Arduino. Los valores están cuantizados, por lo que sólo se obtienen valores entre 0 y 1023. En la aplicación de Arduino debemos implementar un código para tener a posteriore medidas más fiables: const int GSR=A0; int sensorValue=0; int gsr_average=0; void setup(){ Serial.begin(9600); } void loop(){ long sum=0; for(int i=0;i<50;i++) //Average the 10 measurements to remove the glitch { sensorValue=analogRead(GSR); sum += sensorValue; //delay(5); } gsr_average = sum/50; Serial.println(gsr_average); } En primar lugar se declaran las variables a utilizar, necesario al tratarse de programación en C. Después se abre el puerto serie con una tasa de 9600 baudios o bits por segundo. Esta velocidad es demasiado elevada por lo que se realiza un bucle en el que se cuenta el valor de 50 muestras y se hace la media de dichos valores, downsampling de la señal. Finalmente, si se representan estos valores en la aplicación Arduino mediante la herramienta Serial Plotter se tiene una gráfica similar a 2.3: Figura 2.3 Ejemplo gráfica GSR Serial Plotter.
52 Capítulo 2. Análisis Experimental 2.3.1 Matlab: nntool Con este procedimiento es muy sencillo calcular una red neuronal siguiendo los pasos que se indican a continuación: 1. Escribir nntool en la ventana de comandos. 2. Seleccionar los inputs y targets. Figura 2.9 Pasos creación red con nntool. 3. Crear la red neuronal eligiendo los parámetros deseados. • Tipo de red. • Datos de entrada y targets. • Función de entrenamiento. • Performance de la función de entrenamiento y número de capas. • Número de neuronas en cada capa oculta y función de transferencias (logistica o tangente). 4. Entrenar la red con los datos de entrenamiento. Figura 2.10 Entrenamiento de la red neuronal artificial. 5. Exportar la red y los datos de salida, así como los errores obtenidos.
2.3 Machine Learning en Matlab 53 2.3.2 Matlab: nnstart Se trata de un procedimiento distinto al anterior donde ahora se podrá elegir entre varias alternativas en lugar de simplemente introducir los inputs y targets. Los diferentes métodos de elección son: •Fitting app : se trata de un método similar al descrito en la sección anterior. Se introducen las entradas y salidas esperadas y se obtiene el modelo predictivo. Durante el proceso será necesario fijar el número de datos que se utilizarán para entrenar, y cuántos para validar y testear. •Pattern Recognition app : Entrena una red neuronal generalizando a partir de entradas y sus clases, construyendo una deep network usando autoencoders, algoritmo no supervisado que aplica backpropagation, ajustando los valores objetivos a las entradas. •Clustering :Con este procedimiento se puede conocer la distribución natural de los datos, las categorías y relacionar las categorías. •Time series : Modelo no lineal para sistemas dinámicos realizando predicciones a partir de los datos secuencialmente. 2.3.3 Classification Learner Finalmente, otra de las alternativas que proporciona Matlab para la creación de algoritmos predictivos sin necesidad de crear un script con las funciones a utilizar para cada modelo es la app Classification Learner. Figura 2.11 Interfaz ClassificationLearner primeros pasos. Con esta herramienta se puede elegir fácilmente entre distintos algoritmos de Machine Learning, comprobándose la efectividad en la precisión de cada uno de ellos desde la misma interfaz gráfica. El procedimiento para crear un modelo es: 1. Seleccionar el conjunto de datos desde el workspace de Matlab. 2. Determinar los predictores y las respuestas.
54 Capítulo 2. Análisis Experimental 3. Elegir un método de validación: • Cross validation: Selecciona el número de divisiones para particionar el conjunto de datos. Si se eligen kdivisiones entonces la app: a) Divide los datos en grupos de tamaño kdesalineados. b) Para cada grupo de k elementos entrena el modelo con los datos fuera de ese conjunto y lo evalúa con los elementos que están dentro de dicho conjunto de tamaño k. • Holdout validation: Seleccionar el porcentaje de los datos que se usará para testear. La app entrena el modelo con el conjunto de datos de entrenamiento y evalua la performance con los datos para testear. El modelo resultante se basa sólo en una porción de los datos, por lo que solamente es recomendable cuando se tiene muchos datos. • No validation: No existe protección frente a overfitting. La app utiliza todo el conjunto de datos para entrenar y computa el error con los datos propios. Sin ningún tipo de test las predicciones obtenidas no son realistas cuando se introducen nuevos datos. 4. Probar los distintos algoritmos y comprobar con cual se tiene el mayor porcentaje de acierto en la predicción Figura 2.12 Interfaz ClassificationLeaner selección algoritmo.
2.4 Creación aplicación para detectar los niveles de estrés en Matlab 55 2.4 Creación aplicación para detectar los niveles de estrés en Matlab Como método alternativo a los anteriormente presentados, en este apartado se va a describir los pasos seguidos para la elaboración de una interfaz gráfica con la que poder visualizar en tiempo real los valores de GSR proporcionados por el sensor. Además de esto, la interfaz será capaz de mostrar los resultados de las características que se extraen en los apartados anteriores (número de picos, valor máximo, continuidad, valor medio y desviación estándar). Con estos valores se introducirán posteriormente en una red neuronal la cual proporcionará un mensaje de aviso en caso de que la persona muestre una tendencia hacia esa sensación de estrés o ansiedad. Figura 2.13 Interfaz gráfica de la app. Las herramientas con las que se ha creado la interfaz corresponden a las proporcionadas por Matlab en el apartado de Graphical User Interface. En esta interfaz se pueden distinguir varias partes con el fin de ser más visual: •Axes: en este recuadro se representará en tiempo real los valores recogidos por el sensor. En el eje X el número de muestras mientras que en el eje Y se representa el valor de tensión que no corresponde a Voltios sino al valor proporcionado directamente por el sensor (de 0 a 1023). •Read Button : Existe una casilla en la cual introducir la duración de la prueba a realizar, teniéndose que escribir el número de muestras para ello. •Tabla : En la tabla se proporcionarán los datos de cada una de las características de la señal. Estos datos se obtendrán en intervalos de mil muestras. •Mensaje de aviso : Los datos recogidos en la tabla se introducirán como entradas a las funciones de Machine Learning creadas y se tendrá una predicción sobre el siguiente estado, produciéndose un aviso en dicha casilla.
56 Capítulo 2. Análisis Experimental 2.4.1 Creación Red Neuronal En esta sección se demostrará los pasos seguido para la creación de la red neuronal multicapa, cuyos fundamentos se han desarrollado en las secciones previas de este trabajo. Esta red neuronal, al contrario que los procedimientos vistos hasta ahora, no se implementará con los toolbox proporcionados en Matlab, sino que se creará el código completo. Figura 2.14 Arquitectura red multicapa. El esquema implementado para crear el código de la red es el seguido en la imagen 2.14. Las ecuaciones para determinar la salida en función de los valores de entrada, p, son las siguientes: am=fm(Wmam−1+bm)(2.3) Se trata de una ecuación recursiva. Se busca reducir el error cuadrático: F(x1,..,xm) = eT qeq(2.4) xm= [Wm,bm]T(2.5) Para hallar el valor de los pesos sinápticos se utiliza el método del gradiente descendiente así como las polarizaciones que minimizan el error cuadrático: xm=xm−α∂F ∂xm(2.6) La matriz jacobiana de la ecuación anterior se puede evitar calcularla realizando el siguiente procedimiento: ∂F ∂xi =∂ni ∂xi ∂F ∂ni (2.7) Este último operando corresponde a la sensibilidad, es decir, lo que varía el error cuadrático respecto de la suma. ∂F ∂xm= [zs1...zsm]m=zm(sm)T= [am−1(sm)T,(sm)T]T(2.8) Por tanto: Wm=Wm−αsm(am−1)T(2.9) bm=bm−αsm(2.10)
2.4 Creación aplicación para detectar los niveles de estrés en Matlab 57 Llegados a este punto queda determinar la expresión matemática para el cálculo de las sensibilidades: sm−1=∂nm ∂nm−1sm(2.11) nm=Wmfm−1(nm−1)+bm(2.12) ∂nm ∂nm−1=∂fm−1 ∂nm−1 ∂nm ∂fm−1(2.13) sm−1=∂fm−1 ∂nm−1(Wm)T(sm)(2.14) Esta ecuación es válida para todas las capas hasta la penúltima, siendo esta última: sm=−2∂fm−1 ∂nm−1eq(2.15) Con estas ecuaciones se determinan el valor de los pesos y los umbrales sinápticos a partir de las entradas y los valores de entrenamiento. Estas entradas corresponden a los valores de las características de las gráficas de los vídeos y se relacionarán con la tendencia presentada. El código a implementar en Matlab es, por tanto, el siguiente: function [salida]=rednn_1capa(entrada) %escribimos las entradas y los objetivos %p=[elmax;picos;medio;desvi]; %t=[]; %vector de targets para el entrenamiento Q=length(p); %inicializamos los pesos y umbrales (o polaridades) n1=50; %número de neuronas en la capa oculta W1=2*rand(n1,5)-1; %5 porque son 5 características (entradas) b1=2*rand(n1,1)-1; W2=2*rand(1,n1)-1; b2=2*rand-1; alfa=0.001; %tasa de aprendizaje for epocas=1:1000 %número de épocas sum=0; for q=1:Q %propagación hacia delante a1=tansig(W1*p(:,q)+b1); a2(q)=tansig(W2*a1+b2); %propagación hacia atrás e=t(q)-a2(q); s2=-2*(1-a2(q)^2)*e; s1=diag(1-a1.^2)*W2'*s2; %Actualizamos los pesos y polarizaciones W2=W2-alfa*s2*a1'; b2=b2-alfa*s2; W1=W1-alfa*s1*p(:,q)'; b1=b1-alfa*s1; %Error cuadrático sum = e^2+sum; end %error cuadrático medio emedio(epocas)=sum/Q;
58 Capítulo 2. Análisis Experimental end %figure, subplot(1,2,1), plot(emedio) %comprobamos si se ajustan los valores a los targets for q=1:Q sal2(q)=tansig(W2*(tansig(W1*entrada(:,q)+b1))+b2); end salida=sal2; Gráficamente, el error medio que se obtiene después de cada interación se va reduciendo, como se observa en 2.15: Figura 2.15 Error entrenamiento de la red. Con esto, se almacenan los valores de los pesos W1 y W2 y los umbrales b1 y b2, de manera que para sucesivas predicciones lo único necesario para determinar el estado siguiente viene dado por: Q=length(entrada); for q=1:Q salida(q)=tansig(W2*(tansig(W1*entrada(:,q)+b1))+b2); end salida Asimismo, también se ha creado un código para implementar otro de los algoritmos de Machine Learning, en este caso el correspondiente con K-Nearest Neighbours. Este algoritmo es fácil de entender e implementar al no necesitar puntos de entrenamiento, únicamente hay que definir el número de puntos más próximos (vecinos) para poder determinar una frontera de decisión. %Ejemplo algoritmo clasificador KNN %para el caso de los vídeos
2.4 Creación aplicación para detectar los niveles de estrés en Matlab 59 x=[picos;cont]; a=[130 85;130 100]; %punto a clasificar % plot(x(1,1:4),x(2,1:4),'ob');hold on; grid on; % plot(x(1,5:10),x(2,5:10),'*r'); % plot(a(1,:),a(2,:),'sg'); m=length(x); t=[]; hold on; grid on;xlabel('Picos');ylabel('Crecimiento') for i=1:m if x(2,i)>=120 plot(x(1,i),x(2,i),'*r'); t(i)=1; else plot(x(1,i),x(2,i),'ob'); t(i)=0; end end plot(a(1,:),a(2,:),'sg'); %Objetivos %t=[00000001111]; %t=[0000111111]; n=length(x); k=1; dist=[]; for i=1:n for j=1:length(a) dist(i,j)=sqrt((x(1,i)-a(1,j))^2+(x(2,i)-a(2,j))^2); end end dist dist_ordenada=sort(dist) %ordena el vector de distancias pos=[]; valor=[]; for i=1:n for j=1:n for k=1:length(a) if dist_ordenada(i,k)==dist(j,k) pos(i,k)=j; valor{k}(:,i)=x(:,j); end end end end valor pos %Para determinar la salida y el número de vecinos óptimos for k=1:length(a) if t(pos(1,k))==t(pos(2,k)) && t(pos(2,k))==t(pos(3,k)) sal(k)=t(pos(1,k)); k(k)=3; elseif t(pos(1,k))==t(pos(2,k)) k=2; sal(k)=t(pos(1,k)); else
60 Capítulo 2. Análisis Experimental sal(k)=t(pos(1,k)); k(k)=1; end end sal k %número de vecinos
3 Análisis de Resultados En esta sección se comentarán los resultados obtenidos para las diferentes pruebas realizadas. En primer lugar, para la primera configuración de las pruebas se obtienen resultados de 16 personas. Puesto que, como se comprobará posteriormente, los resultados no son concluyentes es necesario realizar más pruebas siguiendo el mismo procedimiento pero con otras canciones y comparando con diferentes valores de arousal. Finalmente, se propondrá otra metodología con el fin de tener otra alternativa a la hora de establecer un modelo de predicción. 3.1 Resultados Primera Prueba Se realizará un análisis para los diferentes conjuntos de datos obtenidos mediante varias pruebas con variación en el número de sujetos. 3.1.1 5 Personas 15 canciones 15 segundos Se obtienen 50000 muestras del sensor GSR correspondientes a la duración de las 15 canciones y los 15 espacios de 5 segundos entre cada clip de audio. Estos cortos espacios se colocan con el objetivo de que la emoción producida al escuchar una canción no interfiera en la siguiente. Figura 3.1 Gráfica GSR 5 personas. En la gráfica 3.1 se observa los valores de la señal gsr para cinco personas. Una vez obtenidos estos datos se necesita separar en fragmentos para extraer características de cada uno de ellos, para ello se implementará la función escrita en los anexos canciones separadas. Tras esto, las características extraídas de cada fragmento son el número de picos, el valor máximo, tendencia (número de muestras que la gráfica crece), valor medio y desviación estándar. Las funciones que permiten obtener estos valores individualmente para cada canción están incluidas en los anexos. Un ejemplo de lo comentado, se observa en la siguiente ilustración 3.2 donde cada fila representa una característica menos la última que corresponde a los valores de arousal de cada canción puntuados en los artículos, los 61
68 Capítulo 3. Análisis de Resultados Figura 3.7 Gráficas GSR 10 personas segunda prueba. Figura 3.8 Resultados modelos Machine Learning.
3.3 Método alternativo 69 3.3 Método alternativo Como se ha demostrado hasta ahora, con el conjunto de datos que se dispone (muy pequeño en comparación a lo típico utilizado en los métodos de Machine Learning) se necesita modificar determinados parámetros para conseguir mejores predicciones. Para ello, en esta sección se va a ver como cambiando el valor de las clases los resultados mejoran notablemente. En las secciones anteriores, se ha asignado a cada conjunto de características, los inputs para crear la función de aprendizaje, un valor determinado de arousal el cual se obtiene de las bases de datos de las que se han extraído los clips de audio. Siguiendo este procedimiento se ha comprobado como los resultados no son correctos. Por tanto, en esta sección se va a discriminar entre dichos valores ya que como se ha visto desde el principio del trabajo lo único que interesa es determinar niveles altos de arousal, correspondientes a estados de ansiedad o estrés. Los valores por encima de 7 se han cambiado por un 1 mientras que el resto de valores se han sustituido por 0. De esta manera, se reduce el número de clases a diferenciar por parte de los algoritmos, haciéndolos mucho más eficientes. En el código se introduce un bucle for en el cual cambie el valor de dichas variables: t=xlsread('segunda_prueba.xls',1,'C2:C16')'; for i=1:15 if t(i)>7 t(i)=1; else t(i)=0; end end Los resultados para los diferentes algoritmos para una prueba de 10 personas y 15 canciones de 15 segundas cada una son los siguientes: Tabla 3.4 Resultados predicción modelos ML. Algoritmos Precisión Complex tree 68,5 Medium Tree 68,5 Simple Tree 77 Linear Discriminant 75,2 Linear SVM 80 Quadratic SVM 77,6 Cubic SVM 66,1 Fine Gaussian SVM 79,4 Medium Gaussian SVM 80 Fine KNN 64,8 Medium KNN 79,4 Coarse KNN 80 Cosine KNN 80 Boosted trees 70,9 Bagged trees 74,5 En este caso sólo se tiene dos categorías como se distingue en la imagen para cada color una. Los puntos correctamente clasificados aparecen con un círculo mientras que los que no llega a clasificar de manera adecuada aparecen con una x. Al introducir esta variación las mejoras son sensiblemente mayores, como se comprueba en la siguiente imagen de la herramienta classificationLearner.
70 Capítulo 3. Análisis de Resultados Figura 3.9 Interfaz classificationLearner app. Los resultados son mucho mejores debido a esta discriminación en cuanto al valor de los targets. Sin embargo, es una hipótesis asumible puesto que no se buscar establecer una herramienta para la detección de las emociones en un sujeto determinado, sino que se pretende establecer un mecanismo de aviso frente a situaciones límite de estrés y ansiedad que provocan en la mayoría de los casos tomar decisiones de manera errónea. 3.3.1 Validación de los resultados En secciones previas, se demostró la validez de este tipo de señal frente a la visualización de dos videos. En estas muestras se observaba como en el segundo vídeo la mayoría de los sujetos se tenía una tendencia creciente al aumento de los niveles de tensión. En esta sección, se pretende visualizar eso que se ha comprobado de manera empírica mediante la utilización de los algoritmos predictivos calculados. El algoritmo que se utilizará es SVM ya que es el que tiene mejor performance (80 por ciento). Se necesita modificar las funciones ligeramente de manera que se extraigan ahora características pero para cada uno de los vídeos. Se exporta el modelo al workspace y se prueba introduciendo nuevos datos con sus características. Como ejemplo se toma la siguiente gráfica que corresponde a la visualización de los videos por parte de uno de los sujetos. Después de extraer las características se aplican las siguientes líneas en la línea de comandos de Matlab: %primero se selecciona los fragmentos que corresponden a cada vídeo video = videos_separados(datos); %Extraemos las características [picos,elmax,medio,desvi] = maximo_videos(video); cont = crecim(video); %Escribimos el vector de inputs para introducir al clasificador input = [picos(1);elmax(1);medio(1);desvi(1);cont(1)]; y = trainedClassifier(input);
3.3 Método alternativo 71 Tras introducir el código la respuesta que se tiene es que la persona no se encontraba en un estado de nerviosismo o ansiedad.
4 Conclusiones y trabajo futuro Para detectar los niveles de estrés y ansiedad en pilotos y trabajadores del sector aeronáutico se ha realizado un estudio a partir de la respuesta galvánica de la piel para poder determinar la fase de distrés en la cual el organismo es incapaz de discernir una solución posible cuando la situación es desfavorable. Debido a que no existe la posibilidad de probar este método en situaciones de la vida real en la que los trabajadores se encuentren con altos niveles de estrés, se ha partido de las emociones que provocan canciones, elegidas de bandas sonoras determinadas en función de artículos científicos en los cuales se realizaba un estudio de cada una de ellas y sus valores de arousal, valence, etc. A partir del sensor Grove GSR se estudia la respuesta a la sudoración de cada persona para diferentes pruebas realizadas. Para obtener la mayor cantidad de pruebas, estos datos se han obtenido de tres maneras distintas: la primera es utilizando 15 clips de audio cada uno de 15 segundos, otra metodología es utilizar 7 canciones pero de mayor duración, 45 segundos, y la última, una prueba más visual poniendo dos vídeos relacionados con el sector aeronáutico. Con estos datos se ha implementado herramientas de Machine Learning para obtener un modelo de predicción sobre los estados de estrés y ansiedad. Para ello, se realiza un preprocesamiento de los datos, extrayendo las características adecuadas de cada curva. Estas características corresponden a los inputs o entradas del modelo y como objetivos los valores de arousal procedentes de las base de datos de las canciones. De esta manera, los modelos creados no responden de manera eficiente teniendo errores del orden de la unidad. Esto es así por diversos factores, en primer lugar porque no se cuentan con los datos necesarios como para poder crear un modelo predictivo, también se debe a que cada persona no responde de la misma manera al estímulo seleccionado, las canciones, por lo que los datos proporcionados por el sensor son fiables en cierta medida, por último, aunque relacionado con lo comentado anteriormente sobre el número de datos, se tienen demasiadas clases a las que asociar los datos. Esto último se ha comprobado como cambia la precisión del modelo de predicción cuando en lugar de asociar 15 valores diferentes de arousal se discrimina entre dos posibles valores, 0 o 1, correspondiendo el 1 a una situación de estrés. En ambas metodologías, los algoritmos más idóneos a la hora de determinar un modelo de predicción son SVM y KNN. En el caso de diferenciar entre todas las clases correspondientes a la base de datos de las emociones, los valores en cuanto al acierto en la predicción son próximos al 15 por ciento mientras que, después de realizar la hipótesis simplificativa sobre los targets, los resultados mejoran notablemente, superando prácticamente todos los algoritmos el 70 por ciento en acierto en la predicción. Una vez comprobadas las herramientas que propone Matlab para la aplicación de los procedimientos de Machine Learning, se ha realizado una aplicación mediante este mismo programa en la cual se pueden visualizar en tiempo real los datos del sensor GSR. Estos datos se visualizan en una tabla y se introducen como entradas en la red neuronal creada para el problema. Con todo ello, se muestra la predicción en un mensaje de aviso en la interfaz. Como conclusión se puede determinar la validez de este trabajo como punto de partida en cuanto al estudio de las emociones y la relación con la ingeniería. Asimismo, comentar la sencillez a la hora de aplicar los 73
74 Capítulo 4. Conclusiones y trabajo futuro algoritmos de Machine Learning en Matlab con interfaces muy intuitivas. Finalmente, las posibilidades de mejoras de este trabajo son muy diversas, por un lado se podría mejorar la obtención de datos utilizando sensores que aunque midan la misma magnitud, la sudoración de la piel, sean más precisos, en este sensor, por ejemplo, los electrodos son de Níquel, mientras que en otros más precisos el material empleado es AgCl. Asimismo, en cuanto a la posibilidad de añadir mejoras en el futuro, sería interesante comprobar el comportamiento de los algoritmos cuando se fusionan distintos sensores, demostrándose así, las fuentes de error comentadas a lo largo del trabajo y obtener mejores resultados en la predicción, viendo también cuál de los sensores tiene más repercusión a la hora de detectar los niveles de estrés en el individuo. Uno de estos métodos que se podría añadir sería el reconocimiento facial, puesto que otros como la respuesta cerebral los equipos para medirla serían muy caros y complejos a la hora de estudiar las ondas del cerebro (alpha, beta, theta y delta). Además, para el reconocimiento facial el único equipo necesario sería una cámara de buena calidad y aplicar los algoritmos de Machine Learning para la detección de estados. De la misma forma, con esta cámara se podría realizar un seguimiento sobre el movimiento de la pupila del sujeto. Por tanto, la mejora para resultados futuros proceden de diferentes vías:la primera, es la utilización de un sensor de mayor precisión con lo que se aseguraría que los datos son de utilidad para la posterior implementación de los algoritmos. Segundo, es la obtención de un conjunto de muestras más grande, introduciendo a los algoritmos más datos en los que poder categorizarlos. Tercero: una vez fijado el número de muestras, establecer un algoritmo de clasificación y mejorarlo con nuevos métodos a la hora de calcular distancias o probabilidades y por tanto, mejorando la predicción.
5 Códigos En esta sección se incluirán los códigos utilizados a lo largo del trabajo tanto para la obtención de los datos como el preprocesamiento y las diferentes técnicas de Machine Learning. Código implementado en Arduino const int GSR=A0; int sensorValue=0; int gsr_average=0; void setup(){ Serial.begin(9600); } void loop(){ long sum=0; for(int i=0;i<50;i++) //Average the 10 measurements to remove the glitch { sensorValue=analogRead(GSR); sum += sensorValue; //delay(5); } gsr_average = sum/50; Serial.println(gsr_average); } Función para la creación del fichero csv con los datos del sensor function [gsr,tiempo]=matlab_arduino_csv(numero_muestras) n = numero_muestras; gsr=zeros(n,1); cont=1; %Inicialización del puerto serial que se utilizará delete(instrfind({'Port'},{'COM3'})); puerto_serial=serial('COM3'); puerto_serial.BaudRate=9600; warning('off','MATLAB:serial:fscanf:unsuccessfulRead'); %Abro el puerto serial fopen(puerto_serial); 75
76 Capítulo 5. Códigos tic; while cont <= n valor_gsr=fscanf(puerto_serial,' %d')'; gsr(cont) = valor_gsr(1); cont=cont+1; end tiempo=toc; csvwrite('nombre_persona.dat',gsr(2:end)); fclose(puerto_serial); Función para el preprocesado de los datos %%Función para determinar los inputs y targets que se utilizarán posteriormente en los algoritmos de ML: function [salida,tiempo]=preprocesado(datos) tic [~,n] = size(datos); cancion = []; %filt=medfilt1(datos,20); %en caso de necesitar hacer un filtro de mediana for i=1:n cancion(15*(i-1)+1:15*i,:)=canciones_separadas(datos(:,i)); end %Inicializamos las características picos = []; desvi = []; medio = []; elmax = []; for i=1:n [picos(i,:),elmax(i,:)... ,medio(i,:),desvi(i,:)]... = maximo(cancion(15*(i-1)+1:15*i,:)); end %Calculamos la componente principal del conjunto de características: % cp = []; % matriz = [elmax;picos;medio;desvi]'; % % for i=1:n % [~,cp(:,i)] = pca(matriz(:,4*(i-1)+1:4*i),'NumComponents',1); % end % cp = cp'; %Escribimos la matriz que va a entrar a nuestro clasificador: input = []; [k,~] = size(picos); for i=1:k input(1,15*(i-1)+1:15*i)=picos(i,:); input(2,15*(i-1)+1:15*i)=elmax(i,:); input(3,15*(i-1)+1:15*i)=medio(i,:); input(4,15*(i-1)+1:15*i)=desvi(i,:); end
77 % for i=1:k % input(5,15*(i-1)+1:15*i)=cp(i,:); % end t=xlsread('songs_emotion_recognition_database.xls',1,'C2:C16')'; target = []; for i=1:k target(1,15*(i-1)+1:15*i)=t; end salida = [input;target]; %calculo el tiempo que ha tardado: tiempo=toc; Función para separar los fragmentos de las canciones function [cancion,espacio]=canciones_separadas(datos) %se leen los datos del fichero %gsr = csvread(datos); %n = length(gsr); cancion = zeros(7,2500); espacio = zeros(7,833); for j=1:15 %numero canciones for k=1:3333 %recorremos posición del vector if k<=833 espacio(j,k)=datos((j-1)*3333+k); else cancion(j,k-833)=datos((j-1)*3333+k); end end end Función para extraer las características de cada fragmento %%Función para determinar los máximos y número de picos function [picos,elmax,medio,desvi]=maximo(canciones) %n=length(canciones); maximos = []; for j=1:15 %recorremos el número de canciones for i=2:2500-1 if canciones(j,i)>canciones(j,i-1) && canciones(j,i)>canciones(j,i+1) maximos(j,i)=canciones(j,i); end %maximos(j,i)=max(maximos(j,i)); end end %Guardamos el máximo de cada canción