ML.NET – a New Machine Learning Framework

In May 2018, Microsoft released ML.NET library – an open-source, cross-platform machine learning environment. As the result, .Net developers are now able to implement the model-based (machine-based) learning elements in the existing projects and create a new one. The model-based approach attempts to create a personalized solution suitable for each new application, while the developer doesn’t need to have a background in developing or customizing machine learning models. We decided to consider the most important facts about ML.NET while pursuing a goal to increase technician’s awareness on this new tool.

First of all, ML.NET allows developers to perform machine learning tasks such as classification (e.g. supporting text classification) and regression (e.g. price forecasting). Now it is possible to create the Recommender systems and group object sets by similarity: objects from the same cluster would be more alike than objects from other groups. Such grouping allows to detect the suspicious anomalies which significantly differ from most of the data.

Talking about the updates, developers community expects to get a possibility of building ranking models, as well as enlarging deep learning usage. The former aids in object detection, image classification and speech recognition. ML.NET is growing by adding popular Machine Learning tools, such as: LightGBM, TensorFlow, ONNX, Infer.NET, NimbusML, which have already been integrated with the library.

ML.NET 0.5 had updated deep learning support featuring TensorFlowTransform class. This class can use the existing TensorFlow model and get estimations for this model in ML.NET. Later, the possibility of TensorFlow model training based on its own data was added.

To give a better understanding of how the technology can be applied to common projects, we will provide the following example. ML.NET was used in one of our tasks, where we worked on the problem of fruit classification by photo. In our project, we used the initial (pre-trained) TensorFlow model as an individualizer (featurizer). Then, we trained this model with a large number of fruit images marked with the appropriate labels. Fruit images were presented by chopped video fragments and photos from the Internet. Video fragments demonstrate fruit’s corpus from all the angles. As the result, a trained model processes images with a neural network and then promptly identifies the name of the fruit, with a certain probability (from 0 to 1).

You can check the app by clicking http://fruit.softteco.com

To conclude, ML.NET seems as a great new tool in the field of computer science. The library implementation in your existing projects can seriously simplify the data processing procedure and will allow to conserve time and resources.