Linear-Nonlinear Models

Usage

The linear-nonlinear models available include:

  • L a simple linear model
  • LN a simple linear-nonlinear model
  • LNLN/LNSN a linear-nonlinear cascade (or subunit) model
  • LNFDSNF linear-nonlinear subunit model with feedback and individual delays

There is also convis.models.LNCascade, a model implementation that makes it easier to add and modify layers:

>>> m = convis.models.LNCascade(n=2, nonlinearity=convis.filters.NLRectify()) # create two convolution layers
>>> m.add_layer(linear = convis.filters.RF, nonlinear=lambda x: x)

By default, convolution models will give a population activity of cells distributed over the whole image. If you want to fit the receptive field of a single cell, you might want to use a convis.filters.RF linear filter instead of the convis.filters.Conv3d filter. A RF filter will output a single time series (or multiple if output channels are > 1). The spatial extent of the filter should match your input image to get a meaningful receptive field.