# Can CNN be used for "unknown correlated" data?

Now the title may be misleading, but I don't know how to give it a better name.

My question is if I have data in a 2d matrix and under the assumption that:

-I know for sure that there are correlations between some of the rows and columns, but I am not sure which rows are correlated to each other so I can't pre-order it in a way that the correlated rows and columns are closer to each other.

For example, if I have 100x50 matrix: row_1 .... row_100, if row_1 is correlated to row_100 then my CNN won't capture that for sure but nevertheless, a correlation is present in the matrix.

Is there a way to capture this by CNN?

My idea is to, for eg., create new data by randomly shuffle the rows to:

1- Increase the number of data instances to the CNN (in a way its similar to increasing the image training data by randomly tilting some images).

2- This will increase the chance that the correlated rows will appear closer to each other in few of the newly created instances of data, so it can be captured by the CNN.

• I think a large enough CNN might figure out some correlation, but the point of the CNN is that it can find correlations within the kernel window and use information gleaned from that in a single layer - without an $n^2$ fully connected layer. In your case a CNN will not really have much advantage over a regular NN, AFAICT. Incidentally, part of the motivation for this question: Reconstructing a screen of permuted pixels I asked was due to what you are asking but with an even worse mixup. Oct 29 '17 at 5:44