In recent years, a lot of research has been put into making computer programs and algorithms more intelligent. As a result, machines have started demonstrating human-like capabilities like cognitive abilities, adaptive learning and prediction capabilities. This branch of computer science is called artificial intelligence, or AI, with machine learning being one part of it.

Just what is machine learning? Consider computer programs: Traditional computer programs do their task the same way all the time and don’t adapt, or “learn” based on data, trends or history. With machine learning, computer programs can be trained so they can perform certain actions on new data based on past training. To stay competitive, businesses are adopting these new technologies rapidly. Businesses are using these technologies to offer personal and tailored solutions to their end customers and to improve customer loyalty. Using these technologies, companies can gain insights into their business and identify trends and opportunities, which are impossible to identify otherwise.

Still, machine learning is a complex process. Building algorithms and infrastructure in-house would require heavy capital investments and hiring exceptional talent. Instead, many businesses are better off adopting off-the-shelf machine learning solutions or using machine learning-as-a-service (MLaaS) solutions.

Machine Learning with Microsoft Software

Renowned computer scientist Tom Mitchell defines machine learning as the following:

“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.”

So how do you manage T, P and E? You need platforms, frameworks and tools! Microsoft, one of the leaders in machine learning technologies, has created a range of services and tools for this very reason. Microsoft products Windows 10, Office 365, Dynamics 365, Skype, Bing, Xbox, Azure, SQL Server and Development Tools already have machine intelligence built in. In this article, I will be detailing the overall landscape of Microsoft’s machine learning ecosystem and tools.

But, you ask, do you need a degree in data science to be a bona fide machine learning engineer? Yes, and no. Microsoft tools and Machine learning-as-a-service (MLaaS) offerings provide many built-in algorithms to make it easy to develop and host cutting-edge, end-to-end machine learning-based solutions. However, understanding these algorithms is necessary to fine-tune your desired results by managing different phases of data and data sources, deciding which models to use, making decisions regarding scaling, and so on.

There are also challenges in applying machine learning to different solution deployments. How do we apply machine learning from on-premise to the cloud and on the edge? How and where do I train machine learning models? How do I ensure that training and inference is performance-efficient and cost-effective? Microsoft addresses these challenges by providing end-to-end tools and solutions that seamlessly work with one another for each solution scenario. Read below on how to get started with machine learning.

Starting the Machine Learning Journey: Which product or tool should I use?

For on-premise machine learning, you can deploy Microsoft’s Machine Learning Server at your data center. Microsoft’s Machine Learning Server enables distributed R- and Python-based machine learning solutions at scale. Also, SQL Server Machine Learning Services can be deployed on-premise to enable R- and Python-based machine learning for relational data. SQL Server 2019 supports data virtualization from other on-premise databases, as well as HDFS Data Lake, where you will be able to run the machine learning training.

Azure Stack is a great way to bring the power of Azure to on-premise or at the edge. Microsoft Azure Stack supports large amounts of data ingestion using Event Hub and IoT Hub. You can also run Spark and other machine learning tools in Azure Stack. Machine learning solutions can be developed and deployed on Azure Stack without relying on Azure’s public cloud for disconnected scenarios. Azure Stack can be deployed at the edge location to enable intelligent edge computing, and provides a very secure environment while enabling machine learning, such as in the Microsoft Azure public cloud. Alternatively, you can train your models in Azure’s public cloud and do scoring on-premise. Azure data box devices can be used to enable the on- and offline transfer of data to Azure for further deep learning. Azure Stack also supports Microsoft’s Machine Learning Server for on-premise or edge deployment. SQL Server 2019, with machine learning services, will also run on Azure Stack. For analytics and reporting, you can run the Power BI Report Server on Azure Stack itself for powerful analytics capabilities on top of machine learning.

For machine learning at the edge, Azure Databox Edge provides many capabilities. It’s an AI-enabled edge computing device which has Microsoft’s Project Brainwave (DNN platform) based on the high-performance, Field-Programmable Gate Array (FPGA) for machine learning inferencing of images and video streams at the edge. It has Microsoft Azure IoT Edge computing platform intelligence, and enables analytics at the edge by deploying services like Stream Analytics, Machine Learning, Cognitive Services, and Azure Functions on the IoT Edge device. These services, and any containerized workloads, enable effective edge machine learning solutions. Microsoft Embedded Learning Library (ELL) enables executing optimized machine learning models on the edge and even on tiny microcontrollers. You can use Microsoft Azure Machine Learning Services to build and train your models in the cloud and then deploy them on the edge. Developers can use the AI toolkit for Azure IoT Edge to create AI applications for the edge.

If you are already on the cloud, you can use MLaaS offerings to speed up the solution. Microsoft Azure’s Machine Learning Service is a managed cloud service that builds, trains, and deploys models from the cloud to the edge using Python and CLI. With the power of the cloud, you can build better models faster. And once your models are ready, you can deploy them in containers to various computing services like Azure Kubernetes Service (AKS), Azure Container Instances (ACI), Azure IoT Edge or Field-Programmable Gate Array (FPGA). Once your model is in production, you can monitor its performance, then data drift and retrain as needed. You can also host Microsoft Azure Data Science VM which has many data science tools pre-installed and pre-configured. If your app needs to have cognitive abilities, use Azure Cognitive Services PaaS APIS in your solution; it has pre-built in AI/ML models and you interact with it using REST/SDK. If you want to host cognitive services within your solution instead of using Azure PaaS, you can containerize these services and deploy them with your solution.

What if you want to try out some data experimentations but you are not a data scientist? Look no further than Microsoft Azure Machine Learning Studio to quickly experiment with data. It’s a GUI-based drag-and-drop tool with built-in machine learning algorithms. If you are just getting started with machine learning, then Microsoft Azure Machine Learning Studio is a great way to understand the end-to-end process and algorithms, and how to build, test, and deploy machine learning solutions. Data scientists can also use this tool for initial exploration before they launch into a custom machine learning solution.

What if you are from a .NET background and want to write custom algorithms? Microsoft has created ML.NET for integrating custom machine learning in your solution for a .NET platform. It’s a cross-platform framework that’s extensible to other frameworks, and support for LightGBM, Accord.NET, CNTK, and TensorFlow is coming soon. If you are developing Windows applications, you can use Windows ML for hardware-accelerated inference in Windows applications. You can use trained models in Windows apps using Windows ML, which has an ONNX model inference engine. This speeds up machine learning development on .NET and Windows with high-performance hardware optimizations for CPU and GPU.

Microsoft is rolling out features for the intelligent cloud and intelligent edge faster than any other cloud provider. These products enable a great experience for consumers and businesses, answering “How do I get started with machine learning?”, all while making it easy for data scientists, machine learning engineers and software developers to develop machine learning solutions. Hopefully now you know what products to use, and if asked, “What is machine learning?”, you have the answer.

If you’re curious on what machine learning can do for your business, be sure to reach out to us here.

The article, “Driving Machine Learning Success with Microsoft Software”, is an independent publication and is neither affiliated with, nor authorized, sponsored, or approved by Microsoft Corporation.
Vishal Shah
Vishal Shah is a Sr. Solution Architect. Vishal brings his thought leadership, innovations, and team empowerment to Luxoft. With a focus on technology solutions, Vishal has helped architect and deliver highly scalable and secure products on the cloud.