Neuromorphic Learning Systems for Supervised and Unsupervised Applications