Implementing neural networks in C# - Part 1

Starting today, we initiate a series that explores neural networks and deep learning. The objective is to uncover the complexities of utilizing neural networks to accomplish tasks that elude other algorithms.

Neural networks are a computational model inspired by the way biological neural networks in the human brain function that consist of interconnected nodes, or artificial neurons, organized in layers. Information is processed through these layers, with each connection having an associated weight that is adjusted during the learning process. Neural networks are commonly used in machine learning to recognize patterns, make predictions, and perform various tasks based on data inputs.

We will delve into the details of this definition in subsequent posts, demonstrating how neural networks can outperform other methods. Specifically, we will begin with logistic regression and illustrate, through a straightforward example, how it may fall short and how deep learning, on the contrary, can be advantageous. As usual, we adopt a step-by-step approach to progressively address the challenges associated with this data structure.

We consulted the following books as references to compose this series.

Deep Learning (Goodfellow, Bengio, Courville

Deep Learning: Foundations and Concepts (Bishop, Bishop)

Without delay, let's commence with a few prerequisites to gain a thorough understanding of the underlying concepts. Continue here.