Functional Connectivity (Neural Network Method): Difference between revisions

From CCN Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:


== Preparing Data ==
== Preparing Data ==
Node activations in a neural network fall within a range of 0 (off) to 1 (on). They can take on intermediate values (and mathematically, 0 and 1 are the theoretical limits that the activation values never actually reach), but generally speaking, values close to these limits are easy to work with and understand; anything in between is a complication. Consequently, you are going to need to transform your fMRI data into values between 0 and 1. A function, <code>binarizeMatrix</code> can be found in the ubfs Scripts/Matlab/ folder. This function takes as a parameter the normalized matrix or cell array, '''''Z'''''. '''''Z''''' will likely be the product of running <code>normalizeMatrix()</code> on one or more time series that were obtained by a call to <code>loadFSTS()</code>. The function <code>binarizeMatrix<code> takes one mandatory parameter, '''''Z''''', and two optional parameters, ''thresh'', and ''clip'':
Node activations in a neural network fall within a range of 0 (off) to 1 (on). They can take on intermediate values (and mathematically, 0 and 1 are the theoretical limits that the activation values never actually reach), but generally speaking, values close to these limits are easy to work with and understand; anything in between is a complication. Consequently, you are going to need to transform your fMRI data into values between 0 and 1. A function, <code>binarizeMatrix</code> can be found in the ubfs Scripts/Matlab/ folder. This function takes as a parameter the normalized matrix or cell array, '''''Z'''''. '''''Z''''' will likely be the product of running <code>normalizeMatrix()</code> on one or more time series that were obtained by a call to <code>loadFSTS()</code>. The function <code>binarizeMatrix</code> takes one mandatory parameter, '''''Z''''', and two optional parameters, ''thresh'', and ''clip'':
  %I have generally found fMRI activations to be typically normally-distributed
  %I have generally found fMRI activations to be typically normally-distributed
  thresh=1.286; %corresponds to a Z-score at the 90th percentile
  thresh=1.286; %corresponds to a Z-score at the 90th percentile

Revision as of 20:32, 29 June 2016

Some classes of neural networks are well-suited for analyzing functional connectivity because they are sensitive to patterns of co-occurrences within the input data. If the data are composed of fMRI activations across a brain regions, then weights within the network that encodes these activations will encode the regularity with which regions coactivate. In McNorgan & Joanisse (2014), I demonstrated that a neural network can arrive at a similar functional connectivity solution to the conventional cross-correlational approach.

Preparing Data

Node activations in a neural network fall within a range of 0 (off) to 1 (on). They can take on intermediate values (and mathematically, 0 and 1 are the theoretical limits that the activation values never actually reach), but generally speaking, values close to these limits are easy to work with and understand; anything in between is a complication. Consequently, you are going to need to transform your fMRI data into values between 0 and 1. A function, binarizeMatrix can be found in the ubfs Scripts/Matlab/ folder. This function takes as a parameter the normalized matrix or cell array, Z. Z will likely be the product of running normalizeMatrix() on one or more time series that were obtained by a call to loadFSTS(). The function binarizeMatrix takes one mandatory parameter, Z, and two optional parameters, thresh, and clip:

%I have generally found fMRI activations to be typically normally-distributed
thresh=1.286; %corresponds to a Z-score at the 90th percentile
clip=3; %values above/below ±3 are outliers to be clipped (set to NaN)
[BIN, SCALED]=binarizeMatrix(Z, thresh, clip);

The output matrix, BIN, is a binarized transformation of Z, where all values above/below ±thresh are set to 1 and 0, respectively, and other values are set to NaN. The matrix SCALED is a non-binary transformation where the intermediate values are set to decimal values between 1 and 0, and where the mean of the time series for each region is 0.5. When training networks, target activations must be either 1 or 0, and so the BIN matrix is appropriate for training the network on target region activations when using supervised learning. Input values may take on intermediate values, and so the SCALED matrix might be appropriate to generate input patterns.