InfomaxICA¶
Compute an ICA solution on calibration data and subsequently transform data into component space.
Note that this filter does not update itself incrementally -- once it is calibrated, the solution will remain fixed, and is used to transform both the calibration data, and any subsequent streaming data. The difference between this filter and the ICA method under the Feature Extraction category is that this one accepts a channels by time signal, and outputs a components by time signal, whereas the other method can operate on data of any dimensionality and axes, and outputs a feature axis (which is not as readily usable if you want to chain other nodes from the filters category after it). Also, Infomax ICA is considered a higher-quality approach for EEG and MEG than the FastICA algorithm used in the other node. If this filter is used on streaming data and has not yet been calibrated, then it will first buffer n seconds of calibration data to determine some statistics, before any output is produced. More Info... Version 1.2.0
Ports/Properties¶
data¶
Data to process.
max_iters¶
Number of iterations. This will determine how long it takes for the algorithm to calibrate itself once the calibration data has been collected. Lower values will result in less accurate components being learned.
method¶
Method to use. This can be used to compare performance between the methods.
learning_rate¶
Learning rate. Reduce if the algorithm diverges on your data.
verbosity¶
Verbosity level.
calib_seconds¶
Amount of data, in seconds, to gather for calibration. When this filter is run online and has not yet been calibrated, then it will first buffer this many seconds of data in order to compute its solution before any output is produced. Note that, when you have many channels, this algorithm requires quite a bit of calibration data.
include_chunks¶
Chunks to include along with the filtered data as additional streams. It is recommended to include at least the patterns (weight inverse) matrix, which is necessary for component interpretation and classification. The streams start with the same name prefix as the input data, and end with -ica_{matrix name}, e.g., 'eeg-ica_patterns' if your input stream is named 'eeg'. Note the original channel level input stream (e.g. 'eeg') will be output as the source level IC activations and the space axis that contained the channels will be replaced by a feature axis that contains the component numbers.
use_caching¶
Enable caching. This will significantly speed up re-use of the same data.
order_by_var¶
Reorder components by descending variance of component activations in calibration data.
backend¶
Optional compute backend to use. Keep is the current default, which resolves to that of the template array if one is provided and otherwise numpy unless overridden. Numpy is the standard CPU backend that underpins most of NeuroPype's operations. The others require one or more GPUs to be present on the system, except for torch-cpu. For best performance, keep all arrays that interact with each other (via processing nodes) on the same backend.
precision¶
Numeric precision to use. Keep resolves to the precision of the template array if one is provided, and otherwise to the current default (usually 64-bit). Can be reduced to save memory (e.g. if running on GPU).
num_cores¶
Enforce maximum number of cores to use. If None, this doesn't do anything. If set to -1, this will allow the node to use all cores (including hyperthreads) on the machine. It can be helpful to set this to the number of physical processors on the machine.
random_seed¶
Random seed. Different values may yield slightly different results.
set_breakpoint¶
Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.
metadata¶
User-definable meta-data associated with the node. Usually reserved for technical purposes.