Functional Connectivity (Neural Network Method): Difference between revisions
No edit summary |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
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 [http://online.liebertpub.com/doi/pdf/10.1089/brain.2013.0174 McNorgan & Joanisse (2014)], we demonstrated that | 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 [http://online.liebertpub.com/doi/pdf/10.1089/brain.2013.0174 McNorgan & Joanisse (2014)], we demonstrated that an autoencoder neural network can arrive at a similar functional connectivity solution to the conventional cross-correlational approach. | ||
== 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. | thresh=1.28; %corresponds to a Z-score at the 90th percentile | ||
clip=3; %values above/below ±3 are outliers to be clipped (set to NaN) | clip=3; %values above/below ±3 are outliers to be clipped (set to NaN) | ||
[BIN, SCALED]=binarizeMatrix(Z, thresh, clip); | [BIN, SCALED]=binarizeMatrix(Z, thresh, clip); | ||
If not set, ''thresh'' defaults to 1.0, and ''clip'' defaults to ∞ (i.e. no values are clipped). Other reasonable values for ''thresh'' include 0 (or, technically, <code>realmin</code>, so we don't have a div/0 error), which binarizes the values into above vs. below average, or critical Z score values | If not set, ''thresh'' defaults to 1.0, and ''clip'' defaults to ∞ (i.e. no values are clipped). Other reasonable values for ''thresh'' include 0 (or, technically, <code>realmin</code>, so we don't have a div/0 error), which binarizes the values into above vs. below average, or critical Z score values. 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 using supervised learning, target activations must be either 1 or 0, and so the '''''BIN''''' matrix is appropriate for training the network on target region activations. Input values, however, may take on intermediate values, and so the '''''SCALED''''' matrix might be appropriate to generate input patterns. | ||
Critical Z-score values: | |||
*0.842 (p=0.2) | |||
*1.282 (p=0.1) | |||
*1.644 (p=0.05) | |||
*2.054 (p=0.02) | |||
*2.326 (p=0.01) | |||
== Other Stuff == | == Other Stuff == | ||
Line 15: | Line 22: | ||
[[Category: Neural Networks]] | [[Category: Neural Networks]] | ||
[[Category: Network Analyses]] | [[Category: Network Analyses]] | ||
[[Category: Functional Connectivity]] |
Latest revision as of 14:22, 12 June 2019
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), we demonstrated that an autoencoder 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.28; %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);
If not set, thresh defaults to 1.0, and clip defaults to ∞ (i.e. no values are clipped). Other reasonable values for thresh include 0 (or, technically, realmin
, so we don't have a div/0 error), which binarizes the values into above vs. below average, or critical Z score values. 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 using supervised learning, target activations must be either 1 or 0, and so the BIN matrix is appropriate for training the network on target region activations. Input values, however, may take on intermediate values, and so the SCALED matrix might be appropriate to generate input patterns.
Critical Z-score values:
- 0.842 (p=0.2)
- 1.282 (p=0.1)
- 1.644 (p=0.05)
- 2.054 (p=0.02)
- 2.326 (p=0.01)
Other Stuff
Shazam!