Category Archives: AI

Auto Added by WPeMatico

AI Platform for Windows Developers

At Microsoft, we’re making huge investments in AI and Machine Learning across the company. AI capabilities in Office 365 help subscribers with productivity at work, intelligent features in the Photos app for Windows 10 make it easier for people to create videos and search through massive photo collections, and Windows Hello uses AI to recognize your face and get you quickly logged in to your Windows devices. We also use AI to answer your questions when using Bing Search and Cortana, to enable advertisers build deeper connections with customers, and to help security professionals safeguard businesses against modern threats. Microsoft Research continues to drive the state of the art with speech recognition, machine reading and comprehension, computer vision. We’ve scaled AI to tiny devices, and even built AI that can draw!

“Intel’s Movidius VPU technology will deliver increasingly sophisticated AI experiences for the hundreds of millions of Microsoft users worldwide,” said Intel’s Remi El-Ouazzane, Vice President and General Manager of Movidius.
With the next major update to Windows 10, we begin to deliver the advances that have been built into our apps and services as part of the Windows 10 platform. Every developer that builds apps on Windows 10 will be able to use AI to deliver more powerful and engaging experiences.

“AI acceleration on Window 10 PCs is the latest evidence of how artificial intelligence is becoming ubiquitous in our everyday lives,” said Ian Buck, vice president and general manager, Accelerated Computing, at NVIDIA. “NVIDIA is delighted to be partnering with Microsoft to enhance the PC experience for users worldwide.”
The AI platform in Windows 10 enables developers to use pre-trained machine learning models in their Apps on Windows devices. This offers developers a number of benefits:
Low latency, real-time results. Windows can perform AI evaluation tasks using the local processing capabilities of the PC, enabling real-time analysis of large local data such as images and video. Results can be delivered quickly and efficiently for use in performance intensive workloads like game engines, or background tasks such as indexing for search.
Reduced operational costs. Together with Microsoft’s Cloud AI platform, developers can build affordable, end-to-end AI solutions that combine training models in Azure with deployment to Windows devices for evaluation. Significant savings can be realized by reducing or eliminating costs associated with bandwidth due to ingestion of large data sets, such as camera footage or sensor telemetry. Complex workloads can be processed in real-time on the edge, with minimal sample data sent to the cloud for improved training on observations.
Flexibility. Developers can choose to perform AI tasks on device or in the cloud based on what their customers & scenarios need. AI processing can happen on the device if it becomes disconnected, or in scenarios where data cannot be sent to the cloud due to cost, size, policy or customer preference. 

“We’re excited to be collaborating with Microsoft on the Windows ML platform, and helping developers accelerate on-device AI performance on Windows laptops with the Snapdragon 835 AI Engine.” Gary Brotman, Director of Product Management – AI and Machine Learning, Qualcomm Technologies, Inc.
Our ML model evaluation is tuned for efficiency across the diverse silicon that runs Windows. By using instruction set optimizations on modern CPUs, hardware acceleration on GPUs that support DirectX 12, and a driver model for purpose-built AI processors in the future, we deliver performance and efficiency on the broadest range of form factors. With the update, developers can use the AI platform across the Windows device family, including IoT edge devices, HoloLens, 2-in-1s and desktop PCs, workstations, servers and in data centers.

“We’re excited to work with Microsoft on Windows ML as a part of taking advantage of the high-performance capabilities of AMD CPUs and GPUs to bring AI acceleration to Windows 10 PCs.” – Andre Zdravkovic, CVP Software, AMD
Windows supports ONNX, an industry standard format for ML models that is driven by Microsoft, Facebook, and Amazon Web Services, and supported by Windows IHVs including NVIDIA, Intel, Qualcomm and AMD. Data scientists can train and deliver ONNX models for use by Windows developers using Azure Machine Learning Workbench, and coming soon, the Azure Custom Vision Service will also support creating ONNX models for Windows.
We’ve also invested in delivering a great development experience for AI developers on Windows. Starting with Visual Studio Preview 15.7, adding an ONNX file to a UWP project will automatically generate a model interfaces in your project. For prior versions of Visual Studio, developers can use the MLGen tool to generate the code interface and then manually add it to their projects. This capability will be coming soon to Visual Studio tools for AI as well.
For consumers, this is just the beginning! You’ll see more intelligence in every day experiences on Windows devices. Developers can build AI powered apps that help you inspire and communicate in 3d, keep track of tasks and commitments more easily, and listen to music from playlists made just right for you.
You can learn more about our AI journey at Windows Developer Day on March 7, and at //build 2018.

Cognitive Toolkit Model Evaluation in UWP

We are excited the share with you that Microsoft Cognitive Toolkit (CNTK) 2.1 has added support for model evaluation on UWP applications. This means you can harness the power of deep learning in your Windows apps delivered via the Windows Store! Read on to find out how can infuse your apps with the power of AI.
The Virtuous Intelligence Cycle
Cloud-connected devices can perform operations locally or delegate them to the cloud. The virtually unlimited compute power of the cloud makes it a good choice for running tasks that need significant compute power but don’t require low latency. In machine learning, model training is an example of such a task. It might require hours or days to train a model, but once the model is trained, deploying it closer to where the data is generated has some very useful properties. First, it reduces the roundtrip latency inherently unavoidable in cloud communication. This is critical for time-sensitive deep learning scenarios like self-driving cars and industrial equipment failure detection. Second, it can unlock insights from data that were previously discarded due to network transmission costs. And finally, it allows machine learning solutions in scenarios with intermittent network connectivity like search & rescue, agriculture and others.
We refer to devices with non-trivial compute power that are in closer proximity to the data source as “intelligent edge” devices. Intelligent edge devices can vary broadly depending on scenario as shown in the figure below.

In the virtuous intelligence cycle, deep learning models trained in the cloud are deployed and evaluated at the edge. Additionally, the edge feeds valuable data back to the cloud where the models are improved and redeployed to the edge, hence completing the virtuous cycle.
The improvements described in this post allow UWP applications to be part of the intelligent edge where deep learning models can be evaluated.
Image Classification Example
Let’s look at an example where an image classification machine learning model is built into an UWP application. The app allows you to pick a CNTK compatible model to perform image classification on an image. Several pre-trained models to use for this purpose are available at this link.
The code for the entire solution is available in the CNTK Github repo.
Currently, only C++ CNTK UWP bindings are supported. However, the sample demonstrates how a C# based UWP solution can perform model evaluation by referencing a WinRT library that wraps the UWP-compatible CNTK native components available on NuGet.

packages.config specifies the NuGet packages the library uses, and points to the UWP-compatible package:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CNTK.UWP.CPUOnly" version="2.1.0" targetFramework="native" />
</packages>
 

This NuGet package provides UWP-compatible CNTK components, including the OpenBLAS math library, for CPU-based model evaluation. ImageRecognizerLib exposes Create and RecognizeObjectAsync methods used to load the pre-trained CNTK model and classify the specified image input as an array of bytes.
The rest of the solution is a few simple XAML UI elements to accept input from the user. Here is a quick animation of the app in action:

Now it’s your turn!
We’ve demonstrated how you can use the newly added UWP support in CNTK to bring the next level of intelligence to your Windows applications. We can’t wait to see the awesome apps you will build with this exciting new technology!