Hacker News new | ask | show | jobs
by wenc 2162 days ago
There's a ML group at Fermilab just outside Chicago working on ML applications in high energy physics and astrophysics.

https://computing.fnal.gov/machine-learning/

One of the "AI" applications I remember seeing -- potentially applicable outside physics -- involved using CNNs to read a 2D graph (as in graphical plot, not G = (V,E)) in order to visually detect certain patterns/aberration. (probably many physics groups around the world are doing the same)

At first glance this sounds kind of silly and trivial -- one might say, why not just detect those patterns from the data arrays directly? Instead of from a bitmap image of a plot of the data?

Unfortunately some patterns are contextual. A trained human eye can detect them easily, while writing a foolproof mathematical algorithm is difficult: e.g. it has to pick out the pattern, apply a bunch of exclusion rules etc.

(One instance of this, for example, is an old mechanic telling you what's going on under the hood just from listening the vibrations of a car, while a traditional DSP algorithm might not be able to do it as reliably because it hasn't seen all the patterns and contexts in which those sounds arise.)

This is a domain where neural networks/transfer learning really shines. It can capture "intuition" by learning the surrounding context, rather than relying on handcrafted features.

So Fermilab has an AI algorithm that looks at millions of graphs via a CNN, which replicates the work of thousands of human physicists looking for patterns. We've already seen examples of this in radiology.

2 comments

Makes sense. A graph can be represented by a matrix which is what an image is.
Images and matrices are 2D data structures of numbers, but that is where the similarities end. An image is more like a vector, which matrices can be applied to. You would never matrix multiply an image onto another vector. Still, it isn’t uncommon to visualize matrices as images.
Well a matrix is a collection of vectors so... I guess I somewhat agree.. You can certainly apply projections to images, I mean this is what photoshop does.
> Well a matrix is a collection of vectors so

That's like saying "a matrix is a collection of real numbers, so anything you say about one applies to the other".

> You can certainly apply projections to images, I mean this is what photoshop does.

This doesn't seem to refer to anything in the comment you're replying to.

Would you please elaborate on your last point?
In reply to a comment that said nothing about projections, you wrote:

> You can certainly apply projections to images, I mean this is what photoshop does.

What's the relationship of this to anything in the comment you replied to?

Even if you never matrix multiply with an image, it's still useful to have it in matrix form for other things like PCA/SVD.
Typical use on PCA/SVD on image, what you do is treat each image as a vector, create a matrix out of a collection of images, and then do PCA/SVD on the matrix to analyze the distribution of the images, normalize, get the eigen-images (principal components), etc.
Yeah, in retrospect that seems like the way to do it. The toy examples I learned from in college did it on a single image split up by row, but I can’t think of a great use case for that besides some naive compression.
An image "is" not a matrix. Yes, the values of each pixel can be considered an entry of a matrix, but that's where the similarity ends. Unless the graph is very dense, doing convolutions on the image representing the graph is a pretty arbitrary thing to do. Graph CNNs exist and make a lot more sense in general.
I think the terminology may have been confusing here. I meant graphs in the sense of graphical plots, not graph theory graphs.
Ah, my bad.
>using CNNs to read a 2D graph

Why don't they use CNNs on the data series itself?

I believe in effect that is what they do in execution.

The 2D plot is more for training -- a human physicist picks out visual artifacts of interest to bootstrap the training. Humans of course can see blips and weird curves better on a visualization than in a pure data series.

For instance, a human can say if this little tail off a contour bends this way, it's right; if it bends in a different way, it's wrong. Or if an contour is "prickly" or "blobby".

Whether something "looks right" or "wrong" is really hard to mathematically reduce to a parsimonious description, especially when there's variance in the samples -- after all, there could be multiple subtle descriptions of "looks right" or "looks wrong" -- but a CNN is perfect for generalizing based on labeled samples. Similar to a radiologist looking at a scan and toggling isTumor = (True, False).