Fundamentals of Neural Networks: Architectures, Algorithms and Applications