Tuesday, August 5, 2008

Pendelsimulering

Nedan är ett försök att visa vad ett pendelexperiment skulle kunna innebära och visa. Min första tolkning av resultaten är att men ganska små medel kan visa väldigt balla och betydelsefulla saker. Tex att den oregelbundna statistik som är typisk för neurondata går att uppnå ur enkla experiment av regelbundenhet.

Experimentidé
Kärnan i experimentet är en "central neuron" som processar data som kommer in genom från fyra pendlar. Förmodligen genom att linor drar i input till neuronen. Dessa input adderas och neuronen ges enkla egenskaper som membranpotential och "fyrningströskel".

Input
Figur 1 föreställer input till centralneuronen från fyra tänkta pendlar. Pendlarna kan tänkas upphängda på en ratchet så att när värdet är 0 svänger pendeln åt ena hållet. När värdet är 1 svänger den åt andra hållet och drar då samtidigt i centralneuronen. Pendlarna är alltså fyrkantvågor med två karaktäristika: Frekvens och förskjutning. Till detta läggs även inhibition och excitation.

Process av information
Input från de fyra pendlarna läggs ihop kontinuerligt för att bilda en membranpotential. I detta experiment har pendel 1 och 3 tilldelats inhibition och pendel 2 och 4 excitation. Till detta multipliceras en svag halveringsfaktor för att radera centralneuronens långtidsminne. Vid värdet 4 läggs en "fyrningströskel", när den nås registreras en spik och potentialen nollställs.

Till vänster är membranpotential och fyrningsmönster för samma 1000 tidssteg som pendelinput ovan.

Statistik
Detta simulerades för 10 milj tidssteg och från den fyrningsdatan tog jag ut en sannolikhetsfördelning vilken kan ses nedan. Motivationen för detta vara att jämföra med kända karaktäristika från riktig neurondata. Dessa är ofta nära Poissonfördelade. Ett enkelt mått på hur poissonfördelad en fördelning är, ges av "Fanofaktorn" F=v/m. m är fördelningens medelvärde och v dess varians. För en perfekt Poissonfördelning är F=1. I neurondata är F nära 1, men det finns data som tyder på att den inte skall vara exakt 1. F större än 1 tyder på stark gruppering av spikarna medan F mindre än 1 innebär stark periodicitet.



Tolkning och frågor.
Jag har ännu inte kommit så långt att jag beräknat F för mitt experiment. Detta dels pga att jag inte verkar ha samlat nog med data för att få en tydlig fördelning, dels för att jag inte är säker på det bästa sättet att göra det.

Att endast göra det från en lång datasimulering kommer otvivelaktigt at ge data som är väldigt periodisk eftersom jag har helt perfekta pendlar i min simulering. Det är här som jag anser att ett fysiskt experiment skulle vara värdefullt. Dels skulle det kunna ge en påtaglig upplevelse av en neuron alternativt en ickelinjär avbildning som inte skulle kunna fås någon annanstans. Dels är jag säker på att de små statistiska avvikelser som man skulle få i ett mekaniskt experiment skulle ge en spännande jämförelse. Förmodligen ett F som ligger nära 1.

Slutligen vill jag poängtera att jag fick det här beteendet genom endast 4 pendlar. Jag höll det lågt för att slippa utforska parameterrummet för mycket. Ytterligare pendlar skulle kunna ge intressantare resultat. Andra vägar att utforska är naturligtvis interakation med pendlarna så att man förändrar input kontinuerligt.

2 comments:

Svante S said...

För det första: bra insats Gustaf! Sen har jag förstås en del att kommentera:

Lite uppklarning ang Poisson och vänner: Jag tror att du menar att neurondata oftast liknar en poissonprocess, vilket innebär att sannolikheten för avfyrning inom ett litet tidsintervall är konstant över tid. Det som är poissonfördelat i det fallet är antalet spikar inom ett godtyckligt långt tidsintervall. Är det detta vi ser i nedersta plotten? Det är svårt att avgöra, men jag tycker den mer liknar ett interspike interval (ISI) histogram. För en possionprocess skulle denna fördelning vara exponentiellt avtagande, jämför ffg-fördelning. I detta fall har Fanofaktorn ingen vettig tolkning vad jag vet.

Men om man vill beräkna medelvärde och varians från ett histogram är det ganska enkelt (matlab-style, med h som histogram-vektorn och x är de respektive värdena):

mean = sum(x.*h)/sum(h);
var = sum(x.^2.*h)/sum(h) - mean^2;

---------------------

Pendelfysik: även om man använder ratchet för likriktning så är pendelns rotationshastighet som funktion av tid sinusodial, vilket borde reflekteras i neuroninputen. För övrigt är fördelningen av periodtider orealistisk, eftersom en pendels period är proportionell mot sqrt(L), vilket innebär att den längsta pendeln skulle vara typ 200 gånger längre än den kortaste i detta fall. Petitesser måhända, men det vore intressant att se vad man kan få för beteende med realistiska inställningar.

Svante S said...

hm, jag skrev en lång kommentar, men den kom inte upp? Tråkigt. Jag försöker igen...