Machine learning strives to develop decision-making systems (systems for making predictions/inference) with the help of data/examples. As the machine learning (ML) applications learn from the data, the more data we have, the more effective the applications will be. Unlike in the past, ML is no more a novel phenomenon and companies are now struggling to incorporate machine learning features in their offerings in one way or another. The ML applications in our daily life are quite wide-ranging: Video hosting services use the ML to classify their videos under distinct categories so that they can serve you relevant videos. ML can be used to identify factors that contribute to customer dissatisfaction and recognise customers with an increased likelihood of leaving a service. With the help of a machine learning algorithm, an e-commerce retailer can recommend the next product to be purchased based on a previously purchased product.
New innovations are bubbling up in the machine learning space almost on a daily basis. One of the areas in which machine learning is having a huge impact is computer vision, which is the study of visual data. Thanks to the proliferation of a variety of camera enabled devices, we witness an explosion in the amount of visual data. The data bits moving around the Net these days are mostly visual; this means we should focus our attention to create algorithms/tools that can utilise and understand this data. However, unlike other types of (measurable) data, visual data are difficult to process.
For instance, take the case of a bank that wishes to create a classifier for predicting the credit worthiness of a customer. Towards this end bank can provide us with historical data that describes each of its customers- like gender, age, income, employment status, tenure, number of products, credit-score, account-balance and so on. In the machine learning parlance, these attributes are called features. Using this data with an appropriate ML algorithm, we can easily build a classifier that can predict if a customer with specific features will default or not. One advantage of this type of problems is that one can identify the features – here the customer attributes such as age, gender, balance etc – without much hassle.
Now let us take an image classification example. If you want to create a classifier model that can distinguish between cats and dogs, we have to provide a data set with features specific to cats and dogs. To identify/distinguish cats and dogs, we generally use features such as ears, tails, whiskers, tongues and the like. But extracting such features from an image is very difficult. A small change in the image could alter the features entirely. For example, if we took the same cat by moving the camera to the other side, though it represents the same cat, for a computer its features would look quite different. In addition, many other factors also could distort the picture- lighting condition, a deformed cat, a cat in varied positions and poses and so on. Moreover, these animals can come in different shapes, sizes and colours too. Framing rules/features that can encompass all these variations is a challenging task.
Obviously, we need something better. The ideal solution is to have an algorithm that can figure out the feature/rules for us so that we don’t have to write them manually. To get around this issue machine learning experts use a branch of machine learning called ‘deep learning’. Deep learning has gained huge acceptance and produced great results in the last few years, especially in domains like image classification. The advantage here is that we don’t need to extract features manually. Instead, we can use the raw pixels of the image as its features and the classifier will do the rest.
The availability of free open source program libraries like Tensorflow makes the classifier building process further easier. To train an image with a classifier we need to provide only one thing- the training data. If the aim is to create a classifier that tells the difference between cat and dog, feed the images of cats and dogs to the system and train it. Instead of hunting for specific features to figure out exactly what is a cat or dog, we need to collect a large data set of images of several cats and dogs and use them to train a machine learning classifier.
The ability to classify images by training a classifier with a bunch of images has triggered the imagination of researchers/entrepreneurs and is finding applications in such diverse fields as data collection and medicine. Google Project Sunroof Data Explorer, which provides a map of the existing solar installations across the US, is a good example of an application built using a machine learning tool. The application lets the user find if the houses around a location have already adopted the solar technology. For this project, they trained a classifier by feeding it with high-resolution rooftop images (manually labelled as solar and non-solar).
As per the project promoters, their classifier can now automatically identify solar installations in an imagery. The model can identify two types of solar installations-PV (Photo Voltaic) panel systems for electricity generation and solar water heater systems. Based on this model Google has created an application that can provide the number of current solar installations and solar potential of a specific city/town (in the US).
So, with the help of a machine learning model, Google could build a tool to automatically collect data on solar roofs- this is the real takeaway. A tool of this kind could certainly be of immense value for a policy maker (handling energy affairs) as he will get an idea of how much solar capacity actually exists in a specific location.