I wrote an article titled “Introduction to DNN Image Classification Using CNTK” in the July 2018 issue of Microsoft MSDN Magazine. See https://msdn.microsoft.com/en-us/magazine/mt847190.
Image classification is a standard problem in machine learning. If you have an image (typically a photograph), the goal is the image classify it as, for example, “dog”, “cat”, or “squirrel”.
The standard way to perform image classification is to use an exotic type of neural network called a convolutional neural network (CNN). But until just a few years ago, the most common approach was to use a standard deep neural network (DNN). In my article I showed how to use the older DNN approach.
For my example, I used the well-known MNIST (modified National Institute of Standard and Technology) dataset. It consists of 60,000 training images and 10,000 test images. Each image is a picture of a handwritten digit, ‘0’ through ‘9’. Each image is small — 28×28 grayscale pixels (each pixel value is 0 to 255). So the goal is to accept a 28×28 image and classify it as a “zero” or a “one” or a “two”, etc.
Instead of creating a custom image classification system using a DNN or a CNN, you can use pre-trained image models from companies such as Google or Microsoft.
Using a generic image classification model may not give you optimal results. Google found this out when their image classification system was classifying some people as gorillas. According to Wired Magazine, Google’s image search function now refuses to return any results for “gorilla” or “monkey”. https://www.wired.com/story/when-it-comes-to-gorillas-google-photos-remains-blind/