How to increase CNN accuracy?

I have images created from EEG epochs of Size 18x64. Have designed a CNN to classify the epochs into two categories. The CNN that I designed:The convolution layer 1 is of size 3x3 with stride 1 and Convolution layer 2 is of size 2x2 with stride 1.
No matter how many epochs I train it for, my training loss (mini-batch loss) doesn't decrease. It hovers around a value of 0.69xx and accuracy not improving beyond 65%.
I have tried the following to minimize the loss,but still no effect on it.
1. Vary the initial learning rate - 0.01,0.001,0.0001,0.00001; 2. Vary the batch size - 16,32,64; 3. Vary the number of filters - 5,10,15,20; 4. Vary the filter size - 2x2,3x3,1x4,1x8; 5. Vary the dropout - 0.2,0.3,0.4,0.5,0.6.
Can anyone please help me to understand what the issue might be?
Thanks for your time and input(s).
-- Venkat

4 Comments

Tell us more about your input data, what's in each of the 3 channels (RGB colors?), and how does an EEG become an 18x64 image (seems pretty low resolution, or is that just 1 measurement?). - Clearly your network isn't converging. What dimensions are your two convolutional layers?
18x64 - 18 electrodes and 64 sample points per epoch. Like that, I have 2000 images for class1 and 6000 images for class 2.Raw EEG, FFT magnitude, and FFT phase are the 3 channels of the image.
My convolutional layers are of size: convolution layer 1 is of size 3x3 with stride 1 (10 filters) and Convolution layer 2 (15 filters) is of size 2x2 with stride 1.
Can't figure out the problem of why the network is not converging?
Well, on second thought this problem is not a good fit for a CNN. You are analyzing a time series, and key to distinguishing the classes is how the time series evolves, it's not sufficient to look at a single snapshot of the signal, or rather, 64 sample points aren't enough (how much time do 64 samples represent?). You could try increasing the window you feed into the CNN, or switch to using an LSTM.
Hi, Thanks for your thoughts.
64 samples correspond to 0.25 seconds (sampling frequency=256 Hz). Yes, I have now increased my sample/epoch/input size to 16X512 (corresponding to 2 seconds of EEG data). Still not able to up the accuracy beyond 70%.

Sign in to comment.

Answers (1)

sana khan
sana khan on 11 Sep 2018
sir i want you to increase accuracy but its not increase up to 83

1 Comment

I do not understand your point Sana Khan. Can you please elaborate on what you are trying to say.

Sign in to comment.

Asked:

on 6 Apr 2018

Commented:

on 12 Sep 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!