Sign in to follow this  
kirkd

Matrix operation for multiple matrices

Recommended Posts

Suppose I have an object that I can represent by a symmetric square matrix. By doing standard matrix operations I can get different representations for that object, e.g., the largest eigenvalue, sum of row entries, determinant, minimum eigenvalue of the inverse, etc. All of this has been useful in a pattern recognition or prediction and I've used it quite extensively in my domain. Now suppose for each object I can actually represent the object by multiple different but fully valid matrices. Is there a collection of matrix operations that I can apply to a set of matrices for the same object? I've Google-d and not found anything as yet. -Kirk

Share this post


Link to post
Share on other sites
Quote:
Original post by kirkd
Suppose I have an object that I can represent by a symmetric square matrix. By doing standard matrix operations I can get different representations for that object, e.g., the largest eigenvalue, sum of row entries, determinant, minimum eigenvalue of the inverse, etc. All of this has been useful in a pattern recognition or prediction and I've used it quite extensively in my domain.

Now suppose for each object I can actually represent the object by multiple different but fully valid matrices. Is there a collection of matrix operations that I can apply to a set of matrices for the same object? I've Google-d and not found anything as yet.

-Kirk

Hmm.

I take it as you essentially just compute some whatever values to feed into the pattern recognition algorithm, and you don't care about meaning of, or, rather, lack of any meaning. And that the matrices you get to begin with dont have much meaning (e.g. arent rotation matrices, or inertia tensors, or something like that, but rather more like, lol, face bitmap images as matrices, or something similarly unrelated to linear transformations)

If thats the case...
'Standard mathematical operations' are those that give mathematically meaningful, useful result for something in some usage case, and therefore are used commonly enough to get a name. As far as getting "whatever values" to feed into pattern recognition (especially starting with some data that doesn't have physical meaning as a matrix to begin with), theres nothing special about 'standard operations'.
You really can do literally anything. E.g. multiply all the matrices together. Add them together. Multiply-add them. m1+m2*(m3+m4*(m5+m6*...)). You can do any sort of weird stuff with 'standard' functions of one matrix, like f(m1*f(m2*f(m3)))
(you can do that in arbitrary order, or in all possible orders.) Or you can "concatenate" matrices together, making bigger matrix and do stuff on it. Make a matrix of matrices (where each element is a matrix).
You even could make a code that takes a seed and computes random-ish formula using set of basic operations, then run some algorithm to select seeds that give result good for pattern recognition.

Share this post


Link to post
Share on other sites
Interesting response. Let me clarify a bit.

Each matrix is indeed meaningful as it represents some fundamental details of each object, and no the matrices are not transformation matrices or some such. Each matrix is a representation of the exact state of the object itself at a particular point in time. At a different point in time, the representation will change slightly and so the matrix will change slightly. As a result, any particular object can have multiple matrices that represent it at different points in time. Also note that the time dimension isn't meaningful. In other words, the path of the matrix through time isn't important for this problem.

Think of it this way. Suppose I have a graph. I can represent the graph by a connectivity matrix where each entry is the weight of the connection between any two nodes. For n nodes, I get an nXn matrix. If the graph never changes, I can compute some details using the connectivity matrix and for two identically connected matrices, those value will be the same. Same eigenvalues, same ranks, etc.

Now suppose I look at that exact same system at a later time and it has changed slightly. Now I have a slightly different connectivity matrix. Again, at a different time it may have changed slightly again. If I look at it 100 times, I may get 100 slightly different connectivity matrices. Suppose I have a second graph that exhibits the same types of properties - slight changes over time, etc.

The pattern recognition question comes in where I have a collection of graphs with different properties - lets keep it binary for simplicity. Using matrix computations to represent each matrix I can feed these into any type of learning algorithm and get a model which may be able to predict the properties of a new graph. This is fine as long as the graphs never change, but in the scenario I depicted where each graph can change slightly, the actual computed values will also change (presumably slightly) and introduce noise into the system. If I could take all the matrices for Graph G and compute a single or small set of values to represent Graph G, it may provide a more reasonable model.

But, I still don't have any set of operations that can be performed on a set of matrices as opposed to a single matrix. The "do anything" suggestion is encouraging and it may come down to a matter of coming up with some ideas and find what works.

Share this post


Link to post
Share on other sites
Well the thing is... Those face matrices are also "meaningful" in a sense that them represent face; however bitmap image has nothing to do with linear transformation matrix, and its not quite meaningful matrix.

Connectivity matrix for a graph is indeed more meaningful than face matrix, and even has meaningful multiplication by a vector (a connectivity between a list of nodes and another list of nodes).

Lets think what kind of operations could be useful (and what would just give you some nonsense that not even learning algorithm can make sense of) for the example scenario that you gave
Theres one obvious property i can think of. If you have some
M(1),M(2),M(3) ... M(n)
and you have M(n+1) which differs a little from M(n) , you probably don't want all those values to be entirely different for n+1 matrices than for n matrices, right? Say, sum has this property, product generally not.

Regarding search. Imagine someone looking for "operations on multiple numbers" without actually having anything specific in mind. Sure theres product and sum and infinitely many kinds of series where those numbers can be plugged.

Share this post


Link to post
Share on other sites
If I understand correctly, you have a collection of matrices that are slightly different, and you want to find a single matrix that somehow represents all of them in an aggregate sense. Is this what you are trying to do?

If that's the case, here are a few ideas:
1)
If you unwrap the n-x-n matrices into vectors of length n^2, then the collection of slightly different matrices can be thought of as a cloud of points in n^2 dimensional space. Since the matrices are nearly the same, the cloud of points will be bunched up close together. Then you can find another point in n^2 dimensional space at the "center" of the "cloud of points". For example, you might choose the point that is closest to all the others in the least squares sense (or any sense you like). This point also represents a n-x-n matrix which might be a useful as an "aggregate" of all the other matrices. Is this the sort of thing you are talking about?

1)*
There is also a more sophisticated way of doing something similar that doesn't kill the structure of the matrix by unwrapping it, but this it involves treating the matrices as objects called "tensors", and involves more math background.

2)
Another idea might be to diagonalize all the matrices, and then average the eigenvectors and eigenvalues across the set of all like matrices.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this