Fast population coding (Huys et al. 2007)

 Download zip file 
Help downloading and running models
Accession:93394
"Uncertainty coming from the noise in its neurons and the ill-posed nature of many tasks plagues neural computations. Maybe surprisingly, many studies show that the brain manipulates these forms of uncertainty in a probabilistically consistent and normative manner, and there is now a rich theoretical literature on the capabilities of populations of neurons to implement computations in the face of uncertainty. However, one major facet of uncertainty has received comparatively little attention: time. In a dynamic, rapidly changing world, data are only temporarily relevant. Here, we analyze the computational consequences of encoding stimulus trajectories in populations of neurons. ..."
Reference:
1 . Huys QJ, Zemel RS, Natarajan R, Dayan P (2007) Fast population coding. Neural Comput 19:404-41 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Connectionist Network;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Methods;
Implementer(s):
% GETSPK.M
%
% This code is released in conjunction with the paper 
%
%	Huys QJM, Zemel RS, Natarajan R and Dayan P (2006): Fast population
%	coding Neural Computation
%	
% and can be downloaded from 
%
%	http://www.gatsby.ucl.ac.uk/~qhuys/code.html
% 
% This script is called by MAIN.M and produces the mean rate for each Poisson
% neurone, which is then used to produce spikes. If less than 2 spikes are
% generated, a new stimulus is drawn. 
%
% Copyright Quentin Huys 2006


meanrate = exp(-.5*(repmat(stim(infsample,:),n,1)-repmat(nrnpos',1,T)).^2/sigma^2);
meanrate = maxrate*delta/(n*sqrt(2*pi*sigma^2))*meanrate;

spikes = meanrate>rand(n,T);

while sum(sum(spikes))<=2
	stim(infsample,:) = mvnrnd(zeros(T,1),Cstim,infsamples);
	meanrate = exp(-.5*(repmat(stim(infsample,:),n,1)-repmat(nrnpos',1,T)).^2/sigma^2);
	meanrate = maxrate*delta/(n*sqrt(2*pi*sigma^2))*meanrate;
	spikes = meanrate>rand(n,T);
end

[sid,st] = find(spikes==1);
spiketime = timevec(st);
spikeid = nrnpos(sid);

Tsp = sum(sum(spikes));