[Eeglablist] AMICA lrate gets stuck
japalmer29 at gmail.com
Mon Aug 17 16:06:57 PDT 2015
The Amica lrate is not supposed to decrease. The algorithm is a more typical gradient descent / Newton optimization algorithm, as opposed to the Infomax implementation in runica.m, which uses a type of simulated annealing, deciding whether to reduce the learning rate based on the angle between recent update directions. The idea there is that this angle will be small when the algorithm is near an optimum, as though it is “heading right for it”, so the lrate gets reduced if the algorithm is moving “erratically” with a large angle between consecutive directions, and doesn’t get reduced if the estimate is “moving smoothly”. In practice, this annealing method usually ends up in fact reducing the learning rate continuously until it reaches the preset minimum, which usually happens at around 500 iterations (500 reductions). I.e. the angle is never actually small, so the stopping condition is essentially a maximum number of iterations, with the updates being of smaller and smaller magnitude due to the lrate decreasing.
Amica only reduces the lrate if the likelihood decreases. In theory, with a reasonable optimum, an optimization algorithm should be able to converge without reducing the learning rate. The convergence is measured by the weight change (the nd in the amica output) independently of the lrate. That is, the weight change should theoretically decrease to zero with a constant (sufficiently small) lrate—the higher the better since higher lrate means faster convergence. A potential issue with the runica Infomax is early convergence if you are starting far from the optimum. Fortunately the optimum is usually not far from the “sphering” starting point, so 500 iterations is usually enough to converge (even with decreasing lrate).
So in Amica, the convergence is judged by the “nd”, not the lrate. The lrate should be ideally be 0.5 or 1.0, and the LL should be increasing, and the nd should be decreasing to zero.
Hope that is helpful.
From: Kevin Tan [mailto:kevintan at cmu.edu]
Sent: Monday, August 17, 2015 2:31 PM
To: jason at sccn.ucsd.edu; EEGLAB List
Subject: AMICA lrate gets stuck
Hi Dr. Palmer & EEGLAB list,
I'm trying out AMICA for artifact rejection and DIPFIT. In my tests, the lrate consistently gets stuck at 0.5, stopping only due to max iteration limit. This does not happen with extended Infomax.
This happens whether I use the cluster (128 threads) or a normal PC (4 threads). I run AMICA 'locally' as it's called within a matlab script already run via PBS, not sure if that makes a difference.
Here's the AMICA test stream:
- PREP pipeline
- Remove PREP-interpolated channels
- Remove 1 additional channel for rank consistency
- 1hz FIR hi-pass
- Epoch -500 to 1000ms no baseline correction
- Epoch rejection
- AMICA (using EEG(:,:) -- is it ok to concatenate epochs like this?)
Here's the output log (using the cluster):
Kevin Alastair M. Tan
Lab Manager/Research Assistant
Department of Psychology & Center for the Neural Basis of Cognition
Carnegie Mellon University
Baker Hall 434 <https://www.google.com/maps/place/40%C2%B026%2729.5%22N+79%C2%B056%2744.0%22Wemail@example.com,-79.9455701,61m/data=!3m1!1e3!4m2!3m1!1s0x0:0x0> | kevintan at cmu.edu | tarrlab.org/kevintan <http://tarrlabwiki.cnbc.cmu.edu/index.php/KevinTan>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the eeglablist