The Microsoft Artificial Intelligence Landscape – And What to use When

Artificial Intelligence (AI), at its broadest definition, is simply “a machine that can act using human-style reasoning or perception”. Of course, the technologies used to enable that definition are far from simple themselves.

Artificial Intelligence isn’t new – I worked with “Good Old Fashioned AI” (that’s a real thing) back in the late 70’s and early 80’s. The promise of AI was higher than the technology allowed in those days, and so the AI field went dormant in the public’s mind. It had a resurgence a few years later, and now has returned with far greater options than we have ever had before. Breakthrough algorithms, understandings, and technologies now allow a far deeper use of AI – I’ll cover a few of these uses in another article. The hype this time, however, is (mostly) real. You’re using AI every day, and you can embed it in your applications for your users as well.

For the general public, AI is somewhat of a “black box”, with image recognition being the same level of difficulty to understand as language translation or even interpretation. But for the technical professional, some problems are already solved, and you can simply leverage them, and others you have to write yourself. In general, the more customization you need, the more you’ll need to write for your solution.

Define the Opportunity

The first thing to do of course is to define what opportunity you are solving for.  For instance, you might have a need to estimate the repair costs of a car accident, using only a photo uploaded from your client from the web. Or perhaps you want to translate between languages so that your firm can read a document sent from another country. You may have a need to analyze that document to find its sentiment or general meaning, or you may want to generate an automated response from the facts and data it contains. You may want to do route prediction for expense mileage tracking, or fill out a set of values using only an example. (You can find a few real-world examples for AI and Machine Learning here)

From No-Code to Deep Learning

Once you’ve defined the opportunity, the next step is to start at the very highest level of leveraging that you can. For instance, Microsoft Excel also has a feature (called Flash Fill) that will transform columns of data based only on an example.  In the case of mileage and route tracking, that’s already built into an application – so you could simply use that.

However, if you want to recognize road signs along the way, you could move up to an image recognition service. If you need to further process that image to read the text, there’s a service for that as well. If you want to determine if the sign is overhead or on the side of the road, you may need to customize that service further. Taking this example even further, if you want to determine the speed of the vehicle using only images of road signs as you pass by them by analyzing the angle of the edge of the sign, you may need to write some Machine Learning code to do that.

The point is to follow the progression of customization that you need. If the problem is solved, use that solution. If you need to customize the solution, that’s where you start to further leverage more tools.

Ensemble Approaches

Another point to keep in mind is that you can combine applications, services and custom-developed AI into a much larger and more complex solution. The “Intelligent Kiosk” is one such example, combining image recognition, handwriting and voice interactions, and even bots to form a complete solution.

The AI Landscape

With that background set, let’s take a look at a few examples of the options you have for working with AI in a solution.

Embedded Artificial Intelligence

You may already be using AI in your day to day work. Office 365 applications such as Microsoft Word and PowerPoint have adaptable suggestions and critiques to make your communications clearer.

PowerPoint also has a Presentation Translator, an add-in that can bring real-time captioning to your presentations, and even allows those captions to be translated to another language. Flash-Fill in Excel is an algorithm that examines an example of what you want and makes those conversions for you. Microsoft Dynamics 365 has built-in insights to Sales, Finance, HR and Customer Relationship Management embedded within the solution.

So what is the technical professional’s responsibility here? Education. I can’t tell you how many times I’ve shown companies the features listed here when they describe what they want to accomplish – only to have them say “We had no idea it already did this”.  No, you probably don’t have time to create or deliver that training, but we’ve done that for you. There are hundreds of training options built into the products, in the documentation, and in free training seminars from Microsoft – a quick web search will find them. Speaking of which, Microsoft Bing also has AI built in for searches, predictions, Autosuggest, image searches and more, and you can add those features to your applications using Bing Search as an AI API call.

Leveraging Artificial Intelligence in a Solution

Your next option is to use various Cognitive Services in your solution. These are cloud-based services that you simply call in an application (no AI algorithms to write, just use the service) using Python, Java, C#, even CuRL. Remember, you can leverage these together, using Vision to feed Language to feed Search and so on. Here’s a quick list:

Customizing Artificial Intelligence for a Solution

While services like the Vision API do most of what organizations need, there are times when you need to go a bit further and train or customize a service, again without having to know a lot about various Machine Learning and Artificial Intelligence algorithms and programming. This helps you get started faster, and as we make the services better, your apps automatically get better.

Here are a few of the options when you need one step above a fully automated API call:

Writing Your Own Artificial Intelligence Service

At times you’ll find there are certain requirements that a service just won’t handle on its own, nor is it customizable enough to do what you need. When I do an architecture, I start with as automated as I can, and then get “pushed” to the next level based on requirements.

When you do hit that level, there are multiple options still available. Microsoft tools and platforms support all major Data Science languages, such as Python, R, Node, Java, C++, C#, F#, SQL and more. These platforms work with TensorFlow as well as newer toolkits and integrate with Open-Source and commercial software platforms. Not only that, the offerings are tied with a formal process you can use for project creation through DevOps.

Hybrid Solutions

There are on-premises solutions as well – and these can also be used in a Hybrid solution so that you can work with local data or for compliance reasons:

Learning and References

There’s a full whitepaper you can download here on these options. And of course, we offer learning paths, a full AI School, and Machine Learning and AI programs on EdX.