Binary classification of EEG motor imagery data using deep learning There are 3 CNN models(Tor2, Tor3,Tor4) proposed to classify motor imagery EEG data. We have compared them with traditional algorithms for classification like LDA and SVM. Our models showed 65%(Tor3),66%(Tor4) and 68%(Tor2) of accuracy, while LDA and SVM showed 65% and 64% respectively. Tor2 model was based on the paper "Single-trial EEG classification of motor imagery using deep convolutional neural networks" by Tang and et.
We were provided with data of 80 healthy participants, overall 12000 trials, 39 channels. 50% of trials trials for left and 50% for right hand. We have done band pass filter(10-14Hz), Segmentation: 0.75-3.5 sec and 0-8.0 sec, Splitting to train and test sets - 80/20 and for feature extraction: CSP on train set (6 features). We are not allowed to upload data and use outside of the class.
68% of accuracy and AUC=0.784 for data without CSP and with segmentation 0- 8.0 sec
Net(
(conv1): Conv2d(1, 8, kernel_size=(1, 39), stride=(1, 1))
(batch1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(dropout1): Dropout(p=0.5, inplace=False)
(conv2): Conv2d(8, 40, kernel_size=(25, 1), stride=(25, 25))
(batch2): BatchNorm2d(40, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(dropout2): Dropout(p=0.5, inplace=False)
(fc1): Linear(in_features=1280, out_features=100, bias=True)
(dropout3): Dropout(p=0.5, inplace=False)
(fc2): Linear(in_features=100, out_features=1, bias=True)
)
criterion = nn.BCEWithLogitsLoss()
optimizer = torch.optim.Adam(net.parameters())
num_epochs = 30
65% of accuracy and AUC=0.72 for data with CSP and with segmentation 0.75-3.5 sec
Convolution -> Batch Normalization -> Relu-> Dropout->Convolution-> Batch Normalization -> Relu-> Dropout ->fully connected>
criterion = nn.CrossEntropyLoss()
num_epochs = 20
66% of accuracy and AUC=0.72 for data with CSP and with segmentation 0.75-3.5 sec
Tor4(
(conv1): Conv2d(1, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(fc1): Linear(in_features=105600, out_features=10, bias=True)
(fc2): Linear(in_features=10, out_features=2, bias=True)
)
criterion = nn.BCEWithLogitsLoss()
Aslan Ubingazhibov - Computer Science, Nazarbayev University, aslan.ubinagzhibov@nu.edu.kz
Yernar Zhetpissov - Robotics and Mechatronics, Nazarbayev University, yernar.zhetpissov@nu.edu.kz
Yerassyl Orazbek - Robotics and Mechatronics, Nazarbayev University, yerassyl.orazbek@nu.edu.kz
Daniyar Kazbek - Computer Science, Nazarbayev University, daniyar.kazbek@nu.edu.kz
Tang, Zhichuan, Chao Li, and Shouqian Sun. "Single-trial EEG classification of motor imagery using deep convolutional neural networks." Optik-International Journal for Light and Electron Optics 130 (2017): 11-18.