Supervised Learning Independent Component Analysis Algorithms and Applications