The Neural Network Input-Process-Output Mechanism

I wrote an article titled “The Neural Network Input-Process-Output Mechanism” which appears in the May 2013 issue of Visual Studio Magazine. See This article is the third in an ongoing series that explains how to code neural networks using the C# programming language. The term input-process-output is a general one in computer science and just means there are some (data) inputs, the program does something with the inputs, and emits the results. When talking about neural networks, the more specific term “feed-forward” is typically used.

My article is sort of a pre-Hello-World for neural networks in the sense that it explains only how a set of numeric inputs like (2.0, 3.0, 4.0) generates a set of numeric outputs like (0.9349, 0.6196). My article does not explain how to use neural networks to solve practical prediction problems such as predicting stock market prices.


Coding up a neural network from scratch is a lot of work. There are plenty of neural network tools with nice GUIs you can use. And there are commercial API libraries you can buy. So why bother coding a neural network from scratch? Coding from scratch doesn’t always make sense. But, GUI tools can be difficult or impossible to integrate into a software system. Tools and API sets may have hidden legal or copyright issues. Using tools and API sets creates an external dependency in your code. Because they have to be general in nature to cover as many programming scenarios as possible, API sets tend to be inefficient for a specific problem and they can have a very steep learning curve. Because neural networks are very complex, many existing tools and API sets have serious bugs.

Creating neural network code from scratch allows you to customize your code to match your problem scenario. And coding from scratch forces you to fully understand how things like the neural network learning rate and momentum value work. Finally, if you’re like me, coding from scratch is a lot of fun. The price you pay for coding a neural network from scratch is lots of work.

This entry was posted in Machine Learning. Bookmark the permalink.