Unsupervised Learning of Visual Features through Spike Timing Dependent Plasticity