The UnitActRFStat computes an effective receptive field for units based on their activation values when inputs are presented. The idea is to present a wide range of inputs to the network while performing a weighted average over these input patterns as a function of the unit's activation for each. When you do this averaging, all the things that the unit does not care about wash out, leaving an image of those things that reliably activate the unit. Assuming that the inputs span a large enough space and provide for sufficient averaging, the resulting receptive field can be much more informative than just looking at the weights, since it takes into account any network dynamics, etc., and can be computed on units any number of layers removed from the inputs. Finally, the "input" that you average over need not literally be the input layer to the network -- it could be the output, or an intermediate hidden layer (or all of these at once).
This stat requires a stable database for accumulating the averaged
receptive fields -- an Environment is used for this purpose. Note
that you have to do an InitRFVals
in order to initialize this
environment before you start collecting the stats.
This stat has the following parameters:
layer
rf_layers
data_env