El poder del Análisis de Componentes Independientes (ICA) en aplicaciones del mundo real – ejemplo de EEG

El poder del Análisis de Componentes Independientes (ICA) en aplicaciones del mundo real - un ejemplo de EEG

La análisis de componentes independientes (ICA) es una poderosa herramienta impulsada por datos capaz de separar contribuciones lineales en los datos

Foto de National Cancer Institute en Unsplash

Introducción

La análisis de componentes independientes (ICA) se asocia generalmente con tareas de reducción de dimensionalidad. Sin embargo, la aplicación más destacada de esta técnica es separar las contribuciones lineales de los datos y encontrar componentes independientes estadísticamente. Por ejemplo, ICA se usa ampliamente como una herramienta para separar las pistas de instrumentos de la música. El objetivo de este artículo es presentar y motivar el ICA con el famoso ejemplo de la “fiesta de cóctel”, y luego hacer una breve introducción sobre cómo el ICA extrae componentes independientes, utilizando los conceptos básicos de probabilidad y teoría de la información. Después, exploraremos un ejemplo práctico de identificación y eliminación del movimiento de parpadeo ocular en los datos del electroencefalograma (EEG).

Separar contribuciones de la señal y el ICA

Para entender mejor la separación de contribuciones lineales de los datos, el ejemplo estándar es la “fiesta de cóctel”. Este escenario establece el ambiente en una animada fiesta de cóctel donde dos personas están conversando, representadas por los hablantes rojo (Y1) y azul (Y2) en la habitación. Por lo tanto, se colocan estratégicamente dos micrófonos cercanos para capturar las voces de ambas personas, representadas por los micrófonos verde (X1) y amarillo (X2). La audibilidad de estas voces varía según la proximidad de los interlocutores a cada micrófono.

Ilustración de la

El desafío radica en cómo segregar efectivamente las dos voces distintas de cada archivo de audio mezclado para obtener grabaciones de audio aisladas de cada hablante. Este enigma se puede resolver mediante la aplicación experta de la Análisis de Componentes Independientes (ICA). Con las suposiciones correctas sobre los datos (que veremos en la siguiente sección), cada componente independiente será el sonido del hablante azul y rojo.

Ilustración de la descomposición de ICA. Imagen del autor.

Mecanismo básico de ICA

La Análisis de Componentes Independientes (ICA) busca una representación de los datos X utilizando un sistema de coordenadas S en el que los componentes Si sean independientes. Estos sistemas de coordenadas independientes forman una representación natural de los datos.

La parte más importante aquí es que el ICA asume componentes estadísticamente independientes en lugar de no correlacionados (como el PCA) [1].

Definición de independencia estadística.

El Análisis de Componentes Principales (PCA) asume que los datos y los componentes tienen una distribución normal, y cuando se cumple este requisito, los componentes de PCA son estadísticamente independientes. Sin embargo, en un caso general donde la distribución de los datos no es gaussiana, el ICA es un método sólido para encontrar componentes independientes Y (fuentes) que representan los datos X (señal).

La transformación ICA se da por Y = AX, donde los elementos de A son los coeficientes que definen los componentes. Por lo tanto, sigue siendo un método lineal, porque asume una combinación lineal entre la fuente y las señales.

También podemos tomar la inversa, lo que significa escribir los datos de acuerdo a los componentes de ICA

Dado que estamos buscando componentes estadísticamente independientes, queremos minimizar la información compartida entre los componentes.

Por lo tanto, la teoría de la información es una candidata natural para ayudarnos a resolver este problema. Existe una medida de la información compartida por dos variables aleatorias X e Y, se llama Información Mutua

Por lo tanto, queremos minimizar la información compartida por los componentes,

Esto es encontrar A que minimiza I[Y] = I[ AˆT X ]. Por lo tanto, los vectores ortogonales resultantes conducen a los componentes más independientes.

Una vez que entendemos la motivación y el mecanismo básico detrás de ICA, apliquémoslo en una situación del mundo real.

Los datos de electroencefalografía (EEG) están contaminados por varios artefactos de movimiento, que ocurren por el movimiento voluntario o involuntario del paciente durante la adquisición de imágenes. Uno común es el movimiento del parpadeo de los ojos. Por lo tanto, herramientas como ICA se utilizan ampliamente para eliminar este tipo de ruido [2]. Como ya se discutió, ICA es una forma de separar las contribuciones independientes de la señal. Por lo tanto, intuitivamente deberíamos esperar una contribución importante del movimiento del parpadeo de los ojos en los canales más cercanos a los ojos.

EEG mide las diferencias potenciales en puntos corticales a lo largo del tiempo. Por lo tanto, en un experimento de EEG, tendremos múltiples series de tiempo de diferentes partes de la corteza con información diferente sobre los circuitos neuronales.

Ejemplo de series de tiempo de EEG de múltiples canales. Imagen del autor.
Ubicación de los canales del ejemplo anterior. Imagen del autor.

Para manejar los datos de EEG y aplicar ICA correctamente, vamos a utilizar MNE (una biblioteca para el manejo y análisis de datos de EEG). También utilizaremos datos recolectados por el Prof. João Sato en la Universidad Federal de ABC, que están disponibles en GitHub.

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltimport numpy as npimport mne as mnesns.set_palette('pastel')eeg = np.loadtxt('/Users/rodrigo/Post-Grad/Disciplines/Neural Signaling Processing/Aula_3/restEEG/OlhosAbertos.txt')canais = pd.read_csv('/Users/rodrigo/Post-Grad/Disciplines/Neural Signaling Processing/Aula_3/restEEG/NOMEScanais.txt', dtype='str', header=None)# Sampling frequency 250Hz: Hz = 250eeg = pd.DataFrame(eeg, columns=canais.iloc[:,0].values)eeg['Time(s)'] = np.arange(0, (1/Hz)*len(eeg), 1/Hz)

Creando objeto MNE EEG.

# Creando objeto MNE
mne_info = mne.create_info(
            list(eeg.columns[:-1]),
            Hz,
            ch_types=['eeg']*len(eeg.columns[:-1]))
mne_raw = mne.io.RawArray(eeg.iloc[:,:-1].values.T, mne_info)
# Definiendo la arquitectura de los electrodos
standard_1020 = mne.channels.make_standard_montage('standard_1020')
mne_raw.set_montage(standard_1020)

Para extraer solo características importantes, necesitamos filtrar la serie temporal para excluir frecuencias altas (> 120 Hz) y bajas (< 4 Hz) relacionadas con artefactos y ruido, y también la contribución de 60 Hz de la línea de alimentación del entorno.

# Establecer parámetros de filtro
lowCut = 4 # Hz
highCut = 120 # Hz
freqNotch = 60 # Hz (interferencia eléctrica del entorno)
# Aplicar filtro de banda y filtro de notch
mne_raw.filter(lowCut, highCut, fir_design='firwin')
mne_raw.notch_filter(freqNotch, fir_design='firwin')

Ahora, los datos están listos para pasar por ICA.

ica_obj = mne.preprocessing.ICA(
            n_components=0.95,
            method='infomax',
            max_iter="auto",
            random_state=1,
            fit_params=dict(extended=True)).fit(mne_raw)
ica = ica_obj.get_sources(mne_raw).get_data()
ica_obj.plot_components(picks=None,show=True, inst=mne_raw)

Los coeficientes de ICA se utilizan como un proxy para identificar la contribución espacial al componente de la señal.

Ilustración del procedimiento para asociar valores a regiones espaciales para cada componente. Imagen del autor.

Por lo tanto, es posible crear mapas de calor para cada componente.

Componentes de ICA. Imagen del autor.

El primer componente es la contribución del movimiento del parpadeo del ojo a la señal. Como era de esperar, la contribución es mayor en los electrodos más cercanos a los ojos. También es posible ver más en profundidad la información de tiempo/frecuencia del componente.

Información de tiempo/frecuencia del primer componente de ICA. Imagen del autor.

Ahora, para eliminar el artefacto del movimiento del parpadeo del ojo de los datos, simplemente reconstruimos la señal sin ese componente específico. Esto significa recuperar la serie temporal sin los patrones asociados al artefacto.

Conclusión

En conclusión, el Análisis de Componentes Independientes (ICA) es una poderosa herramienta basada en datos, que asume datos no gaussianos y relaciones lineales entre las fuentes y las señales para buscar componentes estadísticamente independientes. El ICA nos permite separar diferentes contribuciones a los datos, lo que lo hace particularmente útil en escenarios donde se necesita aislar el ruido o las señales no deseadas. En el caso de los datos de EEG, el ICA puede identificar y eliminar artefactos de movimiento como el parpadeo de los ojos, que pueden contaminar la señal neural.

Observaciones

Es importante destacar que el ICA es una herramienta poderosa que debe utilizarse con precaución. Los métodos basados en datos no asumen ningún conocimiento previo sobre el sistema. Por lo tanto, la confusión y las conclusiones erróneas son comunes, por lo que es esencial verificar los requisitos y evaluar los resultados con atención.

Agradecimientos

Este proyecto fue inspirado por el Prof. João Ricardo Sato.

El cuaderno de este artículo está disponible aquí.

Referencias

[1] Hastie T, Tibshirani R, Friedman J, Hastie T, Tibshirani R, et al. (2009) Basis expansions and regularization. In: The Elements of Statistical Learning, New York, NY: Springer New York, Springer Series in Statistics.

[2] Mennes M, Wouters H, Vanrumste B, Lagae L, Stiers P. (2010).Validación del ICA como herramienta para eliminar artefactos de movimiento ocular del EEG/ERP. Psicofisiología. 2010;47(6):1142–1150. doi:10.1111/j.1469–8986.2010.01015.x

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Aprendizaje Automático

¿Qué son los Modelos de Lenguaje Grandes (LLMs)? Aplicaciones y Tipos de LLMs

Los programas informáticos llamados modelos de lenguaje grandes proporcionan opciones novedosas para analizar y crear...

Inteligencia Artificial

Este boletín de IA es todo lo que necesitas #65

Esta semana en IA, tuvimos avances en la regulación de la IA desde el Capitolio líderes tecnológicos como Elon Musk y...

Inteligencia Artificial

Avance en la Intersección de Visión-Lenguaje Presentando el Proyecto Todo-Vista

Impulsando el ascenso meteórico de los chatbots de IA, los LLM son el tema de conversación en la ciudad. Están mostra...

Inteligencia Artificial

La cámara detiene los deepfakes al disparar

Las credenciales de contenido integradas verifican la autenticidad de las fotos.

Inteligencia Artificial

Una nueva investigación de IA de Italia presenta un modelo generativo basado en difusión capaz tanto de la síntesis musical como de la separación de fuentes

Los seres humanos son capaces de procesar varias fuentes de sonido al mismo tiempo, tanto en términos de composición ...