[Eeglablist] RegIca AR and SCRLS algorithm

Mahesh Casiraghi mahesh.casiraghi at gmail.com
Mon Apr 4 13:10:03 PDT 2011


Dear EEGLabbers,


I am trying here to test if the hybrid methodology proposed by Florian and
his group [
http://lomiweb.med.auth.gr/gan/mklados/index.php?option=com_k2&view=item&id=25:regica]
may be effective in removing eye-artifacts in an experiment where 10 secs
epochs need to be segmented.


The concept of the methodology seems promising to me, but I am nonetheless a
bit puzzled with respect to which regression algorithm might be adopted.
When it comes to run the code on a real subject (512Hz sampling rate,
continuous data, 64 EEG and 4 EOG chans, about 1.30 hours) LMS and CRLS
become both unstable and fail after just few steps. H INF ew and tv
algorithms, do that too. It seems to me the only option left is to make use
of SCRLS_regression.m from the AAR toolbox, but as the relative
documentation suggests, the function is not really optimized for fast
computation, and the reg procedure seems to take ages to converge [running
it in matlab 64, on a 4cores pc, for a 1.30 hours continuous EEG and it is
still trying to converge after 23 hours of computation, just one processor
used].


Question is: can someone out there with some experience with AAR toolbox
and/or SCRLS algorithm provide some insights on how to play around with the
'lambda', 'sigma', and 'precision' fields of the opt structure so as to come
up with a sufficiently accurate output in an acceptable amount of time? I
was unable to find any detailed summary or list of practical
guidelines/hints concerning these parameters. Furthermore, perhaps someone
is aware of a more effective SRLS reg routine...


Here the code I used to reshape the tri-dimensional chans x samps x trials
matrix, run regica, and come back to the cleaned 3 dims matrix. As you see,
opt parameters are default, with the exception of .20 instead of .25 for
correlation threshold, note that srls is default here.


  EEG2DIM.data = reshape(EEG.data,
size(EEG.data,1),size(EEG.data,3)*size(EEG.data,2));

  opt.EOG = [EEG2DIM.data(1,:);EEG2DIM.data((67:69),:)]; %Fp1(1) plus HEOG1,
HEOG2, & VEOG

  opt.M=3;

  opt.lambda=0.9999;

  opt.sigma=0.01;

  opt.prec=50;

  opt.crittype = 'correlation';

  opt.corthr = 20;

  [EEG1] = regica(EEG2DIM.data((1:64),:),opt);

  [EEG2] = reshape(EEG1, size(EEG1,1), size(EEG.data,2)/size(EEG.data,3),
size(EEG.data,3));
  EEG.data((1:64),:) = EEG2((1:64),:);


Any insight would be really appreciated,


Mahesh





Mahesh M. Casiraghi
PhD candidate - Cognitive Sciences
Roberto Dell'Acqua Lab, University of Padova
Pierre Jolicoeur Lab, Univesité de Montréal
mahesh.casiraghi at umontreal.ca

I have the conviction that when Physiology will be far enough advanced, the
poet, the philosopher, and the physiologist will all understand each other.
Claude Bernard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20110404/d858b10c/attachment.html>


More information about the eeglablist mailing list