added generalized Cython tridiagonal solver (needed for case where there are overlapping spatial filters)
function for creating fake movies w. Gaussian spatial filters + offset background
I think that _estimate_MAP_spikes() basically works with the fake data, but there are still some issues with scaling the inputs and outputs. Currently breaks if there is any appreciable noise.
fuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuck
confirmed gradient & Hessian calcs are correct wrt matrix version, similar to paper (?)
fixed a bug: use '-d' instead of 'd' when computing 'hit'. seems to now work when estimating masks on fake data
Learning seems to work fairly well for all params with the exception of sigma (diverges very early)
still not working when sigma >= 1E-6
implemented sigma correction factor, still broken
changed the way the fake data is generated (use scipy.signal.lfilter instead of manually constructing kernel and convolving it with spikes using scipy.ndimage.convolve1d). seems more correct (C starts at zero). also make_fake_data() now returns theta as well for consistency
tried dotting alpha with F, alpha.C and beta before computing the residual. seems wrong (fails to converge before z->0)
went back to old method for computing residual, added a new stopping criterion, tweaks to param updates, LL estimate. now seems to learn parameters reasonably well, scaling of n_hat still seems to be off
broken again
fixed a bug where the noise added to the movie pixels was identical rather than uncorrelated! also some refactoring
much cruder initialization of C0, but guarantees that n >=0. pre-subtracting the baseline from F speeds up computing D
improved initialization of n0 with a hack that is unlikely to be robust - n0 needs to be scaled according to noise levels
minor tweaks to termination conditions
smiley mask!
added some code for making fancy plots
trivial