Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News An Introduction to Neural Networks Using C#

An Introduction to Neural Networks Using C#

Leia em Português

This item in japanese

Lire ce contenu en français


Dr. James McCaffrey of Microsoft Research gave an interesting introduction to neural networks at the recent Build 2013 conference.  While the title of the talk, “Developing Neural Networks using Visual Studio”, implies that it is Visual Studio (VS) specific, it is in fact applicable to any developer seeking to learn more about neural networks (NN).  McCaffrey has a doctorate in mathematics, but in this engaging presentation he is targeting developers with a computer science background.

His approach serves as a useful introduction to the concept of neural networks, and viewers will be left with a firm foundation for further study.  In his talk, McCaffrey bases his approach around the sample problem he provides which is based around predicting an individual’s political affiliation based on their age, income, sex, and religion.  This was useful as it is both easy to follow and an example of a practical application for using a NN. 

During the talk McCaffrey covers what he calls the seven core concepts for utilizing neural networks: 

  • Feed-forward
  • Activation
  • Data encoding
  • Error
  • Training
  • Free parameters
  •  Over-fitting


McCaffrey observes that many newcomers to using neural networks may be challenged by the lack of reliable documentation.  McCaffrey addresses by listing what he considers to be reliable sources of information.  While his enthusiasm for the subject is palpable, he tempers this reaction by also describing the strengths and weaknesses of a NN-based approach.  Going further, he describes 6 alternatives to neural networks, and when they might be more suitable based on the problem that needs to be solved.

McCaffrey provides working C# code for the sample neural network presented at the end of his talk, allowing viewers to continue experimenting.  This example uses the Iris flower data set, which is commonly used when testing machine learning programs.  (Note that with the copy I obtained a semicolon will needed to be added to line 756 in order for the program to compile.)  McCaffrey gave a similar presentation at the Microsoft Management Summit in April, but I found the one at Build to be a superset of that material and the definitive edition to watch.


Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • What happened to Jeff Heaton?

    by Richard Clayton,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    No offense to Dr. McCaffrey, but Jeff Heaton's provided incredible Neural Network documentation in both .NET and Java for years ( I don't know why he thinks there is a lack of "reliable documentation".

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p