{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "nbsphinx": "hidden" }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "import os\n", "os.sys.path.insert(0, '/home/schirrmr/braindecode/code/braindecode/')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Amplitude Perturbation Visualization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "In this tutorial, we show how to use perturbations of the input amplitudes to learn something about the trained convolutional networks. For more background, see [Deep learning with convolutional neural networks for EEG decoding and visualization](https://arxiv.org/abs/1703.05051), Section A.5.2.\n", "\n", "First we will do some cross-subject decoding, again using the [Physiobank EEG Motor Movement/Imagery Dataset](https://www.physionet.org/physiobank/database/eegmmidb/), this time to decode imagined left hand vs. imagined right hand movement.\n", "\n", "\n", "
\n", "\n", "This tutorial might be very slow if you are not using a GPU.\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Enable logging" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import logging\n", "import importlib\n", "importlib.reload(logging) # see https://stackoverflow.com/a/21475297/1469195\n", "log = logging.getLogger()\n", "log.setLevel('INFO')\n", "import sys\n", "logging.basicConfig(format='%(asctime)s %(levelname)s : %(message)s',\n", " level=logging.INFO, stream=sys.stdout)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import mne\n", "import numpy as np\n", "from mne.io import concatenate_raws\n", "from braindecode.datautil.signal_target import SignalAndTarget\n", "\n", "# First 50 subjects as train\n", "physionet_paths = [ mne.datasets.eegbci.load_data(sub_id,[4,8,12,]) for sub_id in range(1,51)]\n", "physionet_paths = np.concatenate(physionet_paths)\n", "parts = [mne.io.read_raw_edf(path, preload=True,stim_channel='auto')\n", " for path in physionet_paths] \n", "\n", "raw = concatenate_raws(parts)\n", "\n", "picks = mne.pick_types(raw.info, meg=False, eeg=True, stim=False, eog=False,\n", " exclude='bads')\n", "\n", "events = mne.find_events(raw, shortest_event=0, stim_channel='STI 014')\n", "\n", "# Read epochs (train will be done only between 1 and 2s)\n", "# Testing will be done with a running classifier\n", "epoched = mne.Epochs(raw, events, dict(hands=2, feet=3), tmin=1, tmax=4.1, proj=False, picks=picks,\n", " baseline=None, preload=True)\n", "\n", "# 51-55 as validation subjects\n", "physionet_paths_valid = [mne.datasets.eegbci.load_data(sub_id,[4,8,12,]) for sub_id in range(51,56)]\n", "physionet_paths_valid = np.concatenate(physionet_paths_valid)\n", "parts_valid = [mne.io.read_raw_edf(path, preload=True,stim_channel='auto')\n", " for path in physionet_paths_valid]\n", "raw_valid = concatenate_raws(parts_valid)\n", "\n", "picks_valid = mne.pick_types(raw_valid.info, meg=False, eeg=True, stim=False, eog=False,\n", " exclude='bads')\n", "\n", "events_valid = mne.find_events(raw_valid, shortest_event=0, stim_channel='STI 014')\n", "\n", "# Read epochs (train will be done only between 1 and 2s)\n", "# Testing will be done with a running classifier\n", "epoched_valid = mne.Epochs(raw_valid, events_valid, dict(hands=2, feet=3), tmin=1, tmax=4.1, proj=False, picks=picks_valid,\n", " baseline=None, preload=True)\n", "\n", "train_X = (epoched.get_data() * 1e6).astype(np.float32)\n", "train_y = (epoched.events[:,2] - 2).astype(np.int64) #2,3 -> 0,1\n", "valid_X = (epoched_valid.get_data() * 1e6).astype(np.float32)\n", "valid_y = (epoched_valid.events[:,2] - 2).astype(np.int64) #2,3 -> 0,1\n", "train_set = SignalAndTarget(train_X, y=train_y)\n", "valid_set = SignalAndTarget(valid_X, y=valid_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create the model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the deep ConvNet from [Deep learning with convolutional neural networks for EEG decoding and visualization](https://arxiv.org/abs/1703.05051) (Section 2.4.2).\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from braindecode.models.deep4 import Deep4Net\n", "from torch import nn\n", "from braindecode.torch_ext.util import set_random_seeds\n", "from braindecode.models.util import to_dense_prediction_model\n", "\n", "# Set if you want to use GPU\n", "# You can also use torch.cuda.is_available() to determine if cuda is available on your machine.\n", "cuda = True\n", "set_random_seeds(seed=20170629, cuda=cuda)\n", "\n", "# This will determine how many crops are processed in parallel\n", "input_time_length = 450\n", "# final_conv_length determines the size of the receptive field of the ConvNet\n", "model = Deep4Net(in_chans=64, n_classes=2, input_time_length=input_time_length,\n", " filter_length_3=5, filter_length_4=5,\n", " pool_time_stride=2,\n", " stride_before_pool=True,\n", " final_conv_length=1)\n", "if cuda:\n", " model.cuda()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from braindecode.torch_ext.optimizers import AdamW\n", "import torch.nn.functional as F\n", "optimizer = AdamW(model.parameters(), lr=1*0.01, weight_decay=0.5*0.001) # these are good values for the deep model\n", "model.compile(loss=F.nll_loss, optimizer=optimizer, iterator_seed=1, cropped=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the training" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2018-08-27 12:04:33,164 INFO : Run until first stop...\n", "2018-08-27 12:04:34,651 INFO : Epoch 0\n", "2018-08-27 12:04:34,652 INFO : train_loss 3.30341\n", "2018-08-27 12:04:34,655 INFO : valid_loss 3.40263\n", "2018-08-27 12:04:34,657 INFO : train_misclass 0.51359\n", "2018-08-27 12:04:34,658 INFO : valid_misclass 0.53052\n", "2018-08-27 12:04:34,660 INFO : runtime 0.00000\n", "2018-08-27 12:04:34,662 INFO : \n", "2018-08-27 12:04:36,947 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:04:38,297 INFO : Epoch 1\n", "2018-08-27 12:04:38,298 INFO : train_loss 0.67976\n", "2018-08-27 12:04:38,299 INFO : valid_loss 0.61942\n", "2018-08-27 12:04:38,300 INFO : train_misclass 0.41846\n", "2018-08-27 12:04:38,301 INFO : valid_misclass 0.30516\n", "2018-08-27 12:04:38,302 INFO : runtime 3.78315\n", "2018-08-27 12:04:38,303 INFO : \n", "2018-08-27 12:04:40,568 INFO : Time only for training updates: 1.88s\n", "2018-08-27 12:04:41,919 INFO : Epoch 2\n", "2018-08-27 12:04:41,920 INFO : train_loss 0.64919\n", "2018-08-27 12:04:41,921 INFO : valid_loss 0.56678\n", "2018-08-27 12:04:41,922 INFO : train_misclass 0.34114\n", "2018-08-27 12:04:41,924 INFO : valid_misclass 0.21127\n", "2018-08-27 12:04:41,925 INFO : runtime 3.62068\n", "2018-08-27 12:04:41,926 INFO : \n", "2018-08-27 12:04:44,187 INFO : Time only for training updates: 1.88s\n", "2018-08-27 12:04:45,484 INFO : Epoch 3\n", "2018-08-27 12:04:45,485 INFO : train_loss 0.63218\n", "2018-08-27 12:04:45,486 INFO : valid_loss 0.54783\n", "2018-08-27 12:04:45,487 INFO : train_misclass 0.31584\n", "2018-08-27 12:04:45,488 INFO : valid_misclass 0.16432\n", "2018-08-27 12:04:45,489 INFO : runtime 3.61918\n", "2018-08-27 12:04:45,490 INFO : \n", "2018-08-27 12:04:47,751 INFO : Time only for training updates: 1.88s\n", "2018-08-27 12:04:49,053 INFO : Epoch 4\n", "2018-08-27 12:04:49,054 INFO : train_loss 0.61976\n", "2018-08-27 12:04:49,055 INFO : valid_loss 0.52507\n", "2018-08-27 12:04:49,056 INFO : train_misclass 0.29475\n", "2018-08-27 12:04:49,057 INFO : valid_misclass 0.15962\n", "2018-08-27 12:04:49,058 INFO : runtime 3.56433\n", "2018-08-27 12:04:49,060 INFO : \n", "2018-08-27 12:04:51,321 INFO : Time only for training updates: 1.88s\n", "2018-08-27 12:04:52,620 INFO : Epoch 5\n", "2018-08-27 12:04:52,621 INFO : train_loss 0.61424\n", "2018-08-27 12:04:52,622 INFO : valid_loss 0.51823\n", "2018-08-27 12:04:52,624 INFO : train_misclass 0.29053\n", "2018-08-27 12:04:52,625 INFO : valid_misclass 0.15023\n", "2018-08-27 12:04:52,626 INFO : runtime 3.56998\n", "2018-08-27 12:04:52,627 INFO : \n", "2018-08-27 12:04:54,927 INFO : Time only for training updates: 1.92s\n", "2018-08-27 12:04:56,223 INFO : Epoch 6\n", "2018-08-27 12:04:56,224 INFO : train_loss 0.64316\n", "2018-08-27 12:04:56,225 INFO : valid_loss 0.54869\n", "2018-08-27 12:04:56,226 INFO : train_misclass 0.32755\n", "2018-08-27 12:04:56,228 INFO : valid_misclass 0.19249\n", "2018-08-27 12:04:56,229 INFO : runtime 3.60571\n", "2018-08-27 12:04:56,230 INFO : \n", "2018-08-27 12:04:58,492 INFO : Time only for training updates: 1.88s\n", "2018-08-27 12:04:59,791 INFO : Epoch 7\n", "2018-08-27 12:04:59,792 INFO : train_loss 0.60664\n", "2018-08-27 12:04:59,793 INFO : valid_loss 0.51988\n", "2018-08-27 12:04:59,794 INFO : train_misclass 0.29100\n", "2018-08-27 12:04:59,795 INFO : valid_misclass 0.11268\n", "2018-08-27 12:04:59,796 INFO : runtime 3.56507\n", "2018-08-27 12:04:59,798 INFO : \n", "2018-08-27 12:05:02,061 INFO : Time only for training updates: 1.88s\n", "2018-08-27 12:05:03,358 INFO : Epoch 8\n", "2018-08-27 12:05:03,359 INFO : train_loss 0.61118\n", "2018-08-27 12:05:03,360 INFO : valid_loss 0.52178\n", "2018-08-27 12:05:03,361 INFO : train_misclass 0.27179\n", "2018-08-27 12:05:03,362 INFO : valid_misclass 0.12207\n", "2018-08-27 12:05:03,364 INFO : runtime 3.56884\n", "2018-08-27 12:05:03,365 INFO : \n", "2018-08-27 12:05:05,627 INFO : Time only for training updates: 1.88s\n", "2018-08-27 12:05:06,930 INFO : Epoch 9\n", "2018-08-27 12:05:06,931 INFO : train_loss 0.61678\n", "2018-08-27 12:05:06,935 INFO : valid_loss 0.52481\n", "2018-08-27 12:05:06,936 INFO : train_misclass 0.29428\n", "2018-08-27 12:05:06,939 INFO : valid_misclass 0.14085\n", "2018-08-27 12:05:06,939 INFO : runtime 3.56590\n", "2018-08-27 12:05:06,943 INFO : \n", "2018-08-27 12:05:09,208 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:10,507 INFO : Epoch 10\n", "2018-08-27 12:05:10,508 INFO : train_loss 0.61286\n", "2018-08-27 12:05:10,511 INFO : valid_loss 0.51615\n", "2018-08-27 12:05:10,512 INFO : train_misclass 0.28913\n", "2018-08-27 12:05:10,513 INFO : valid_misclass 0.14554\n", "2018-08-27 12:05:10,515 INFO : runtime 3.58118\n", "2018-08-27 12:05:10,516 INFO : \n", "2018-08-27 12:05:12,785 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:14,086 INFO : Epoch 11\n", "2018-08-27 12:05:14,087 INFO : train_loss 0.59369\n", "2018-08-27 12:05:14,091 INFO : valid_loss 0.50478\n", "2018-08-27 12:05:14,091 INFO : train_misclass 0.27976\n", "2018-08-27 12:05:14,095 INFO : valid_misclass 0.13615\n", "2018-08-27 12:05:14,095 INFO : runtime 3.57760\n", "2018-08-27 12:05:14,099 INFO : \n", "2018-08-27 12:05:16,369 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:17,691 INFO : Epoch 12\n", "2018-08-27 12:05:17,692 INFO : train_loss 0.60356\n", "2018-08-27 12:05:17,693 INFO : valid_loss 0.53101\n", "2018-08-27 12:05:17,694 INFO : train_misclass 0.26945\n", "2018-08-27 12:05:17,695 INFO : valid_misclass 0.17840\n", "2018-08-27 12:05:17,697 INFO : runtime 3.58372\n", "2018-08-27 12:05:17,698 INFO : \n", "2018-08-27 12:05:19,976 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:21,278 INFO : Epoch 13\n", "2018-08-27 12:05:21,279 INFO : train_loss 0.60062\n", "2018-08-27 12:05:21,280 INFO : valid_loss 0.47819\n", "2018-08-27 12:05:21,281 INFO : train_misclass 0.26148\n", "2018-08-27 12:05:21,282 INFO : valid_misclass 0.13615\n", "2018-08-27 12:05:21,283 INFO : runtime 3.60660\n", "2018-08-27 12:05:21,284 INFO : \n", "2018-08-27 12:05:23,559 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:24,876 INFO : Epoch 14\n", "2018-08-27 12:05:24,877 INFO : train_loss 0.58935\n", "2018-08-27 12:05:24,879 INFO : valid_loss 0.48233\n", "2018-08-27 12:05:24,880 INFO : train_misclass 0.26101\n", "2018-08-27 12:05:24,881 INFO : valid_misclass 0.14085\n", "2018-08-27 12:05:24,882 INFO : runtime 3.58363\n", "2018-08-27 12:05:24,883 INFO : \n", "2018-08-27 12:05:27,163 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:28,477 INFO : Epoch 15\n", "2018-08-27 12:05:28,478 INFO : train_loss 0.58065\n", "2018-08-27 12:05:28,479 INFO : valid_loss 0.49514\n", "2018-08-27 12:05:28,480 INFO : train_misclass 0.24977\n", "2018-08-27 12:05:28,481 INFO : valid_misclass 0.12676\n", "2018-08-27 12:05:28,481 INFO : runtime 3.60388\n", "2018-08-27 12:05:28,482 INFO : \n", "2018-08-27 12:05:30,756 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:32,070 INFO : Epoch 16\n", "2018-08-27 12:05:32,071 INFO : train_loss 0.57086\n", "2018-08-27 12:05:32,072 INFO : valid_loss 0.48204\n", "2018-08-27 12:05:32,073 INFO : train_misclass 0.24321\n", "2018-08-27 12:05:32,073 INFO : valid_misclass 0.09390\n", "2018-08-27 12:05:32,074 INFO : runtime 3.59321\n", "2018-08-27 12:05:32,074 INFO : \n", "2018-08-27 12:05:34,346 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:35,652 INFO : Epoch 17\n", "2018-08-27 12:05:35,653 INFO : train_loss 0.58726\n", "2018-08-27 12:05:35,653 INFO : valid_loss 0.49676\n", "2018-08-27 12:05:35,654 INFO : train_misclass 0.25070\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2018-08-27 12:05:35,655 INFO : valid_misclass 0.16432\n", "2018-08-27 12:05:35,655 INFO : runtime 3.58996\n", "2018-08-27 12:05:35,656 INFO : \n", "2018-08-27 12:05:37,934 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:39,250 INFO : Epoch 18\n", "2018-08-27 12:05:39,252 INFO : train_loss 0.56666\n", "2018-08-27 12:05:39,252 INFO : valid_loss 0.46518\n", "2018-08-27 12:05:39,253 INFO : train_misclass 0.23711\n", "2018-08-27 12:05:39,254 INFO : valid_misclass 0.12676\n", "2018-08-27 12:05:39,254 INFO : runtime 3.58806\n", "2018-08-27 12:05:39,255 INFO : \n", "2018-08-27 12:05:41,566 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:42,999 INFO : Epoch 19\n", "2018-08-27 12:05:43,000 INFO : train_loss 0.55883\n", "2018-08-27 12:05:43,000 INFO : valid_loss 0.47641\n", "2018-08-27 12:05:43,001 INFO : train_misclass 0.23805\n", "2018-08-27 12:05:43,005 INFO : valid_misclass 0.10798\n", "2018-08-27 12:05:43,006 INFO : runtime 3.63181\n", "2018-08-27 12:05:43,007 INFO : \n", "2018-08-27 12:05:45,276 INFO : Time only for training updates: 1.89s\n", "2018-08-27 12:05:46,646 INFO : Epoch 20\n", "2018-08-27 12:05:46,647 INFO : train_loss 0.55717\n", "2018-08-27 12:05:46,649 INFO : valid_loss 0.48102\n", "2018-08-27 12:05:46,650 INFO : train_misclass 0.22259\n", "2018-08-27 12:05:46,651 INFO : valid_misclass 0.11737\n", "2018-08-27 12:05:46,652 INFO : runtime 3.71030\n", "2018-08-27 12:05:46,653 INFO : \n", "2018-08-27 12:05:48,932 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:05:50,236 INFO : Epoch 21\n", "2018-08-27 12:05:50,237 INFO : train_loss 0.55138\n", "2018-08-27 12:05:50,238 INFO : valid_loss 0.47634\n", "2018-08-27 12:05:50,240 INFO : train_misclass 0.21603\n", "2018-08-27 12:05:50,241 INFO : valid_misclass 0.09390\n", "2018-08-27 12:05:50,242 INFO : runtime 3.65521\n", "2018-08-27 12:05:50,243 INFO : \n", "2018-08-27 12:05:52,521 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:05:53,862 INFO : Epoch 22\n", "2018-08-27 12:05:53,863 INFO : train_loss 0.54738\n", "2018-08-27 12:05:53,864 INFO : valid_loss 0.46885\n", "2018-08-27 12:05:53,866 INFO : train_misclass 0.22165\n", "2018-08-27 12:05:53,867 INFO : valid_misclass 0.08920\n", "2018-08-27 12:05:53,868 INFO : runtime 3.58897\n", "2018-08-27 12:05:53,869 INFO : \n", "2018-08-27 12:05:56,148 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:05:57,515 INFO : Epoch 23\n", "2018-08-27 12:05:57,517 INFO : train_loss 0.53695\n", "2018-08-27 12:05:57,519 INFO : valid_loss 0.45847\n", "2018-08-27 12:05:57,520 INFO : train_misclass 0.21087\n", "2018-08-27 12:05:57,521 INFO : valid_misclass 0.10798\n", "2018-08-27 12:05:57,522 INFO : runtime 3.62732\n", "2018-08-27 12:05:57,524 INFO : \n", "2018-08-27 12:05:59,804 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:06:01,105 INFO : Epoch 24\n", "2018-08-27 12:06:01,106 INFO : train_loss 0.53602\n", "2018-08-27 12:06:01,107 INFO : valid_loss 0.46697\n", "2018-08-27 12:06:01,108 INFO : train_misclass 0.20993\n", "2018-08-27 12:06:01,109 INFO : valid_misclass 0.11268\n", "2018-08-27 12:06:01,111 INFO : runtime 3.65615\n", "2018-08-27 12:06:01,112 INFO : \n", "2018-08-27 12:06:03,392 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:06:04,690 INFO : Epoch 25\n", "2018-08-27 12:06:04,691 INFO : train_loss 0.52928\n", "2018-08-27 12:06:04,693 INFO : valid_loss 0.46500\n", "2018-08-27 12:06:04,694 INFO : train_misclass 0.21134\n", "2018-08-27 12:06:04,695 INFO : valid_misclass 0.12676\n", "2018-08-27 12:06:04,696 INFO : runtime 3.58741\n", "2018-08-27 12:06:04,697 INFO : \n", "2018-08-27 12:06:06,978 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:06:08,274 INFO : Epoch 26\n", "2018-08-27 12:06:08,275 INFO : train_loss 0.53385\n", "2018-08-27 12:06:08,276 INFO : valid_loss 0.45885\n", "2018-08-27 12:06:08,277 INFO : train_misclass 0.21649\n", "2018-08-27 12:06:08,278 INFO : valid_misclass 0.12207\n", "2018-08-27 12:06:08,279 INFO : runtime 3.58615\n", "2018-08-27 12:06:08,280 INFO : \n", "2018-08-27 12:06:10,560 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:06:11,854 INFO : Epoch 27\n", "2018-08-27 12:06:11,855 INFO : train_loss 0.52531\n", "2018-08-27 12:06:11,856 INFO : valid_loss 0.45631\n", "2018-08-27 12:06:11,857 INFO : train_misclass 0.20337\n", "2018-08-27 12:06:11,858 INFO : valid_misclass 0.12207\n", "2018-08-27 12:06:11,860 INFO : runtime 3.58260\n", "2018-08-27 12:06:11,861 INFO : \n", "2018-08-27 12:06:14,147 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:06:15,447 INFO : Epoch 28\n", "2018-08-27 12:06:15,448 INFO : train_loss 0.52515\n", "2018-08-27 12:06:15,450 INFO : valid_loss 0.45932\n", "2018-08-27 12:06:15,451 INFO : train_misclass 0.20197\n", "2018-08-27 12:06:15,452 INFO : valid_misclass 0.11268\n", "2018-08-27 12:06:15,453 INFO : runtime 3.58636\n", "2018-08-27 12:06:15,454 INFO : \n", "2018-08-27 12:06:17,739 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:06:19,094 INFO : Epoch 29\n", "2018-08-27 12:06:19,095 INFO : train_loss 0.52143\n", "2018-08-27 12:06:19,099 INFO : valid_loss 0.45449\n", "2018-08-27 12:06:19,099 INFO : train_misclass 0.19541\n", "2018-08-27 12:06:19,103 INFO : valid_misclass 0.11737\n", "2018-08-27 12:06:19,103 INFO : runtime 3.59220\n", "2018-08-27 12:06:19,106 INFO : \n", "2018-08-27 12:06:21,387 INFO : Time only for training updates: 1.90s\n", "2018-08-27 12:06:22,693 INFO : Epoch 30\n", "2018-08-27 12:06:22,694 INFO : train_loss 0.51937\n", "2018-08-27 12:06:22,698 INFO : valid_loss 0.45642\n", "2018-08-27 12:06:22,698 INFO : train_misclass 0.19588\n", "2018-08-27 12:06:22,702 INFO : valid_misclass 0.11737\n", "2018-08-27 12:06:22,702 INFO : runtime 3.64778\n", "2018-08-27 12:06:22,704 INFO : \n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_time_length = 450\n", "model.fit(train_set.X, train_set.y, epochs=30, batch_size=64, scheduler='cosine',\n", " input_time_length=input_time_length,\n", " validation_data=(valid_set.X, valid_set.y),)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compute correlation: amplitude perturbation - prediction change" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First collect all batches and concatenate them into one array of examples:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from braindecode.datautil.iterators import CropsFromTrialsIterator\n", "from braindecode.torch_ext.util import np_to_var\n", "test_input = np_to_var(np.ones((2, 64, input_time_length, 1), dtype=np.float32))\n", "if cuda:\n", " test_input = test_input.cuda()\n", "out = model.network(test_input)\n", "n_preds_per_input = out.cpu().data.numpy().shape[2]\n", "iterator = CropsFromTrialsIterator(batch_size=32,input_time_length=input_time_length,\n", " n_preds_per_input=n_preds_per_input)\n", "\n", "train_batches = list(iterator.get_batches(train_set, shuffle=False))\n", "train_X_batches = np.concatenate(list(zip(*train_batches))[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, create a prediction function that wraps the model prediction function and returns the predictions as numpy arrays. We use the predition before the softmax, so we create a new module with all the layers of the old until before the softmax." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from torch import nn\n", "from braindecode.torch_ext.util import var_to_np\n", "import torch as th\n", "new_model = nn.Sequential()\n", "for name, module in model.network.named_children():\n", " if name == 'softmax': break\n", " new_model.add_module(name, module)\n", "\n", "new_model.eval();\n", "pred_fn = lambda x: var_to_np(th.mean(new_model(np_to_var(x).cuda())[:,:,:,0], dim=2, keepdim=False))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2018-08-08 12:19:10,049 INFO : Compute original predictions...\n", "2018-08-08 12:19:27,871 INFO : Iteration 0...\n", "2018-08-08 12:19:27,873 INFO : Sample perturbation...\n", "2018-08-08 12:19:37,305 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:19:50,788 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:20:08,863 INFO : Compute new predictions...\n", "2018-08-08 12:20:09,609 INFO : Layer 0...\n", "2018-08-08 12:20:09,610 INFO : Compute activation difference...\n", "2018-08-08 12:20:09,611 INFO : Compute correlation...\n", "2018-08-08 12:20:13,067 INFO : Iteration 1...\n", "2018-08-08 12:20:13,068 INFO : Sample perturbation...\n", "2018-08-08 12:20:20,858 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:20:30,561 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:20:45,390 INFO : Compute new predictions...\n", "2018-08-08 12:20:46,164 INFO : Layer 0...\n", "2018-08-08 12:20:46,165 INFO : Compute activation difference...\n", "2018-08-08 12:20:46,166 INFO : Compute correlation...\n", "2018-08-08 12:20:49,880 INFO : Iteration 2...\n", "2018-08-08 12:20:49,880 INFO : Sample perturbation...\n", "2018-08-08 12:20:59,277 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:21:11,041 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:21:32,809 INFO : Compute new predictions...\n", "2018-08-08 12:21:33,628 INFO : Layer 0...\n", "2018-08-08 12:21:33,629 INFO : Compute activation difference...\n", "2018-08-08 12:21:33,631 INFO : Compute correlation...\n", "2018-08-08 12:21:37,634 INFO : Iteration 3...\n", "2018-08-08 12:21:37,635 INFO : Sample perturbation...\n", "2018-08-08 12:21:47,688 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:21:59,979 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:22:21,661 INFO : Compute new predictions...\n", "2018-08-08 12:22:22,430 INFO : Layer 0...\n", "2018-08-08 12:22:22,431 INFO : Compute activation difference...\n", "2018-08-08 12:22:22,432 INFO : Compute correlation...\n", "2018-08-08 12:22:26,532 INFO : Iteration 4...\n", "2018-08-08 12:22:26,533 INFO : Sample perturbation...\n", "2018-08-08 12:22:36,511 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:22:48,632 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:23:05,148 INFO : Compute new predictions...\n", "2018-08-08 12:23:05,920 INFO : Layer 0...\n", "2018-08-08 12:23:05,921 INFO : Compute activation difference...\n", "2018-08-08 12:23:05,922 INFO : Compute correlation...\n", "2018-08-08 12:23:08,494 INFO : Iteration 5...\n", "2018-08-08 12:23:08,495 INFO : Sample perturbation...\n", "2018-08-08 12:23:17,066 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:23:29,459 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:23:51,135 INFO : Compute new predictions...\n", "2018-08-08 12:23:51,910 INFO : Layer 0...\n", "2018-08-08 12:23:51,911 INFO : Compute activation difference...\n", "2018-08-08 12:23:51,912 INFO : Compute correlation...\n", "2018-08-08 12:23:52,788 INFO : Iteration 6...\n", "2018-08-08 12:23:52,789 INFO : Sample perturbation...\n", "2018-08-08 12:23:59,554 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:24:11,074 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:24:31,349 INFO : Compute new predictions...\n", "2018-08-08 12:24:32,134 INFO : Layer 0...\n", "2018-08-08 12:24:32,135 INFO : Compute activation difference...\n", "2018-08-08 12:24:32,135 INFO : Compute correlation...\n", "2018-08-08 12:24:36,217 INFO : Iteration 7...\n", "2018-08-08 12:24:36,218 INFO : Sample perturbation...\n", "2018-08-08 12:24:45,191 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:24:55,820 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:25:13,979 INFO : Compute new predictions...\n", "2018-08-08 12:25:14,761 INFO : Layer 0...\n", "2018-08-08 12:25:14,762 INFO : Compute activation difference...\n", "2018-08-08 12:25:14,763 INFO : Compute correlation...\n", "2018-08-08 12:25:17,312 INFO : Iteration 8...\n", "2018-08-08 12:25:17,313 INFO : Sample perturbation...\n", "2018-08-08 12:25:25,635 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:25:37,586 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:25:59,839 INFO : Compute new predictions...\n", "2018-08-08 12:26:00,618 INFO : Layer 0...\n", "2018-08-08 12:26:00,619 INFO : Compute activation difference...\n", "2018-08-08 12:26:00,620 INFO : Compute correlation...\n", "2018-08-08 12:26:01,544 INFO : Iteration 9...\n", "2018-08-08 12:26:01,545 INFO : Sample perturbation...\n", "2018-08-08 12:26:07,447 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:26:17,042 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:26:31,921 INFO : Compute new predictions...\n", "2018-08-08 12:26:32,650 INFO : Layer 0...\n", "2018-08-08 12:26:32,651 INFO : Compute activation difference...\n", "2018-08-08 12:26:32,653 INFO : Compute correlation...\n", "2018-08-08 12:26:35,548 INFO : Iteration 10...\n", "2018-08-08 12:26:35,549 INFO : Sample perturbation...\n", "2018-08-08 12:26:42,538 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:26:51,004 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:27:04,210 INFO : Compute new predictions...\n", "2018-08-08 12:27:04,980 INFO : Layer 0...\n", "2018-08-08 12:27:04,981 INFO : Compute activation difference...\n", "2018-08-08 12:27:04,982 INFO : Compute correlation...\n", "2018-08-08 12:27:07,018 INFO : Iteration 11...\n", "2018-08-08 12:27:07,019 INFO : Sample perturbation...\n", "2018-08-08 12:27:14,177 INFO : Compute perturbed complex inputs...\n", "2018-08-08 12:27:24,518 INFO : Compute perturbed real inputs...\n", "2018-08-08 12:27:40,668 INFO : Compute new predictions...\n", "2018-08-08 12:27:41,417 INFO : Layer 0...\n", "2018-08-08 12:27:41,418 INFO : Compute activation difference...\n", "2018-08-08 12:27:41,419 INFO : Compute correlation...\n" ] } ], "source": [ "from braindecode.visualization.perturbation import compute_amplitude_prediction_correlations\n", "\n", "\n", "amp_pred_corrs = compute_amplitude_prediction_correlations(pred_fn, train_X_batches, n_iterations=12,\n", " batch_size=30)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot correlations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pick out one frequency range and mean correlations within that frequency range to make a scalp plot.\n", "Here we use the alpha frequency range." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(64, 226, 2)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "amp_pred_corrs.shape" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "\n", "fs = epoched.info['sfreq']\n", "freqs = np.fft.rfftfreq(train_X_batches.shape[2], d=1.0/fs)\n", "start_freq = 7\n", "stop_freq = 14\n", "\n", "i_start = np.searchsorted(freqs,start_freq)\n", "i_stop = np.searchsorted(freqs, stop_freq) + 1\n", "\n", "freq_corr = np.mean(amp_pred_corrs[:,i_start:i_stop], axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now get approximate positions of the channels in the 10-20 system." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from braindecode.datasets.sensor_positions import get_channelpos, CHANNEL_10_20_APPROX\n", "\n", "ch_names = [s.strip('.') for s in epoched.ch_names]\n", "positions = [get_channelpos(name, CHANNEL_10_20_APPROX) for name in ch_names]\n", "positions = np.array(positions)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot with MNE" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "from matplotlib import cm\n", "%matplotlib inline\n", "max_abs_val = np.max(np.abs(freq_corr))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axes = plt.subplots(1, 2)\n", "class_names = ['Left Hand', 'Right Hand']\n", "for i_class in range(2):\n", " ax = axes[i_class]\n", " mne.viz.plot_topomap(freq_corr[:,i_class], positions,\n", " vmin=-max_abs_val, vmax=max_abs_val, contours=0,\n", " cmap=cm.coolwarm, axes=ax, show=False);\n", " ax.set_title(class_names[i_class])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot with Braindecode" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from braindecode.visualization.plot import ax_scalp\n", "\n", "fig, axes = plt.subplots(1, 2)\n", "class_names = ['Left Hand', 'Right Hand']\n", "for i_class in range(2):\n", " ax = axes[i_class]\n", " ax_scalp(freq_corr[:,i_class], ch_names, chan_pos_list=CHANNEL_10_20_APPROX, cmap=cm.coolwarm,\n", " vmin=-max_abs_val, vmax=max_abs_val, ax=ax)\n", " ax.set_title(class_names[i_class])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From these plots we can see the ConvNet clearly learned to use the lateralized response in the alpha band. Note that the positive correlations for the left hand on the left side do not imply an increase of alpha activity for the left hand in the data, see [Deep learning with convolutional neural networks for EEG decoding and visualization](https://arxiv.org/abs/1703.05051) Result 12 for some notes on interpretability." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dataset references\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " This dataset was created and contributed to PhysioNet by the developers of the [BCI2000](http://www.schalklab.org/research/bci2000) instrumentation system, which they used in making these recordings. The system is described in:\n", " \n", " Schalk, G., McFarland, D.J., Hinterberger, T., Birbaumer, N., Wolpaw, J.R. (2004) BCI2000: A General-Purpose Brain-Computer Interface (BCI) System. IEEE TBME 51(6):1034-1043.\n", "\n", "[PhysioBank](https://physionet.org/physiobank/) is a large and growing archive of well-characterized digital recordings of physiologic signals and related data for use by the biomedical research community and further described in:\n", "\n", " Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PCh, Mark RG, Mietus JE, Moody GB, Peng C-K, Stanley HE. (2000) PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals. Circulation 101(23):e215-e220." ] } ], "metadata": { "celltoolbar": "Edit Metadata", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 2 }