저자: Akara Supratak et al.
소속: Imperial College London, London
학회: IEEE TRANSACTIONS on Neural Systems and Rehabilitation Engineering 2017
인용: 786 (until 2023.05.07)
Baseline
PSG(Polysomnogram)
- PSG: EEG(뇌파), EOG(눈), EMG(근전도), ECG(심전도)등 다양한 형태의 신호를 수면 중 수집한 데이터 정보
- 30초 간격으로 R&K 혹은 AASM Manual을 통해 어떤 수면 단계에 있는지를 판단한다.
Time Invariant vs Time variant.
- 아래 이미지와 같이, 같은 입력에 대해 같은 출력이 나오도록 하는 것.
hand-engineered feature
- 스펙트럼 대역, 주파수 대역 등 사용자가 직접 가공하여 선별한 특징.
Problem
- 현존하는 Sleep stage classification은 hand-engineered feature 기반.
- 몇 개의 Model만 temporal information(transition rule)을 담고 있음.
Abstract
- CNN과 Bidirectional LSTM을 활용하여 Transition rule을 수면 단계에서 자동으로 학습하는 모델 개발.
- Labeling 방법이 다른 2개의 데이터 셋에서 동일한 모델으로 SOTA달성.
Related Work
DeepBeliefNets and etc.
- 전처리 된 raw PSG 신호의 확률적인 표현을 학습
- CNN은 Fpz-Cz EEG 신호를 활용하여 time-inhvariant feature를 뽑아낸다.
- Raw EEG신호보다 hand-engineered feature 신호를 딥러닝에 넣은 것이 성능이 더 좋았다.
RNN 활용 모델
- RNN을 활용하여 long-term dependcies(transition rules)를 학습 가능하다.
- LSTM을 활용하여 time-frequency domain을 추출가능하지만, 여전히 hand-engineered feature에 의존한다.
I. INTRODUCTION
- 수면 단계 분류는 피실험자에게 부착된 여러 센서를 가지고 라벨링을 진행하기에 노동 집약적이며, 시간 소모적이다.
- time-domain, frequency-domain, time-frequency domain 등을 뽑아내는 여러가지 방법이 존재하였다.
- hand-engineered feature에서는 여러개의 신호를 사용하여 하나의 Vector로 합친 후, Input으로 넣어 학습이 가능하지만 DeepSleepNet에서는 피실험자와 하드웨어간의 이질성으로 인해 이러한 과정이 일반화가 잘 되지 않을 수 있다고 본다.
- 따라서 DeepSleepnet에서는 Deep-learning을 활용하여 자동으로 hand-engineered feature를 추출하는 것을 목표로 한다
- 2개의 CNN과 Bi-directional LSTM을 활용한다. 2개의 CNN은 time-invariant feature를 추출하고, LSTM은 temporal information을 학습하는 것을 목표로 한다.
- 2 step의 학습 방법을 통해 Class imbalance 문제를 해결하고자 하였다.
- 모델의 구조 변경 없이 2개의 데이터 셋에 대해 적용이 가능하다.
II. DEEPSLEEPNET
1. Representation Learning: raw single-channel EEG에서 time-invartiant 특징 추출.
2. Sequence Residual Learning: transition rules과 같은 temporal information추출.
3. Model Specification
A. Representation Learning
- Figure 1에서 윗부분의 CNN part를 담당한다. large/small CNN 2개를 사용한다.
- temporal / frequency precision을 가지고 trade-off를 겪는 signal processing 전문가들에게 영감을 받았다.
- Small CNN은 temporal information을, Larger CNN은 frequency information을 더 잘 학습한다.
(temporal information: EEG patern, frequency information: frequency components)
- Conv Layer는 1D Conv, BatchNorm, ReLU 3개가 합쳐져 있다. Conv layer는 각각 filter size, filter 수, stride size이다.
- pooling layer는 filter size, stride size이다
- hs_i, hl_i는 각각 Small, Large CNN이며, ||은 Concatenate이다
B. Sequence Residual Learning
- 2개의 Bi-directional LSTM과 Skip-connection으로 구성되어있다.
- transition rules과 같은 temporal information을 학습하기 위해 Bi-directional LSTM을 사용했다.
- Skip-connection을 통해 과거와 미래의 정보를 같이 볼 수 있다.
C. Model Specification
- A,B 요약과 같다.
III. TWO-STEP TRAINING ALGORITHM
A. pre-training for representation Leraning
1. 2개의 CNN을 init_model에서 추출 → init_CNN_(θ_s , θ_l ) // Random Weight 사용.
2. Pre_model 은 init_CNN_(θ_s , θ_i) 과 softmax 가 합쳐진 Model 즉 pre_train model의 구조를 정의함.
Softmax는 마지막 FCN을 나타낸다. (Fine-tuning 단계에서 사용안할 것이기 때문, 또한 CNN만 Pre-training 진행)
3. pre-train에 사용할 data, 〖data〗_over 는 기존 데이터를 Oversampling 하여 Class-balance training set으로 학습.
4. Epochs는 학습할 횟수
5. 각 epochs에서 mini-batch 사이즈만큼 데이터를 뽑는 과정.
6. pre_model에 adam optimizer를 사용하여 학습 진행, Learning rate는 lr, “←” 개선 된 모델!
7 ~ 8 : 반복문 끝
B. Fine-tuning the whole model using different LR
09. 위의 단계의 출력물인 pre_model에서 CNN 2개를 뽑음 → pre_CNN_(θ_s , θ_l )
10. model은 pre_CNN_(θ_s , θ_i) 과 init_model 을 합쳐 Fine-tuning을 진행할 Model 생성
11. 학습할 횟수 만큼 반복하여 학습 진행
12. fine-train에 사용할 data는 기존 데이터 (Sequence training set) Subject는 피실험자 data는 피실험자들의 데이터가 모인 데이터 셋 (imbalanced training set)
13. Bidirectional-LSTM의 파라미터 초기화 (Pre-training 단계에서는 CNN만 학습했기 때문)
14. arrange_sequence(subject)를 통해 학습 가능한 상태인subject_data_(seq)로 바꿈.
15.Batch size에 맞게 데이터를 잘라서 학습 진행
16.2개의 Learning Rate를 가지고 학습 진행 Optimizer는 Adam
IV. RESULTS
- 2개의 pre-training, fine-tuning 단계에서 Oversampling을 통해 Class-imbalancing문제를 해결하고자 하였다. 실제로도 성능이 올라간 것을 볼 수 있다.
- 2개의 Learning Rate를 사용하여 Fine-tuining을 진행하였다.