With an ubiquitous spread of the cloud technology it is hard not to pay any attention to Machine Learning as a service solutions which provide the end users with a platform for machine learning experimentation and its integration with a variety of business applications. In general this concept opens up the machine learning world for a broader audience and reduces the effort and cost involved in developing and deploying models into production.
Therefore as the next logical step in my machine learning adventure I have decided to take a closer look at one of the similar existing kinds of the cloud services Microsoft Azure Machine Learning. It was launched in early 2015 and has been steadily gaining popularity over AWS Machine Learning, Google Cloud AI and BigML since then.
So, how to get started?
I found the one of the easiest ways to get a taste of Azure Machine Learning is to complete a series of hands-on labs published on GitHub a while ago.
The first step is setting up a Microsoft account if you do not have one. After sorting out an access you can opt for Free or Standard tier of Microsoft Azure ML Studio. For the hands-on labs I have used Free account with 10GB of storage, integration with web-services and Python (and R) support. The more detailed list of the provided features and the price can be looked up here.
Having a Microsoft Azure subscription will be handy to get through several exercises that cover an integration of predictive models with web-services and a monetizing of a machine learning solution.
What do you learn experimenting with the hands-on labs?
I must admit I haven’t thoroughly read through all the Documentation Microsoft provided for Azure Machine learning Studio. From what I have seen it appears to be well-written and understandable for a beginner level developers and various quick-starts and cheat-sheets to facilitate the development process. No exception with the labs.
I see Microsoft’s approach as a user friendly and mainly intuitive. Going through the labs I have been able to grasp the idea quickly and learn how things are organized in the Azure ML Studio. However I would say at least a basic knowledge of ML subject area and especially the structure of ML projects and idea about how APIs work would be highly desirable.
A few things have become more clear after finishing the exercises:
- The basic terminology used in Azure ML Studio (training experiment, predictive experiment, web-service, dataset, score model, evaluate model, etc);
- The structure of the user interface and function of the major components;
- The way machine learning process is organised in ML Studio;
- How to incorporate a bespoke R or Python code into the experiment;
- How to deploy the trained model as a web-service.
The Optical character recognition case study is designed to solidify the learned material by going through the whole process from training the model to monetizing of the service. All necessary code snippets and data files are published on GitHub and make the process quick and easy.
I have already mentioned in my blog that machine learning is a complex area that requires a deep knowledge of the algorithms and tools to setup and complete a project. Here the cloud solution might come in handy by offering a framework to solve ML problems. A visual drag-and-drop design is simpler in use than tedious coding. Azure Machine Learning offers a big variety of preset algorithms to plug-into the project to tackle anomaly detection, classification, regression or clustering problems and the community developed and published into Azure AI Gallery solutions.
By completing the hands-on labs I have not became an expert in Azure Machine Learning Studio but it has given me a high-level exposure to its functionality and an incentive to look at it in-depth further. And answer the common questions about performance in comparison to bespoke on premise solutions, understand the limitations and a fit of specific development practices like version control.
I definitely see Azure ML studio as a playground for the newbies in Machine Learning to get used to machine learning process structure, and get exposure to different algorithms. The similar use case scenarios are prototyping which can be done without manual coding or if you just want to understand if machine learning is for you before investing a huge amount of money into it.