The notorious cult of ‘al gebra’ is a fearsome cult indeed. Says Attorney General John Ashcroft, “The desire average solutions by means and extremes, and sometimes go off on a tangent in a search of absolute value.” The fact that I understand it and find it funny is a true testament to my geek credentials.


Something is wrong with Wired’s China statistics. They say that China sells 15.6 trillion books per year. In a country of 1.3 billion, that’s about 14,000 books per person. Spread over the world population, that’s almost 3,000 books per person. Somehow I doubt that China really does sell 15.6 trillion books per year.

Pattern Recognition

(Warning: This entry has absolutely nothing to do with massively multiuser online entertainment, if that’s what you’re here for)

In my research project at the moment, I’m using a nifty little program to aid my pattern recognition.

A major part of my project involves me taking recordings of a signal (in this case, electrochemical spikes from a neuron) and discriminating them from the noise inherent in the system. Sometimes the noise is loud, and sometimes there is more than one signal (i.e. multiple neurones). In a recent case, I had eight different signals and a significant amount of noise.

Now, the way most people would go about discriminating the signal from the case I described is through hardware; they’d hook their recording apparatus up to a black box, and they would set a value X on that black box. Anything in their recording that went above value X would be recorded (on a separate channel) as a spike. Now, this seems reasonable enough since spikes are just that – they are spikes in voltage, and if you have a good recording with only one signal and little noise, you can be 100% confident in getting all of the spikes and no false positives.

But if you have lots of noise, and the signal is weak, you will have to set value X such that you may miss some of the spikes and get some false positives (because the spikes are only a bit above the level of the noise). Maybe you might not care about this if you’re just doing a simple analysis of the spike rate, but I’m not – I’m doing something a bit more complicated that involves information theory and it really is important for me to try and get all the spikes and no noise. Thus, a simple hardware discrimation of the spikes just ain’t good enough*.

(*Hardware discrimination can actually be a bit more complicated than this, but essentially it all boils down to seeing if the voltage goes above X and/or below Y or Z or whatever)

So what you really have to do is to look at the shape of a spike. A neural spike is quite distinctive – it generally has a slight bump, then a sharp peak, then a little trough. In other words, it doesn’t look like random noise. This means that you can do some software analysis of the shape.

The more computer-savvy of you readers are probably thinking – aha, no problem, we’ll just get some spike recognition neural network kerjigger in, and then that’s it. Well, you know, it’s not as easy as that, because spike shape can change over time and sometimes noise looks like a spike, and vice versa. It turns out that the best way to check whether a spike is really a spike is by looking at it – after all, the human brain is a pretty powerful neural net. Unfortunately, if you’re looking at a spike train with 50,000 spikes, this isn’t really feasible.

So a guy in my lab has made a nifty piece of software that will analyse each of the putative spikes in a recording (putative because they pass a trigger level – just like how a hardware discriminator works). Using a mathematical method of your choice (FFT, PCA, wavelet, cursor values, etc) it will assign a numerical value to each spike. You can then plot these values against each other to get a 2D scattergram. You do this three times, and hopefully you get three scattergrams that graphically isolate your chosen signal from the noise (or from other signals) on the basis of the analysis method you chose.

Next, you go and mark out which spikes you want (each spike is represented by a scatter point) by drawing ellipses, and finally you use Boolean algebra to say, ‘OK, I want all the points I circled in plot A, but not those that are shared with plot B or plot C’. At any point, you can check out what a particular spike or group of spikes looks like on a graph. And then you can export your freshly discriminated spikes.

It works surprisingly well, and I think this is because it is a marriage of the supreme pattern recognition abilities of humans with the brute force processing power of computers. I’m fairly sure it’s one of the best methods in current use for discriminating spikes from a recording, and it’s a shame that people don’t think that this is a worthwhile thing to do (but that’s a story for another time).

Hold on, though: this wouldn’t be a proper post if it didn’t have any wild speculation. So, humans are good at pattern recognition in general. But we’re incredibly, uncannily good at facial recognition. We can distinguish two near identical faces and recognise someone we’ve only seen for a second out of thousands of faces. Pretty damn good.

It turns out that facial recognition and plain old pattern/object recognition are governed by different systems in the brain; we know this because there is something called a double dissocation between them. In other words, there are people who, for some reason, cannot recognise faces but can recognise objects fine, and vice versa. This strongly suggests that they run on different systems.

So how about we leverage our skills at facial recognition by converting other forms of information (say, spike trains, weather patterns, stockmarket data) into facial features? How might that work, eh? It could allow us to sense subtle differences in information and aid our recognition by no end.

Of course, I have no real idea whether this would work, or exactly how to do it – maybe you can take a recording of data (or real time data, I don’t know) and use different methods to analyse it and use the output values to describe different facial parameters. Hmm…


(Warning: Ramble ahead)

Earlier today, I was listening to a guy describe a project I might do next year for neurobiology, trying to figure out some of the characteristics of Golgi neurones in the cerebellum. The way you can identify these neurones, other than looking at them under a microscope, is to insert a super-thin electrode into them and look at their electrical activity. We’ve all seen what heartbeat readouts look like on TV, like a sharp spike. Well, the electrical output from neurones tends to look like that as well. Different types of neurones exhibit different and unique spike properties, such as spike magnitude, length, and interspike intervals.

So you can identify Golgi neurones by looking at their electrical readouts. This can take a bit of time, having to look back and forth all the time. What many researchers do is to hook up the output signal from the electrode to a loudspeaker, so each spike makes a click. I’m told that in time you can become extremely proficient at identifying different types of neurones very quickly by simply listening to their activity.

This kind of process is of course pattern recognition, and it struck me how skilled humans were at doing this and recognising and distinguishing new types of patterns. To do a similar thing on a computer right now would require a fair bit of coding – it wouldn’t be impossible by any means, and it might not be that difficult. But it would probably take longer than learning it yourself. That’s not to say that doing it on a computer is a waste of time, clearly if you want to automate the neurone-finding procedure and link the electrode position controls to the computer it’s worth it.

Even a computer wouldn’t be able to identify the type of a neurone with perfect accuracy though – neurones aren’t perfect things. It could give you probabilities though. And this set me onto a completely different train of thought. Usually probabilities of events or identification are shown in a numerical or percentage quantity, e.g. it’s 80% likely that it will rain tomorrow. Unfortunately, it seems that humans aren’t all too good at assessing probabilities – for example, it’s been shown that we ignore Bayes theorem while calculation probabilities ourselves.

We don’t say to each other, I think there’s an 80% probability of it raining tomorrow. We say, it’s a fairly good chance that it’ll rain tomorrow. And I think that people would respond to this type of framing probabilities better than numerical ways, in various circumstances. It just makes it more familiar.

And then I realised that we aren’t too hot on judging probabilities that way either, since according to human signal detection theories we can alter our criterion for the probability of events depending on, basically, how we’re feeling. And then I started writing this, and unfortunately I don’t have anything more to say at the moment.