Reducing Spike Train Variability: A Computational Theory Of Spike-Timing Dependent Plasticity