1. Spontaneous EEG Potentials

  1) 수면

    불면증을 진단하고 수면의 단계(non-REM1~4, REM [R&K rules])에 대해 분석할 때 사용된다. 이런 용도의 분석에서는 50Hz Notch, 30s windows를 주로 사용한다. Vilamala et al, 2017에서는 Fpz-Cz, Pz-Oz channel에서 얻은 EEG 신호들을 CNN을 통해서 5-class classification에서 86% 정확도를 확인할 수 있었다. Tan et al., 2015에서는 DBN-RBM에 PSD feature를 넣어서 92.78%까지도 향상시키는걸 볼 수 있었다.

  2) Motor-Imagery (MI)

    사용자의 운동 의도를 탐지하는 MI EEG는 주로 DBN (Deep Belief Network)를 활용한다 (Kumar et al., 2016, Lu et al., 2017). 이 분야는 수면과는 다르게 아직 70%대로 성능이 좋지는 않은데 그래서 다양한 시도들이 이루어지고 있는듯하다. Event-related desynchronization/synchronization (ERD/ERS)를 사용하기도 하는데, 이는 뇌가 특정 상태일 때 EEG signal power의 magnitude, frequency distribution이 달라지는 것에서 감소하면 ERD, 증가하면 ERS를 나타낸다. 이 특징으로 EEG fluctuation을 탐지할 수 있는데, ERD/ERS는 sensory, cognitive, motore procedures task에서 주로 관찰된다. 하지만 개인차가 심하기 때문에 다른 brain research에서는 잘 쓰이지 않는다.

  3) 감정

    감정은 valence, arousal, dominance 3가지로 상태를 평가하는데, 이 3가지 조합으로 fear, sadness, anger 등의 감정을 만들어낸다. MLP가 주로 사용됬었지만 최근에는 CNN, RNN이 더 많이 사용되고 있다. 추가로 Eye movement+EEG 데이터를 bimodal deep autoencoder (BDAE) 과 SVM으로 분석을 했을 때 성별에 따른 감정의 차이가 있다는 것을 찾은 연구도 있었다 (Liu et al., 2016). 그래서 이 차이를 줄이고자 Subsapce alignment autoencoder를 만드는 연구들도 진행되고 있다 (Chai et al., 2016).

  4) 정신 질환

    https://github.com/AITRICS/EEG_real_time_seizure_detection

  5) Data Augmentation

    최근 연구들에 따르면 GAN 같은 모델이 EEG data augmentation으로 활용될 수 있다고 한다 (Abdelfattah et al., 2018). Palazzo et al., 2017은 EEG 신호 feature를 GAN을 통해 image로 변환하기도 하고, Abdelfattah는 seizure EEG data를 GAN을 통해 증강함으로 정확도를 48%에서 82%까지 끌어올릴 수 있었다. (이전 post 참고)

  6) Etc: EEGNet (https://arxiv.org/abs/1611.08024, https://github.com/aliasvishnu/EEGNet)

 

2. Evoked Potentials

  1) ERP (P300)

    Visual, Audio 두가지 sensory에 대한 P300 (Oddball, P3 Speller) 신호를 classification하는데 주로 사용된다. 2~35Hz bandpass filter를 적용한 데이터를 갖고 학습을 하는데, Liu et al., 2017에서는 DBN-RBM + SVM으로 97.3%까지 결과를 얻을 수 있었다. 해당 Dataset으로는 유명한 BCI Competition II가 있다 (https://www.bbci.de/competition/ii/). AEP의 경우 0.1~8Hz freq band 범위에서 sample rate를 256에서 25Hz까지 downsample하여 분석하는 것이 더 좋은 결과를 보인다고 한다. Audio processing에서 주로 쓰이는 SincNet (low and high cutoff frequencies에 더 attention 둠)를 통해 feature extraction을 하는 경우도 있다.   

    VEP diagram 중에 Rapid Serial Visual Presentation (RSVP)가 가장 인기가 많은데, CNN, MLP모델로도 좋은 성능이 report 되고 있다. RSVP는 연달아서 나오는 이미지/텍스트 중에 연관성이 없는것이 나오면 report하는 테스트입니다. 0.1~50Hz까지 넓게 사용되고 LSTM 같은 모델에서도 좋은 성능을 보인다고 한다.

  2) SSEP

    대부분 Visual을 중심으로 하는 SSVEP를 기반으로 연구가 진행되는데, SSVEP는 특정 주파수로 깜빡인는 자극을 볼때 나오는 parietal, occipital 영역 뇌파를 기반으로 한다. CNN+RNN 모델로 93.5% 정확도를 얻은 논문 (Attia et al.,2018)부터 compact CNN model로 cross-subject 정확도 향상 시도 (Waytowich et al., 2018), DFT 후 CNN/LSTM에 넣는 등 다양한 시도가 되고 있다. 그런데 online / offline, subject-in/dependent 한 요소들도 고려되어야하므로 오히려 간단한 CNN 모델이 더 좋은 성능을 보이는 경우가 많이 있다.

 

3. Applications

  위의 논문들에 기반하면 간단한 CNN 모델만으로도 70%대 정확도가 나오는 걸 확인할 수 있었습니다. 이는 CNN이 충분히 EEG의 latent discriminative feature와 spatial dependencies를 뽑아낼 수 있기 때문이다. 또한 CNN 모델들이 public한 repo가 많기 때문에 이를 EEG에 적용해보는 시도들이 필요하다고 한다. 그리고 1D (signal)인 EEG를 여러 방법으로 2D로도 변환 가능하다. 예를 들어 각 time point를 2D image로 변환하거나, segment를 2D matrix로 만드는 방법 (32 channel x 100 time point) 을 선택할 수 있다.

    Representative model (DBN)의 경우 주로  DBN-RBM이 사용되는 걸 볼 수 있었는데, 이는 근처 layer의 변수 간 관계를 보여주는 generative param를 효율적으로 학습하고, 각 hidden layer의 latent var를 직관적으로 계산한다는 점이다 (Deng, 2012). 한동안 DBN이 잘 쓰이지 않다가 최근들어 CNN과 같이 하이브리드 형태로 사용되고 있다.

    이런 model을 기반으로 BCI는 헬스케어, Smart Environment (IoT, Robot control 등), 통신, 보안, 감정, 운전 피로 등 다양한 분야에서 활용되고 있다.

'Cognitive Neuroscience > BCI' 카테고리의 다른 글

Machine Learning on EEG Data  (1) 2022.03.15
2. Brain Signal Acquisition  (0) 2021.12.25
1. Introduction  (0) 2021.12.04

주로 뇌파 데이터에서는 RNN보다는 CNN을 주로 활용함

 

13년도부터 뇌파 데이터에 딥러닝 적용해보려는 시도가 이루어 졌지만 발견한 문제점

 - 데이터가 부족 : 이미지처럼 많은 데이터를 얻기 힘듦

 - 불확실성이 크다 (Non stationary, Non linearity) 시간에 따라 분산 등이 변함

 

문제 해결 시도

1) 뇌파 신호의 이미지화

=> 뇌파 Data를 알파, 베타 ,감마의 이미지로 변형하여 적용해보자! (Bashivan et al., 2015) = 가능은 하지만 기존 ML보다는 성능이 낮음

=> Power-Spectral Density Image로 분류 (Ieracitano et al., 2019), Topography map CNN에 적용 (Mao et al., 2018)

 

2) Feature Extraction

=> Power-Spectral Density, Covariance 등의 Feature를 추출하여 CNN 적용 (Zhang & Eskandarian, 2020)

=> Channel Synchronicity Visualization하여 이미지화 (Naira & Alamo, 2019)

 

1,2번 방법들 모두 분류는 가능하나 LDA, SVM보다 낫지 않아 대부분 비교한 것을 보고를 하지 않음!!

 

3) Raw Data 직접 적용

=> Deep Learning with Convolution Neural Network for EEG Decoding and Visualization, Shirrmeister et al., 2017 (https://braindecode.org/) EEG 딥러닝 대중화를 위해 Pytorch 기반 툴박스 제작 & 기존 모델(FBCSP)과 비교! Shallow, Deep Conv Net 모두 성능 향상되지만 Deep이 더 안정적으로 향상되는 것을 확인

=> 시간, 공간을 분리, 즉 각각 Time-Channel에 대해 Kernel을 사용 / Time에 대해, 공간에 대해 각각 Kernel을 분리하였더니 정확도가 상승하는 것을 발견! Model 구성, parameter 최적화 부재 때문에 비교적 성능은 떨어짐

=> EEGNet (Lawhern et al., 2018) 도 나옴

 

뇌파 Data를 적용할 때 주의사항

- 여러 Model을 적용하고 기존 ML 결과와 비교하는 것이 중요 (최적화, 노다가 작업..)

- 기존 논문 결과가 항상 그대로 나오지 않는 경우가 많음 (기존 논문은 비교를 잘 하지 않았고, Data 수집 방법의 차이가 큼, Subject dependent로 높은 정확도 유도한 경우도..)

- 기존 모델 (Shallow, DeepNet, EEGNet, SVM 등), Batch Size, Subject Dependent/Independent에 따라 비교해볼 것

- Data Augmentation 하여 데이터 확대해보기

 

EEG Data Augmentation 방법 (1번(epoch < 10s)과 2-4번(~2s epoch)방법이 주로 가장 효과가 좋은 것으로 보임)

1) Sliding Window (Sakai et al., 2017) - Epoch size가 10s 정도로 긴 경우 가장 최적의 step, window size를 찾아 활용

2) EEG Data에 Noise 추가

2-1) Short-time Fourier Transform (STFT) Amplitude Perturbation (Li et al., 2019) - STFT로 EEG Spectrum를 추출하고 Amplitude Spectrum에 Noise를 더한 뒤 inverse STFT로 신호 복원; Noise 종류는 Gaussian, Salt&Pepper, Speckle 등 사용 가능 (EEG Data 특성 상 시계열에 직접 추가하면 안됨!)

2-2) STFT 한 후 관심 없는 고주파 Noise 신호 (100Hz 이상)를 추출하여 다른 Sample에 더해 Data 증강, 데이터를 n-1배까지 Augmentation 가능!! (Zhang et al., 2021)

2-3) FFT Phase Randomized Surrogates - FFT로 얻은 스펙트럼에서 amplitude는 고정한 상태에서 phase만 섞은 뒤에 inverse FFT

2-4) STFT time domain recombination (Lotte et al., 2015) - STFT로 Time-Freq Map을 만들고 시간 축으로 섞은 뒤 inverse STFT

3) GAN EEG Data Augmentation (Luo & Lu, 2018)

'Cognitive Neuroscience > BCI' 카테고리의 다른 글

3. Deep Learning BCI (focused on EEG)  (0) 2022.08.06
2. Brain Signal Acquisition  (0) 2021.12.25
1. Introduction  (0) 2021.12.04

Taxonomy of brain signals

 Non-invasive 방법 중에는 fNIRS, fMRI, EOG, MEG 가장 대표적인 방법으로는 EEG로 본 내용에서 주로 다룰 데이터이다. Delta (0.5~4 Hz), Theta (4~8 Hz), Alpha (8~12 Hz), Beta (12~30 Hz), Gamma (30~100 Hz)로 나누어 져있고, Alpha~Gamma에서 인간의 인지 과정 및 정도에 대한 정보를 얻을 수 있다 (Zhang et al., 2018h).

 EEG의 또 다른 특징으로는 휴대성이 좋고, temporal resolution이 높다는 것이다. 그리고 다른 방법에 비해 Signal processing으로 충분히 착용자의 움직임에 영향을 줄일 수 있고, 강한 자기장에 노출되지 않아도 된다는 점이다. 그렇게 때문에 EEG를 활용한 분석 방법들이 많이 개발되어 있다. 위의 그림과 같이 여러 Paradigm으로 나눌 수 있는데, Spontaneous EEG의 경우 lower SNR과 참가자간 larger variation 때문에 분석 및 사용이 어려운 부분이 있다. 반대로 Evoked Potential의 경우에는 event를 기준으로 분석을 하기 때문에 이러한 단점들이 많이 보완될 수 있다. 하지만 ERP에서는 event 간의 간격이 겹치면 안되기 때문에 stimuli 자극 주기가 2Hz이하인 경우가 많고, SSEP는 3.5~75Hz까지 다양하게 제시 가능하다.

1) Event-Related Potential: visual, audio, somatosensory 등 다양한 감각으로 인한 evoked potential이 존재하고, occipital lobe에서 나오는 VEP가 가장 뚜렷하게 측정된다. Rapid serial visual presentation (RSVP)로 background noise를 제거하기 위해 여러번 반복하는 실험 패러다임을 사용한다. (SEP로 VR Haptic Evaluation이 가능할지??)

2) P300: Positive potential of ERP at 300ms라는 뜻으로, P1, N1, N2 등 다양한 종류가 있다. 그 중에서드 P300은 큰 진폭으로 인해 탐지하기 쉽워 대표적으로 많이 쓰인다. P3 신호를 얻기 위해서는 Odd-ball paradigm을 사용하는데 BCI에서는 P300 Speller라는 input 방식으로 활용된다.

3) Steady State Evoked Potentials: 평상시의 Brain signal과 Steady-state stimuli (고정 주기로 깜빡이는 자극)가 제시 되고 있을 때의 braing signal을 비교하여 이를 Trigger로써 활용한다. 이러한 자극에도 Auditory, Somatosensory를 기반으로 한 것들이 있지만 주로 Visual을 활용한다.

 

[참고 Link]

 

Virtual ERP Boot Camp: Introduction to ERPs

An introduction to the event-related potential technique for students and researchers with little or no prior ERP experience.

courses.erpinfo.org

 

Online EEGLAB workshop

EEGLAB Documentation including tutorials and workshops information

eeglab.org

 

'Cognitive Neuroscience > BCI' 카테고리의 다른 글

3. Deep Learning BCI (focused on EEG)  (0) 2022.08.06
Machine Learning on EEG Data  (1) 2022.03.15
1. Introduction  (0) 2021.12.04

* 본 Chapter는 Deep Learning for EEG-Based Brain-Computer Interface: Representations, Algorithms and Applications 책을 기반으로 공부하며 정리한 내용들입니다!

http://www.moregrasp.eu/technologies/Brain-Computer-Interfaces

BCI는 휠체어를 조작하거나 로봇을 원격으로 조작하듯 주로 motion에 불편함을 느끼는 경우 이를 보조하기 위한 기술 개발로 주로 쓰여왔다. BCI는 옆의 이미지와 같이 시스템이 구성되어있는데, EEG의 경우 noise가 포함되기 쉬운 기기이기 때문에 이러한 과정에서 Signal-to-Noise (SNR)을 높이는 것이 중요하다. 이를 위해 Preprocessing 과정에서 signal cleaning, signal normalization, signal enhancement (DC 제거), signal reduction이 수행된다. 

그 뒤에 Feature engineering에서는 도메인 지식이 필요하다. preprocess 된 후의 신호에서 사용할만한 feature를 뽑기 위해 EEG 데이터를 time (variance, mean value, kurtosis), frequency (FFT), time-frequency (Discrete wavelet transform) 도메인으로 주로 접근한다. (참고해보면 좋은 링크: https://youtu.be/48qi0exuWRI)

이러한 과정을 프로그래밍을 통해서 자동화하지만 그래도 noise가 많고 개인차가 크기 때문에 최근에 Deep learning을 활용한 방법들이 BCI에서 많이 주목을 받고 있다. BCI에서 DL을 통해서 얻고자하는 목표는 크게 4가지가 있다.

1. Challenge of low SNR: 근육, 눈움직임으로 인한 noise를 효과적으로 제거하고 feature를 찾아내는 것

2. Feature engineering Automation: 전문적인 지식이 없더라도 효율적이고 명확한 feature를 찾아낼 수 있어야함

3. High Accuracy: 기존 SVM을 활용한 방법들의 정확도가 80% 이하였는데, 이를 그 이상으로 끌어올릴 수 있어야 함

4. Handle unlabeled data: 대부분 EEG의 데이터들은 라벨링이 되있지 않거나, 데이터의 크기가 크지 않은 경우가 많은데, 이러한 조건에서도 좋은 성능을 이끌어 낼 수 있어야 함

최근들어 다양한 DL 알고리즘과 GPU가 개발되면서 BCI 분야도 많이 발전이 되었다. 앞으로 이러한 부분들을 더 다룰 예정이다. 아래는 책에서 추천해준 몇 EEG-DL 관련 git 주소들이다.

https://github.com/xiangzhang1015/Deep-Learning-for-BCI

 

GitHub - xiangzhang1015/Deep-Learning-for-BCI: Resources for Book: Deep Learning for EEG-based Brain-Computer Interface: Represe

Resources for Book: Deep Learning for EEG-based Brain-Computer Interface: Representations, Algorithms and Applications - GitHub - xiangzhang1015/Deep-Learning-for-BCI: Resources for Book: Deep Lear...

github.com

https://github.com/NeuroTechX/dl-eeg-playground

 

GitHub - NeuroTechX/dl-eeg-playground: Deep Learning EEG Playground

Deep Learning EEG Playground. Contribute to NeuroTechX/dl-eeg-playground development by creating an account on GitHub.

github.com

https://github.com/QTIM-Lab/DeepNeuro

 

GitHub - QTIM-Lab/DeepNeuro: A deep learning python package for neuroimaging data. Made by:

A deep learning python package for neuroimaging data. Made by: - GitHub - QTIM-Lab/DeepNeuro: A deep learning python package for neuroimaging data. Made by:

github.com

 

'Cognitive Neuroscience > BCI' 카테고리의 다른 글

3. Deep Learning BCI (focused on EEG)  (0) 2022.08.06
Machine Learning on EEG Data  (1) 2022.03.15
2. Brain Signal Acquisition  (0) 2021.12.25

+ Recent posts