In Week 6, we focussed on specific methods of spike decoding, spending most of our time on linear decoding methods as spelled out in Kim 2006. We started by discussing the general concept of linear decoding, specifically that the firing rate of each neuron (at a specific time lag) is linearly related to the kinematic parameter of interest. Mathematically speaking we might say:
x(t) = Sum{wij * nij(t)}
where x(t) is the kinematic parameter being predicted and nij(t) is the number of times neuron "i" fired at the "j"th time-lag. The "wij" terms are the linear coefficients; these weights can be any real number, positive or negative. In reality, no known neuron actually fires linearly with respect to a kinematic parameter, but if we include enough lags and enough neurons in the model, we should be able to approximate reasonable kinematic behavior.
The trouble becomes finding acceptable combinations of weights, "wij". If our experiment includes 300 neurons at ten lags each, then there are 3000 weights altogether that must be approximated. This problem is poorly formed numerically and lends itself to non-singular matrices and non-optimal solutions.
The Kim paper essentially discusses methods of solving for the filter weights. The most basic is the optimal Wiener filter, and its closely related cousin the normalized least mean squares filter (which converges to the Wiener solution, at least in theory). The Kim paper also discussed the Kalman filter (which models both filter weights and their uncertainty), as well as the gamma filter (which condenses the neural signal in time) and the principal component filter (which condenses the neural signal in channel-space, with respect to maximal variance).
We also looked at some Matlab code I wrote that duplicated much of the math in the paper. One lesson that we observed off the bat is that the models all work reasonably well provided that the kinematic parameter always stays in the same range of values used during the training phase.
We also set out to look at Li 2009, which uses a modified unscented kalman filter to track neurons. Their UKF system uses a non-linear (quadratic) neural firing model and also takes temporal correlations into account. Unfortunately, we didn't get to spend as much time on this paper as I would have hoped, but at least everyone read it ;)
I didn't get as far as I would have liked with my neural decoding simulator - I would still like to code up the gamma filter and the extended kalman filter, but those will have to wait for a rainy day.
No comments:
Post a Comment