The Microsoft Ecosystem for Artificial Intelligence and Machine Learning
The dawn of artificial intelligence… hopefully the human race will map a date and place to it somewhere down the line in the future, if we survive the technological singularity that is… But then again, the technological singularity is (was?) a hypothesis, and a hypothesis is just that: a hypothesis.
Techno satire aside, the dawn of artificial intelligence is still yet to see the light of day (no pun intented). We are still progressing in the research of AI, and the difficulty is in the word ‘Intelligence’… it is a rather large bucket into which many definitions are thrown, and each research milestone that meets a particular criteria or definition will announce that AI is progressing the way it should. The positive aspect of this fragmentation and branching out, is that it has given root to so many of the advances we see in the world around us, from self driving cars, to personal assistants, to adaptive machines learning from the content we humans have produced.
The history of traditional AI research had its beginnings in the summer of 1956, at a Dartmouth workshop titled “Dartmouth Summer Research Project on Artificial Intelligence”. Most of the attendees there, would go on to become the leaders and experts in the field of AI. The workshop was not a very formal one, leaning more towards discussions and talks between individuals and groups, in the main math classrooom at the top floor of the college. Some of the outcomes of the workshop were symbolic methods, early ideas for expert systems, and ideas on deductive vs inductive systems. Of course, the advent of digital computers at around the same time (actually, earlier) was a great catalyst and platform to implement many of the ideas of AI research in practice. But it was here that many found out, creating the general AI everyone envisaged was not so easy.
Today, there is a major shift in AI research and trends. The areas of machine learning and deep learning networks have sprung up, and coupled with the power offered by cloud computing, has made major strides into areas previously unimagined. And unlike the past decades where AI was driven by the scientific community, the current paradigm shift is steered by enterprises and consumers, who are digitizing their everyday lives and experiences. Satya Nadella, the current CEO of Microsoft, made the following statement in 2016, at the world economic forum held in Switzerland:
This new era of AI is driven by the combination of almost limitless computing power in the cloud, the digitization of our world, and breakthroughs in how computers can use this information to learn and reason much like people do. What some are calling the Fourth Industrial Revolution is being accelerated by these advancements in AI, and this means that all companies are becoming digital companies — or will soon be.
This is an important statement that gives meaning and validity to the advances Microsoft has made in its own cloud platform and stack, Azure. The ‘new era’ of AI hinges on the fact that cloud computing has empowered the enterprise, science, technology, government, and society, to undergo the ‘Fourth Industrial Revolution”. In this regard, Microsoft has made many advances, and set the stage for some amazing ways of learning, utilizing, and working with AI and machine learning.
At times, the difference between AI, machine learning, and deep learning is a bit fuzzy. Historically speaking, AI gave rise to machine learning, and machine learning in turn gave rise to deep learning. The rise of machine learning was a shift in thinking, of how machines could learn from existing data, and adapt or change their behavior. This differs from traditional (enterprise) AI containing hard-coded heuristics, which were essentially knowledge based systems with well defined inference rules.
Deep learning is the new kid on the block, a sub-field of machine learning that is trying to work with algorithms inspired by how the human brain functions. It revived the study of artificial neural networks (which was lying dormant for a decade or two) because now we have the computing power (cloud computing again) to work with millions of neural networks meshed into a “Deep network”, and mimic how the human brain learns, better than any technology has ever done before.
In the context of enterprises and consumer technology, traditional AI systems made the human being a decision maker in the value chain. Machine learning systems can learn from existing data and predict results, events, patterns, and objectives, but humans still do take on the role of applying prescriptive actions based on these results. For exampe, in credit card fraud detection using machine learning, suspicious activity can be inferred using transactional data, but human actors need to take the next steps in terms of what to do based on that information. A major goal of machine learning is for machines to learn and apply prescriptive actions, removing the human altogether from the equation (see image below).
Coming back to the cloud technology stack and ecosystem provided by Microsoft for AI, machine learning, and deep networks, the latest cutting edge offering is the Cortana Intelligence Suite (CIS). This is a collection of cloud technologies and tools, that enables anyone to build end to end advanced analytics systems and pipelines. The short (but comprehensive) channel9 video at this link by Buck Woody from the machine learning and data science team at Microsoft, gives a great overview of the CIS stack and its components. The below image also shows the individual components of CIS, and the general direction of data flow:
The components of the CIS stack are as follows (given below in no specific order, but the list roughly starts from where data is consumed, and finishes where informative decisions are made or automated):
- Azure Data Catalog – This is a metadata repository provided for all kinds of data sources, which is available for discovery by users. Whether on-premise or off, any data that is discoverable will be tagged and labeled here, and provide users with easy access to locating data, and remove any duplicate effort related to data collection.
- Azure Data Factory – The data factory is used to orchestrate data movement. Data from disparate sources and systems need to be moved around in the pipeline or advanced analytics system being implemented, and the data factory helps move around all this data within the system wherever it is required.
- Azure Event Hub – This is a very high performant telemetry ingestion service ,which can be used to consume and store event data from millions of events generated by IOT devices, sensors, and other hardware or software components which raise events of very large volume, variety, and velocity.
- Azure Data Lake – The data lake is used to store very large amounts of structured, semi-structured, and/or unstructured data. The data lake is composed of two parts: the data store, and a query mechanism whereby many languages can be used to query the ‘lake’ of data available. Data lakes are usually used to store mega large volumes of data in their raw native format, till they are needed by a system or a process.
- Azure SQL DB, Data Warehouse, DocumentDB – These are all used to store and relate the data in a system, with Azure SQL DB being the usual MSSQL offering on Azure. Azure DW is a cloud data warehouse solution which is highly scalable. Azure DocumentDB is the NoSQL database hosted on Azure, and is similar to other document based databases, but offers higher performance and scalability. A great case study of DocumentDB is when Next Games used it as the backend for their mobile game ‘The Walking Dead – No mans land’.
- Azure Machine Learning, Microsoft R Server – Azure ML and R Server, are the environments where the learning takes place. Predictive analytics and models are created using the data available, catering to many different consumers. Keep an eye out, as I will be posting more articles on machine learning using Azure ML studio.
- Azure HDInsight – This is Microsoft’s Hadoop infrastructure implementation, which is Apache compliant, with loads of functionality and features added on top of it. If you are thinking Big Data, this is what you need.
- Azure Stream Analytics – Sometimes, the data that we need to analyze is produced realtime, and has a very high production velocity. It may be the case that this kind of data needs to be analyzed in realtime (or near-realtime), as and when it is created, and this is where stream analytics comes in. In scenarios where IOT devices, sensors, vehicles, etc. are producers of high velocity data which needs to be processed and analyzed in real time, streaming analytics can provide endpoints for consuming and analyzing this data.
- PowerBI – This is Microsoft’s visualization tool. This is where data comes in and you can get rich visualizations out. Available as services for being consumed by a variety of clients, and also offered as a desktop client and app for mobile devices.
- Cortana, Cognitive Services, Bot Framework – These are programming environments exposing services which can be used to build interfaces where human computer interaction takes place. Here we would like to ‘talk’ to the system and get insight, answers, predictions, and suggestions, from all the data processing we did in the pipeline. Cortana is the well known digital assistant in windows devices, but also it is an API which you can program against. Cognitive services are a set of APIs ranging from text, image, and speech recognition, to translation and content recommendation, and much more. Finally, the Bot Framework is a great tool to build interative and intelligent bots, that can help and converse similar to a human being interacting with you.
So, in a nutshell, that’s the spectrum of technology and tools you would be working with in the CIS stack. Of course, you are not required to use each and everything listed above. Rather, you would select the tools that work best for your requirement, and build your customized implementation accordingly.
Imagine a scenario, where the executives in your enterprise task you with building a complicated advanced analytics system, in order to better leverage business intelligence and predictive analytics for improving all facets and units of the business. Now imagine doing it using in-house software and hardware, purchasing tools and licenses that will cost thousands of dollars, and programming from scratch to utilize in-premise nodes and clusters to do powerful computing and number crunching.
If you look at the cost and effort associated, and compare it with the fact that I can login right now to Azure ML studio for free (using my msn id), and build a predictive analytics model and host it as a web service within a few minutes to an hour or two, you can see how powerful and cost effective the CIS really is. Of course a real world enterprise requirement would take much more time than that (my example was overly simple), but it would still be far more cost effective and simple to use CIS and focus on the (business) matter at hand, rather than dealing with the mechanics, internals, algorithms, data pipelines, storage, VMs, and all the bugs of a custom solution build in-premise from scratch.
Keep an eye out as I will be posting more articles in the upcoming weeks, dealing with building end to end analytics solutions using the Cortana Intelligence Suite, machine learning models with Azure ML studio, and concepts/algorithms in machine learning and deep nets.