Friday, April 5, 2013

Cell identification is a sub-problem of vision

The computational challenge of this project is that in many ways identifying cells is a vision/pattern recognition problem. Essentially the visual system is collecting information about the world, creating categorical features from that information, and then using low-level categorizations to make features for the next level up. Its obviously doing a lot more than just these things, but at a basic level this is what powers the visual system.

The most basic features are something like edges/gabor filters. These features can be recreated from algorithms such as ICA, or sparse coding of the visual world. The visual system balances a representation that is complete (or even over-complete) with a representation that is efficient. The representation must be complete (especially at the lower levels), because it isn't like you could be shown something and not see it. Somehow the information is being represented no matter what is being shown, which implies that all information has a representation of some sorts. Efficiency is related to the dimensionality of the representation, and in of itself has important computational properties. An efficient representation transmits only the needed information to understand what is happening. If one could build a model that has a low-dimensional parameter space, then one could only need to transmit the low-dimensional information of those parameters. This would be highly efficient.

What's remarkable is that the visual system is likely able to make these dimensionality trade-offs. When a stimulus that is familiar and has a well-developed low-dimensional parameter space, it is likely only activating a few neurons (but perhaps very strongly). Each of the neurons is acting as a vector in some high-dimensional space, and when only a few need to be activated, then only a low-dimensional subspace is being used for representation. When a strange stimulus, or one that has no low-dimensional description (i.e. white noise), appears then the visual system uses more neurons to represent all the information. It has to since it has to be complete. The learning in the brain is essentially trying to take the high-dimensional representations of unlearned stimuli and find a low-dimensional "model" that also represent the information.

My project is in a way doing a simple vision task. We're skipping some of the stages by developing useful features manually, and then building a good, high-dimensional representation of the properties of the cells. The idea I'm trying to build for the identification of cells is just one stage of the visual algorithm. The challenge is to take the feature space and then start to make classifications on the data. The hierarchy is important, because it allows you to simultaneously represent the data at different levels. An individual cell, say the N cell, as a representation would be at the top. Then perhaps all of the N cells at the next level, then the T and N cells and maybe the AP. Then eventually you get all the way down to just all cells at the bottom. With the hierarchical design, you automatically categorize the individuality of each cell as well as put all of the cells into clusters and describe the build-up of the features. A person is the combination of hands, arms, face, legs, body etc, a face is a combination of a head, eyes, nose, a mouth, an eye is a black circle surrounded by a colored circle surrounded by white. All of these are all together represented simultaneously in the brain. This builds a oneness by a hierarchical representation, which enables the gestalt along with the specific together. I somehow want to capture this in the classification of cells.

What's useful is that the visual system reorganizes its features (or the low-dimensional representation of the categories at each hierarchical level), based on the features that are somehow more informative. And it can alter those features based on how well they classify. I will be starting with some high-dimensional feature space (it won't even really be that high). The first stage will be some sort of dimensionality reduction that creates an efficient feature space -- this will be important because I can plug in similar features that are just slightly different transforms. So I can use absolute positions, position relative to packet, reflected position, which would be a 6-dimensional feature space (3x2 for x and y), but these are not orthogonal dimensions and will be somewhat redundant, but will together in total contain more information than just the individual feature. A low-dimensional projection of this feature space will remove the redundancy of the features and emphasize the useful information from these slightly different representations. So a truly two-dimensional feature (x,y position) is build from an inefficient 6-dimensional representation that relates the information in different ways, which is then reduced to a lower-dimensional space that is more useful for classification. The final space will be more than just two dimensions, but probably only 3 or 4 would be enough to almost fully capture the different information of the position feature.

It would be cool to just use like anatomical features as a starting point to somehow classify all of the cells. Then just from position and size information, you could find some hierarchical clusters that tries to classify the cells from just anatomy. This would take you a long way to classing all of the cells, but probably couldn't fully classify them all. One class would be like the sensory cells in the lateral packets, another would be the small cells around them, another would be the medium cells an the anterior lateral, etc etc. You probably wouldn't have enough information to fully pull out the N cells from the T cells with just anatomy alone, but just this clustering would be very useful. Once we have the functional data, it would be cool to try and cluster without any of the anatomy, and see if cells fall into functional clusters. All of the functional dimensions could also have these high-dimensional, but reduntant representations to keep as much information as possible -- i.e. the swim oscillators can have 2 dimensions representing the swim relative to DP, relative to other oscillators (i.e. 153), etc.

No comments:

Post a Comment