Skip to content

mtl-brainhack-school-2018/arnaghosh

Repository files navigation

Learning to recall dreams from dreamers

This is an attempt to classify people who had a high dream recall rate from those who didn't based on their EEG data recorded during sleep using a deep convolutional network architecture.
More about me

Aims

  • Train a deep convolutional architecture to discriminate people with high dream recall rate (dreamers) from those with low dream recall rate (non-dreamers).
  • Observe the decoding (classification) accuracies for different sleep stages to identify key sleep stage containing differences
  • Visualize the features extracted by the CNN to classify the two groups
  • Try to train on identifying individual subjects - maybe used as person identification tool

Dataset

Courtesy - CoCo Lab

  • 36 subjects - 18 dreamers and 18 non-dreamers
  • Sleep trials of 30 sec interval sampled at 1000 Hz
  • 19 EEG electrodes
  • Sleep trials segregated based on sleep stage (S1, S2, REM and SWS) as annotated by an expert

Tools/Language used

  • MATLAB
  • Torch (Lua)

Data Processing and Structuring

  • Data downsampled to 200 Hz
  • Check for anti-aliasing (Thanks Andrew)
  • Sleep trials split into segments of 5 sec long each
  • Data dimension structured to be 1 X 19 X 1000 to pass to the CNN

Deep Learning architecture

Network Architecture

  • Train network on SWS sleep data. 80% training data from bag of sleep segments, 20% for validaton
  • Train network on 34 subjects and test on remaining 2 subjects -> accuracy not good enough for 14 folds
  • Use REM and S2 data. S1 data may not be enough!! :/
  • Train a subject identifier
  • Choose parameters for good subject classifier
  • Confusion matrix for subject prediction
  • Try subj prediction with lesser training data -> Better accuracy with more filters (more params)
  • Too many params in network, yet better accuracy -> Increasing linear layers improves subject ID, but affects dreamers-nonDreamers, hence more linear layers allow subject specific features to be learnt.

Visualizing features

  • Use GAP
  • Use gradCAM/deep dream
  • Use ccCAM (method being developed)

Current issues

  • Good accuracy at sleep segment level, but not at subject level
  • Write code for identifying subjects

Deliverables for Brainhack school

  • Develop a re-usable framework in Torch -> Training and Data preparation files added with some comments, descriptions added in Readme file in Codes folder
  • Port the code to PyTorch and make a notebook
  • Write down a blog post detailing challenges faced and tips/tricks to solve them

Further scope

  • Interpret neurological basis of extracted features
  • Learning how people dream or what affects dream recall
  • Extend to bigger datasets of M/EEG recordings

Important Resources

  • Visualizing CNN decision in automated sleep scoring - Link

About

Repo for Sleep-EEG Project at MTL Brainhack School 2018

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published