Page 1 of 1

ANN Guidance – How to begin?

PostPosted: Tue Jun 18, 2013 1:29 am
by DoughBoy
Hello everyone!

I’m working on a project where I’m collecting images every 10 minutes for a total of 11 hours each day (66 total images per day). From each image, I split the image into fixed size regions and I extract specific characteristics for analysis. In the images we have several control and treatment plants. My current thought is to use ANN with the extracted data, for the software to identify when the treatment has deviated from the control and to hopefully label the treatment regions within the image based on the ANN results.

Is ANN a good suggestion for this application? Can anyone offer a crash-course with getting started implementing ANN with my project?

Thanks to all for their help and guidance!

Re: ANN Guidance – How to begin?

PostPosted: Tue Jun 18, 2013 6:15 pm
by DoughBoy
Hello everyone,

After posting my question I've continued searching for examples and tried learning some things on my own. So, I'll start posting what I've found and maybe that would entice a dialog to confirm what I've learned or to correct the path I'm on.

It's hard to find actual CODING tutorials or examples to learn from but I've found these two items that I think can help me get started:
http://www.codeproject.com/Articles/16859/AForge-NET-open-source-framework
http://stackoverflow.com/questions/14004319/ocr-with-perceptron-neural-network-of-aforge-net-answers-wrong

I learn best from looking at actual Coding examples. So if anyone can suggest other links or provide me with some examples that you might have laying around, that would be great!

From my readings, ANN could be a tool to use to separate data groups into a good/bad classification. But first, I would need to normalize all of my input data such that the values are within [-1,1] or [0,1] and once started, I would need to first train the algorithm before I could use it as a classification tool.

So, trying to tie in with what I've learned to my project - 20 features are extracted from one region within an image. These features would be normalized inputs and each region is only another array of inputs to the ANN. This data collection from one image is only one learning iteration for the ANN model. I would need to loop through all 66 images (one day's collection) to train the ANN to detect good or bad regions.

Am I on the correct path so far?

One question I have is - Can I train the model to only identify "good" regions and to have the model tell me when the data doesn't fit the "good" model (i.e. bad regions are found)? or do I need to specify both good and bad with the training?

Thanks and I look forward to your discussions.

Re: ANN Guidance – How to begin?

PostPosted: Wed Jun 19, 2013 2:53 am
by DoughBoy
Hello everyone,

I found a really great article from Andrew and I'm super bummed that this article isn't listed in the "Articles" page on this site. Just a suggestion for improvement, why not post all of the Code Project articles here so that we have a "one stop shop" for help and examples. The article that was a major help learning ANN was:
http://www.codeproject.com/Articles/11285/Neural-Network-OCR

I created a program that imitates the example code from:
http://www.aforgenet.com/framework/docs/html/cc9202e0-a12b-3d55-85f0-0aa30fb48160.htm

After completion, I wondered how I can test out the algorithm. It was from the Code Project article that led the way! I'm very happy with the results. Just to share with everyone here, I used a SigmoidFunction alpha 1.5 and a BackPropagationLearning LearningRate of 0.15 while watching for an error convergence of 0.000001. After 4850 iterations, the error was 0.0028 and I applied the following tests to the network:
Given: {0.0, 1.0} -> ANN Found: 0.9639
Given: {1.0, 1.0} -> ANN Found: 0.0383
Given: {1.0, 0.0} -> ANN Found: 0.9636

How very exciting! I'm happy to be making good progress with learning ANN... BUT, starting to apply this to my project is on the horizon. I am still having a difficult time identifying if it is possible for ANN to know the difference between data that fits the trained model and data that doesn't fit. Any input would be greatly appreciated.

Thanks and I look forward to your discussions.