Wednesday, December 17, 2008

Write or Die


Sometimes you have something that you must write, but just don't want to write. My final report for clinical preceptorship class was an example. My morale was so low that I had to drink a fake coffee (99% decaf) and use write or die, an excellent tool to force yourself to write. After I got my abstract written, now I feel like finishing this off ASAP.

Tuesday, November 25, 2008

Amazon.com Visa card

Amazon offered me a invitation only offer of $50 off, so I took the bait. The card has no annual fees, 3% back on most purchases on amazon.com. APR is high, but I have never used my credit card more than the money I have, it should not be a problem. :D

Monday, November 17, 2008

Donation to Wikimedia


Wikipedia Affiliate Button
I just donated $30. You should donate, too. For collective knowledge!

Monday, November 10, 2008

Science and Wiki

While cleaning up the reading pile, a nature article about wiki caught my eye. It introduced me the WikiPathways, a pathway database built upon web collaboration. Several years ago, when I was working on signaling pathways and protein interactions, good databases were curated and maintained by specific group of people (lots of articles on Nuclear Acid Research database issue every year). Doing collaborative science is a nice concept, and needs to be explorered more.
The biggest problem that we face right now is the "publish or perish", and wiki systems will not solve it.

@I'm spending some (very little) of my spare time on Scholarpedia, a wiki-based scientific review/encyclopedia. Little by little, we make a better world.

Monday, October 06, 2008

You, not you, and the action-perception-learning



There are two things, you and the not-you (=environment).
You have two interfaces with the universe, input (sensory) and output (action).
The two systems have their own dynamics and they are coupled.

For example, you may perceive water flowing from higher places to the ground.
You can learn from your observations, about the dynamics of the universe.
You can perturb the flow with your hand and perceive the change you incurred.
You can learn what changes your actions bring to the perceived universe.

Friday, September 19, 2008

You don't need input distribution for Regression.

Why is input distribution not important in regression?

Let's consider a parametric regression of the data pairs {x(i), y(i)} to Y = f(X;w) + e where f is the function with w as the paramter, and e is the (unobservable) noise term.
Maximum likelihood estimation of the w given the data is
w* = argmax_w p(y|x,w),
that is, you are searching for the best set of parameters that maximizes the probability that you observe y, given the inputs x. Note that the probability distribution of x itself does not have any role here. The randomness that generates the likelihood function is actually the noise (or error) term.

Now, consider a generative model that also takes the input distribution of the input into account. (X,Y) = f(e; w). This problem is no longer a regression; it is a parametric joint distribution estimation (or model fitting). Here, e is not a noise; it is the source of all randomness.

For regression, you don't really need the entire joint distribution. The conditional is enough!

P.S. Of course, if you are doing linear regression where you have non-linear functions or non-Guassian noise, this is not true. Even the MSE cost in a regression problem cannot be computed without the input distribution.

Tuesday, September 02, 2008

[Lecturenote] Statistical inference

Squobble

Squobble: Sudoku with color and numbers!
I played twice in the beginner level, first time was 10 mins, and second time was 5 min 15 sec. At first the overwhelming information confuses the mind, but once you get used to it the color makes it much easier to solve the puzzle. It's been quite several years since this has been online, and I am surprised that nobody replicated the idea.

Monday, September 01, 2008

Computation <--> Learning and Memory

The speed of thinking process gives us approximate range of time scale that we do real-time computation. And our very long-lasting memory tells us the time scale of the corresponding memory processes. The former computation is most likely performed by fast dynamical systems, and the latter is hypothesized to be based on long-term synaptic plasticity. The important question is "How are these time scales connected"?

Among the underlying biophysical systems, the spike-timing dependent plasticity (STDP) is one of the possible mechanisms. If learning and memory is trying to store and recall the fast dynamics that it is performing now, it is necessary to be able to do prediction of its own dynamics. Hence, mechanisms like STDP that enhances the causal connections would be a very good start.

Monday, August 25, 2008

Learning and Information theory

As a system learns, it evolves its knowledge about the world. If we think of this knowledge being represented by a probabilistic model of the world, we can define entropy of the

In 1970, E. Pfaffelhuber wrote a paper titled "Learning and Information Theory" and submitted to the international journal of neuroscience [doi]. The introduction is very intriguing.
Intuitively, learning means an accumulation of a system's knowledge or information about a set X of data or events x or, equivalently, a decrease of the system's missing information about these data in the lapse of time. Thus, a quantitative definition of learning seems possible, provided one is able to introduce a measure for a system's missing information. As has been pointed out by various authors, Leibovic (1969, "information processing in the nervous system"), Shannon's classical information measure is not appropriate to describe behavioral processes of biological systems, the reason being that this measure is not appropriate to describe behavioral processes of biological systems, the reason being that this measure is based solely upon objective probabilities and cannot, therefore, represent a system's knowledge or beliefs nor can it discriminate between events which are of great importance and others which are irrelevant for an individual system.
The paper ends up talking about Kullback-Leibler divergence as a measure of difference between the actual probability and subjective probability. However, it is not readily usable by any learning system, because the actual probability is not known. This concept is extended by Palm's 1981 paper "Evidence, Information, and Surprise" in Biological Cybernetics [doi].

Data analysis tools for computational neuroscience

Mostly from the comp-neuro mailing list
Database

Sunday, August 24, 2008

A step towards Kernel Kalman filter

For an arbitrary continous nonlinearity in both state space and observation models, we came up with a analytical approximation for the extended recursive least squares filter using kernel method and some linear algebra. Now I need to fill the details and implement this. I wonder if this is the Kalman filter...cause the model and solution looks the same.

This posting is a test from my blackberry.

Friday, August 22, 2008

Excellent student project for philosophy of science

Recently in computational neuroscience mailing list (comp-neuro), renowned scholars started discussion of why neuroscience is not advancing as much as we put money, time and effort to the field. Many interesting discussions regarding the nature of biological science compared to physical science, and Kolmogorov complexity complete systems, realistic vs simple models for understanding, reproducibility of experiments and so on are all over the place.
It would be a nice class project or even a preliminary topic for a thesis to analyze these hot discussions! Any volunteers?

Monday, August 11, 2008

Input induced synchrony, and desynchrony due to internal dynamics


This is perhaps the most uninteresting network of neurons: uncoupled (independent) oscillating neurons. The only interesting thing is that they share a common input. The oscillation can be reset by the input, thus, inducing synchrony of the population.
The plot on the right is how they desynchronize over time. It is due to the variability of each neuron's period. The more variability, the faster the desynchronization.

Tuesday, August 05, 2008

Robustness of Cognitive processes

10:30 am
I was browsing through the TOC alert emails and found the following paper
The nature of the memory trace and its neurocomputational implications
by: P de Vries, K van Slochteren
Journal of Computational Neuroscience, Vol. 25, No. 1. (2008), pp. 188-202.

The abstract was stating exactly what I have thought about 10 years ago. I am sure the idea is generally known to many people, but this was stated as I liked:
The brain processes underlying cognitive tasks must be very robust. Disruptions such as the destruction of large numbers of neurons, or the impact of alcohol and lack of sleep do not have negative effects except when they occur in an extreme form. This robustness implies that the parameters determining the functioning of networks of individual neurons must have large ranges or there must exist stabilizing mechanisms that keep the functioning of a network within narrow bounds...


The paper builds a high level model of neural assemblies.

Donation to TortoiseSVN

I share all my research documents and code via Subversion (SVN). And for the windows machines I use TortoiseSVN, a wonderful piece of software. Today, being in a good mood, I donated US dollars to the developers.
Keep up the good work TortoiseSVN!

Monday, August 04, 2008

Living neurons as liquid in LSM, why it makes sense

8am

LCN: living cortical network
LSM: liquid state machine

Advantage of using LCN for LSM

In the original LSM framework, any dynamical system that satisfies the separation property can be used as the liquid. However, how to choose a proper liquid for a specific problem is not yet well established. Although the details are unknown, the LCN has the capability to adapt to the signals that it is exposed, and self-organize itself. Therefore, the information processing through LCN could be interesting. In fact, well known phenomenological synaptic plasticity rules including spike-timing dependent plasticity turned out to have the power of self-organization and mutual information maximization. Being a biological system that is far from being fully understood, the LCN system has the power equivalent to the brain—neurons grow axon and dendrites, self-regulate ion channels, synapses grow, split and disappear, and more. The totality of LCN cannot be simulated in a computer as a traditional LSM would work with. Even if it is possible to simulate the system, it is always computationally cheaper to use the actual physical system rather than the complicated simulation.

Thursday, July 31, 2008

Degree of synchrony and neural assembly

Can the degree of synchrony be used as an analog value for that variable, instead of being just on or off?
The problem is when a neuron is shared by multiple neural assemblies, different degree might be confused with different variables. Therefore the total number of effective variables (ensembles) will decrease. How much? Can we quantify this with entropy?

Posted via blackberry while eating breakfast.

Wednesday, July 30, 2008

Independent but late finding!

In one of my papers
Il Park, António R. C. Paiva, José Príncipe, Thomas B. DeMarse. An Efficient Algorithm for Continuous-time Cross Correlogram of Spike Trains, Journal of Neuroscience Methods, Volume 168, Issue 2, 15 March 2008
I invented a fast computation of kernel density estimation using the Laplacian distribution kernel. After defeating me on the pool table, my bro and colleage Sohan Seth was reading my other blog and pointed out he saw a paper with the same trick! Indeed, 2 years before my publication, there was a conference paper:
Aiyou Chen, Fast Kernel Density Independent Component Analysis. ICA 2006: 24-31
And the conference was organized by my advisor! I swear that I didn't take that idea!!!!
It was an independent finding. It was not a complicated idea anyway, but still...

Tuesday, July 29, 2008

Superposition Catastrophe

Imagine a group of neurons, a neural assembly or ensemble, to represent a feature. Suppose we have 4 of such, denoted as A, B, C, and D. Now you are in a situation where the representation of a complicated situation where all 4 of them needs to be activated, such as recognition of a blue (represented by A) monster (B), and a red (C) lobster (D). If each feature is represented by merely activating the corresponding ensemble, it would not be able to distinguish the situation against "red monster and blue lobster". This is the so called superposition catastrophe and is a big part of the binding problem. (Malsburg)

If each combination has to be represented via a single assembly, we would need astronomical number corresponding to the possible combinations of the features. Since we can certainly distinguish between red monster eating blue lobster and blue monster eating red lobster, there should be something wrong about our assumptions.
  • existence of a neural ensemble for each feature
  • temporal inseparability among combinations
Oscillation and/or synchronization have been proposed to solve the binding problem by attacking the second assumption.

Choosing a simulator environment

8am
Trying to find a good simulator for my synchrony code and STDP idea. I requested NEST 2.0 via email twice but never got any replies yet. I have a feeling that I have to implement my own simulator this time, because I have to manipulate the input in a way that people usually don't.
Plain MATLAB is one easy way to approach, but the speed is a concern. Although recent versions of MATLAB really showed great performance enhancement via JIT compiler. (I wrote a C-MEX to optimize a speed and it was not better than plain for loops in MATLAB!!) The good thing about MATLAB is that I am already very used to it (so I can implement things very fast), and the bad thing is that it is not a good programming language.
The other options are to use C, C++, python with numPy, or some other languages.
After reading alternatives to MATLAB and python vs matlab, I decided to try numPy, it is faster than JIT equipped MATLAB in a few examples.

Monday, July 28, 2008

after 5 hours of sleep

7am
Moshe Abeles (2008) Synfire chain, Scholarpedia
Synfire chain is a feed-forward layered network that propagates synchronous firing patterns. It supports stable transmission of activity. The article concentrates on the state memory that it can represent, but not a lot of computation. The encoding of different state is through different chains.
In terms of computation, the article mainly focuses on synfire chain as a solution to the binding problem. The article also mentions the role of STDP of time-locking two activated synfire chains.

8:30am
What input would best demonstrate a learning and computation based on synchrony coding?

Saturday, July 26, 2008

Story of excitatory synapses to STDP

I am a tiny synapse, the excitatory kind. I have a simple life, like a traffic light - I propagate the action potential from the presynaptic neuron to the postsynaptic neuron, only one way.
Unlike other pathetic sentient beings in this universe, my primary goal is simple: transfer as much information as possible. Through a long time of evolution, I've been thinking how to do this in the most efficient way. I have limited knowledge at a given time. I can sense the membrane potential of the (postsynaptic) neuron, remember for a while the fact that there was an action potential in either presynaptic or postsynaptically. I can change the amount of excitation that I will bring to the (postsynaptic) neuron which in turn increases the probability of firing. I also know that there are many other synapses like me, but I cannot communicate with them.

So, I thought that increasing the amount I am exciting the neuron per presynaptic action potential would be the only way I would increase the information transfer. Any information transfer has to be supported by a physical link, and it would be stronger as I increase my action.
This strategy worked sometimes, but often didn't work. Due to the dynamics of the neuron, some other action potential that I didn't cause discouraged from my contribution to fire. I definitely increased the probability of the neuron to fire, so I was happy.

One day it just struck me. I realized that I was asking the wrong question. The question I should have asked is how to transfer maximal information from all synapses through the neuron, not just me. That means I'll have to communicate with other syanpses and find out how to work together. There's only one information that all the synapses share, the timing of the postsynaptic action potential. The membrane potential was quite local in the dendritic structure and highly noisy. I have to rely on the output train of action potentials to figure out how I can cooperate with other synapses.

Imagine a network of thousand roads and millions of cars trying to get from point A to B. If there were no coordination of traffic lights, and each road is trying to maximize the number of cars that goes through itself, all the intersections would be clogged by interference among incoming traffic. Of course, information is nothing like cars, it's an analogy! If they were, a car would clone itself and turn into two cars, and transform into different cars, and just disappear without a clue. Anyway, the point is that if somebody else is sending some information, I should not send mine at the moment. But, unlike cars, if somebody is sending information through this neuron, and I have a very similar information, I should send mine too, to reinforce the transfer. That way we collaborate to reduce the variability of the output spike train.

Yes, that's what I should do. I should find a group of other synapses that share some input features and collaborate. If I cannot find one, I should stay low profile and do not disturb others but still be open to chances of finding future opportunities of collaborations. How will I find a group by only observing the output spike train? I would like to see if I seem to be strongly causing the output. If I am, that means there is a group of synapses that are also causing the output spike train, because I am not strong enough to cause it myself. So I should also participate strongly to the information transfer process.

How would I know that I am strongly causing the output? The feature I am looking for should be in the spike trains and cannot be temporally too spread, because of my short memory. In the simplest case, I would just see the relation between one presynaptic action potential and one postsynpatic action potential in a small time window. If the presynaptic one occurs first, then I am somewhat causing the output, and if it is the opposite case, I might just be disturbing. Therefore, if I use spike-timing dependent plasticity (STDP), over time this instantaneous causality would accumulate and I would be collaborating with similar synapses or not.



  • One big advantage of point process over regular random process is that the causality is easy to detect.
  • There could be other measures of causality that extends to more than a pair of input/output.
  • Papers in the literature does not address spatial patterns so that the STDP synapses could collaborate.

Thursday, July 24, 2008

Bad milk breakfast day

7am
Distributed synchrony in a cell assembly of spiking neurons
Nir Levy, David Horn, Isaac Meilijson, Eytan Ruppin
Neural Networks, Vol. 14, No. 6-7. (9 July 2001), pp. 815-824.

Experiment:
Step 1. Feed a strong common input to a population of spiking neurons (both excitatory and inhibitory)
Step 2. Let STDP do their job for excitatory-excitatory synapses
Step 3. Stop the input and observe the sustained activity

Observation:
  • Oscillation of synchronous firing is observed
  • The neurons formed subgroups that fired in sequence
  • The frequency of oscillation was simply dependent on the synaptic delay and number of subgroups
  • Over time the group formation can slightly change
They call this synchronous subgroup firing oscillation as "distributed synchrony" state.
This is an evidence that STDP can be used to make synchronously firing neural ensembles.

9am
Time independent Schrödinger equation and information potential
Aim: A potential field that would yield the Parzen estimated pdf as one of the solutions of a
finite energy time-independent Shrodinger equation. The solution (wave function) has a physical meaning of being a probability amplitude function (complex valued) of a particle. Therefore somehow linking the probability and potential.
Dr. P: The potential might act as a regularizer

10am
Discussion with Dr. D
Memming: STDP can do some computation with synchrony code. Suppose you have two ensembles A and B. I can train a third ensemble C with STDP to fire only when A and B fire.
Dr. D: Why not try the idea of association? Eliminate C and just make A and B fire even when only A fires.

Sunday, March 02, 2008

I totally forgot

that I had a space over here!
How shall I utilize this place?
Why did I abandon this place? Was it speed?