Category Archives: C#

Announcing Neural Networks in GPdotNET


gpdotnet_ann1

Last few months I was playing with Artificial Neural Network (ANN) and how to implement it in to the GPdotNET. ANN is one of the most popular methods in Machine Learning, specially Back Propagation algorithm. First of all, the Artificial Neural Network is more complex than Genetic Algorithm, and you need to dive deeper in to math and other related fields in order to understand some of the core concept of the ANN. But likely there are tons of fantastic learning sources about ANN. Here is my recommendation of ANN learning sources:

First of all there are several MSDN Magazine articles about ANN and how to implement it in C#.

1. Dive into Neural Networks

2. Classification and Prediction Using Neural Networks

3. Neural Network Back-Propagation for Programmers

If you want to know what’s behind the scene of ANN, read this fantastic online book with great animations of how neuron and neural networks work.

1. Neural Networks and Deep Learning,  by Michael Nielsen.

There is a series you tube video about ANN.

1. Neural Networks Demystified [Part 1: Data and Architecture]

Open source libraries about ANN in C#:

1.  AForge.NET. – Computer Vision, Artificial Intelligence, Robotics.

2. numl – Common Machine Learning Algorithms by Seth Juarez

The first GPdotNET v4.0 beta will be out very soon.

Brood Recombination new feature in GPdotNET


As currently implemented GPdotNET has classic crossover implementation without any intelligent way to exchange genetic materials. In most time classic crossover operation is destructive operation wasting lot of good genetic materials. By including brood recombination crossover can be slightly improved.

Brood recombination simple repeats crossover operation several time on the same parents, with different crossover points. After fitness evaluation of offspring, the best two child are kept and others are discarded. On that way there is a better chance to get better child than with classic crossover. The picture below graphically describes brood recombination.

brood_recombination

Brood Size – new GPdotNET parameter

The first feature which will be implemented is manually setting the Brood Size of crossover. By adding Brood Recombination, we will increase possibility that two chromosomes will exchange the best genetic material they have.

brood_recombination_parameter

The next feature will be brood size which will be generating dynamically and will be dependent of the generation number.

TechDay 2014: Azure Workshop – Demos and Slide Decks


After Microsoft TechDay finished yesterday I got several emails and questions about my demos and slides from the Azure Workshop.

So here is a link from which you can download all slides and demos you saw yesterday on my Workshop:

Slides about Microsoft Azure Training are general available at Git site: https://github.com/Azure-Readiness/DevCamp.

Once more thank you all for attending the workshop and see you next time. I am very glad I can see lot of people interested in Microsoft Azure and other cool technologies from Microsoft.

Remove items from a List while enumerating


Here is a simple way to remove items from currently enumerated list.
Put the list in while loop and make a manual index counter (var ind=0). Within while loop, every time items is removed decrease the index counter, otherwise increase the index.

private static void RemoveDirty(List<Element> lst)
{
    var ind = 0;
    while(ind<lst.Count)
    {
        var el= lst[ind];
        if (el.IsDirty)
        {
            lst.RemoveAt(ind);
            // in case item is removed decrease the index
            ind--;
        }
        // increase the index when nothing is happen
        ind++;
    }
}
Follow

Get every new post delivered to your Inbox.

Join 572 other followers