A perceptron for finding a hyper-exponential distribution.
Recently I have been looking at some data, jitter data for spike trains, which may have a hyper-exponential distribution:
The idea is that there is a probability of event type which is in turn exponentially distributed with rate . The s sum to one. It is hard, even with a ton of data, to fit the parameters, I thought I might try using a perceptron as a way to do this. I started by changing the sum to an integral so
which looks a lot like a Laplace transform, though it is hard to know what to do with that. Now, this means
I imagine a situation where is compactly supported and can be sensibly discretized . Thinking of the stuff in square brackets as input at the input nodes and the corresponding as weights, the predicted is the output. The corresponding data values were found by interpolation with the th and th points and
was calculated. The error is now
with the number of points. The learning rule is applied
Evolve until happy.
It didn't work really, starting with some known $f(s)$ it evolves until the error is small and the predicted $p(t)$ looks a lot like the real one, but $f(s)$ doesn't look much like the input. The lesson seems to be that there are lots of ways to produce more-or-less the same distribution.
The code is at