Fundamentals of neural networks