In the May 2012 issue of MSDN Magazine I describe what artificial neural networks are and give a concrete example in the C# language. You can read the article online at http://msdn.microsoft.com/en-us/magazine/hh975375.aspx. Neural networks have been around for decades. Early on, like many technologies, neural networks were over-hyped and then fell out of fashion. But neural networks are extremely powerful tools. Neural networks are making something of a comeback, in part because the huge processing resources needed for useful neural networks are more easily accessible. Basically a neural network loosely models biological neurons and accepts some number of numeric inputs (for example three inputs, 1.0, 2.0, and 3.0) and spits out some outputs (for example two outputs 0.72 and -0.88). The number of neurons and their arrangement and a set of numeric weights determine the output. You might remember linear regression from high school or college. In LR there is one input and one output, and one equation with two weights. For example Y = 4.0 + (5.0 * X). If the input X = 1.0, then the output Y is 9.0. Neural networks take this example to the nth degree; there can be any number of inputs, any number of outputs, any number of weights which generate any possible kind of function. Neural networks can be used to analyze large data set to uncover patterns and make predictions. There was a lot of reader interest in this first, introductory article, and so I’m working on follow-up articles.