6 reasons Microsoft has become the go-to for machine learning

Including the latest tools announced at Microsoft Build 2019

Alyse Sue
May 20 · 7 min read

This is a summary of the latest machine learning (ML) offerings from Microsoft for data scientists and developers. It includes announcements from Microsoft Build 2019, which I was lucky enough to attend.

Some of Microsoft’s offerings completely democratise data science and some make a data scientist’s job much easier. What’s great is that there is something for everyone regardless of level of expertise.

My experience with these tools ranges from lots to not much. Apologies in advance for any errors or omissions.

1. AutoML — automated machine learning

Automated machine learning has been drawing lots of attention lately, and is software that automatically selects and trains ML models. Some think it replaces the job of a data scientist however there are limitations as to what it can do.

Presently, Microsoft’s AutoML is able to build a set of ML models automatically, intelligently select models for training, then recommend the best one for you based on the ML problem and data type. Typically a data scientist with their domain expertise would manually produce and compare dozens of models. In a nutshell, it selects the right algorithm and helps to tune hyperparameters. Currently, it supports classification, forecasting and regression problems only.

AutoML can be used with Azure Machine Learning Service or ML.NET. An automated ML training experiment can be designed and run by first identifying the ML problem, specifying the source and format of the labeled training data, configuring the compute target for model training and finally configuring the automated ML parameters.

USE IF: You are working on classification, forecasting or regression problems

DON’T USE IF: You are working on unsupervised learning and complex data types

Ease of use: Intermediate

Requires data science knowledge: Yes

Cost: Free. AutoML is used with Azure Machine Learning Service or ML.NET and you pay for any costs associated with those.

2. Azure Machine Learning Service — cloud service

Cloud services allow you to use the cloud provider’s resources for data storage and processing so that you are not restricted by your local device or resources. Cloud services are highly scalable and fully managed.

Azure Machine Learning service provides SDKs and services to quickly prep data, train, and deploy custom ML models. There is built-in support for open-source Python frameworks, such as PyTorch, TensorFlow, and scikit-learn. Any type of ML is compatible including classical ML, deep learning, and supervised and unsupervised learning. This service has everything you need to create an ML pipeline.

There are several useful features integrated with this service: AutoML, MLOps (DevOps for ML), model interoperability, ability to use with FPGA (Field Programmable Gate Arrays), and ONNX (Open Neural Network Exchange) to optimize model scoring.

A workspace is needed to work with this service and can be created via the Azure portal interface, Python SDK, Resource Manager template or CLI. From there you can run an experiment in the cloud, using a local (Jupyter) notebook server, or in Azure Machine Learning Studio visual interface.

USE IF: You need to build custom models or work with deep learning models

DON’T USE IF: You prefer not to work in Python or want a simpler service

Ease of use: Advanced

Requires data science knowledge: Yes

Cost: Pay only for resources to train models. Several pricing tiers for deploying via Azure Kubernetes Service.

3. Azure Machine Learning Studio — visual interface

Visual interfaces are no code or low code platforms which allow those who do not program to access capabilities such as ML. Some of them can be drop-down lists, in this case, it is a drag and drop tool.

Azure Machine Learning Studio is a drag-and-drop ML tool which allows you to build, train and customize models from uploading a custom set of data to evaluating results in a graphical interface. Once you have a trained model, you can deploy it as a web service straight from Studio. You are then given an endpoint and API keys to use in any application. Currently, this can only do classification, regression, and clustering problems.

Create an Azure Machine Learning Studio account and start a new experiment. Choose an existing dataset or upload your own, clean the data, select an algorithm, and train, score and evaluate the model. Once you are happy with the model, deploy as a web service to use in an application. While this is no code, you still need some basic data science knowledge.

USE IF: You are after a no code or low code platform to work on classification, regression, and clustering problems.

DON’T USE IF : You prefer to code. You might find it easier to code rather than dragging and dropping things onto the canvas.

Ease of use: Beginner

Requires data science knowledge: Yes

Cost: Free tier or standard tier which is US$9.99 per seat per month and $1 per studio experimentation hour. Additional pricing for Production Web API.

4. Cognitive Services — machine learning web API

A web API or service generally operates over HTTP and is a means by which third parties can write code that interacts with someone else’s code. This could be a way to access data or capability that a third party has collected or created. For example weather data or in this case turning speech into text.

Microsoft’s API services are called Cognitive Services. These can be deployed straight on Azure. There are five categories available including vision, language, speech, search, and decision. These are pre-trained models and won’t work for you if you need to customize the model. These suit developers who are keen to use ML but do not know much data science. What’s great about Cognitive Services is that it is platform and language agnostic.

To use, go into the Azure portal, search for the service you are after and spin up a new service. Once that is done, you should be given an endpoint and API keys which you can use in any application.

USE IF: If you don’t want to mess with data science but want to embed ML in your application

DON’T USE IF: You need custom models

Ease of use: Beginner

Requires data science knowledge: No

Cost: Varied. However, all Cognitive Services have free tiers.

5. Bot Framework — chatbot framework

Bot frameworks are skeleton codes for the purpose of making bots. Commonly used for chatbots. Possibilities are endless from providing customers multiple choice selection to conversing in natural language that feels and sounds human.

Bot Framework is Microsoft’s service for creating chatbots. Bot Framework is generally used with LUIS and QnA Maker. LUIS is Microsoft’s Language Understanding Intelligent Service which provides the bot natural language processing abilities to understand meaning and semantics. QnA Maker allows you to train the bot using question and answer pairs. At Build 2019, they released an experimental service called Project Personality Chat which allows bots to make small talk in a particular personality type of your choice such as friendly or humorous.

There are several ways to use Bot Framework including SDK, Visual Studio template, or creating and deploying a Web App Bot in Azure. Using LUIS’ and QnA Maker’s graphical user interfaces you can set intent and entities, and question and answer pairs respectively.

USE IF: You want endless customization with your chatbot

DON’T USE IF: You don’t want to touch code

Ease of use: Intermediate

Requires data science knowledge: No

Cost: Free tier up to 10,000 messages per month or S1 tier which is $0.50 per 1000 messages. Plus additional pricing depending on hosting including Web App Bot, Functions Bot or Bot Channels Registration.

6. ML.NET — machine learning framework

Frameworks are generic skeleton code that you can build your own application on top of. Frameworks allow the lower level functionality to be looked after so that you only have to look after your application logic.

ML.NET is Microsoft’s newest open-source cross-platform ML library for .NET developers. It supports C# and F# on either Windows, Linux or macOS. The latest version was released at Build 2019. At Build 2019 they announced the ML.NET Model Builder, a visual interface that integrates with AutoML to build and train models and it’s the best invention ever. ML.NET has classification, regression, anomaly detection, and recommendation training algorithms and can be extended with Tensorflow and ONNX for neural networks.

Start by installing the package via nuget, adding a reference to the package in your code and then accessing the available functions or methods within the library.

USE IF: You are a .NET developer and comfortable building your own ML pipelines

DON’T USE IF: You prefer to develop in Python (I’ve been told NimbusML will help you get around that)

Ease of use: Advanced

Requires data science knowledge: Yes

Cost: Free

My pick

As a .NET developer, I’m a big fan of ML.NET and how straightforward it is. That combined with the Model Builder makes ML.NET really fun to work with. The most exciting pick of the bunch is Azure Machine Learning Service. There are multiple ways to use this and I’m still getting my head around all the options. It is also the most versatile and suits data scientists and developers alike and has all the features you need to create an end-to-end ML pipeline and workflow.

There you have it! 6 reasons why it's worth looking at Microsoft for your ML needs.

I write about AI and transhumanism. Follow me on Medium if you’re also making sense of a world impacted by emerging technologies.

Data Driven Investor

from confusion to clarity, not insanity

Alyse Sue

Written by

Alyse Sue

Freelance Tech Writer, Co-founder Transhumanism AU. Helping people keep up with AI, Transhumanism and Emerging Tech. www.transhumanism.com.au

Data Driven Investor

from confusion to clarity, not insanity