Everyone\u2019s favorite new buzzword is \u2018machine learning\u2019 (or \u2018ML\u2019) but what exactly is ML and how is it already transforming everyday life and business? We chat with Microsoft engineers about machine learning and the significance of Windows ML, a new AI platform for developers available through the upcoming Windows 10 update. We cover how ML is changing the field of app development and how developers can get started with Windows ML. Finally, a Windows Insider gives us a tour under the hood of his app and discusses how machine learning is baked into the app\u2019s evolution.
\xa0
Episode transcription
\xa0
JASON HOWARD:\xa0 Welcome to the Windows Insider Podcast.\xa0 I'm your host, Jason Howard, and you're listening to Episode 14, What's Up with Machine Learning?\xa0 In this episode we chat about ML, its future influence on app development, and the impact of Microsoft's recent Windows machine learning announcement.\xa0 Here in the studios with our first guests is Dona Sarkar
\xa0
DONA SARKAR: \xa0Hi.\xa0 I'm Dona Sarkar, Chief Ninja Cat and head of the Windows Insider Program
\xa0
I'm here today in the studio with some special guests from Microsoft to talk all about everyone's favorite new buzzword, machine learning.
I would love for our guests to introduce themselves.\xa0 Clint, would you like to go first?
CLINT RUTKAS:\xa0 Hi.\xa0 I'm Clint Rutkas.\xa0 I am a Windows developer community champion.\xa0 So if you guys have APIs you want in the system, please talk to me.
DONA SARKAR:\xa0 Exactly.\xa0 You'll see him on Twitter a lot talking about the Windows SDK.\xa0 So for all of your Windows SDK needs, tweet @ClintRutkas.
And then Lucas.
LUCAS BRODZINSKI:\xa0 Hi.\xa0 I'm Lucas Brodzinski.\xa0 I'm the program manager lead of the Windows AI platform team.
DONA SARKAR:\xa0 That is awesome.\xa0 What does that mean?
LUCAS BRODZINSKI:\xa0 Well, we're teaching the robots how to think.\xa0 You know, we've added capabilities to Windows for people to do machine learning inference on the edge.\xa0 So we're introducing the intelligent edge to Windows.
DONA SARKAR:\xa0 That is really cool.\xa0 Thank you for joining us.
LUCAS BRODZINSKI:\xa0 Thank you for having me.
CLINT RUTKAS: I actually think it's even more than that.\xa0 Think about we're adding machine learning, the ability for every Windows device, not just desktop, device, to be able to do machine learning.
So I think the big question is like, what is machine learning and why do we care?
DONA SARKAR:\xa0 That's exactly the very first question I have for both of you, which is let's go all the way back, back, back.\xa0 What is machine learning and why is it different than AI?
LUCAS BRODZINSKI:\xa0 Cool, totally.\xa0 So the way to think about AI and machine learning is machine learning is a subset of AI.\xa0 The whole concept of AI is you're trying to get a computer to act intelligently, kind of like a human would.\xa0 So you can get a computer to do a function like a human would and get a response from the computer as a human would.\xa0 Machine learning is a specific technique to try and do that.
So for instance, if I'm having a conversation with you guys in real life, like I am right now, you know, I can read your facial expressions and I can kind of change my approach to the conversation based on the facial expressions you guys are giving me.
So that's my intelligence.\xa0 And we would love to teach computers to be able to react to human interaction in that way.\xa0
One potential technique to go about doing that is emotion detection, which there are machine learning models to do.
However, machine learning is this technique towards building out this larger intelligence, which is AI.
CLINT RUTKAS:\xa0 So I think the question is, why would you use machine learning?\xa0 Let's say for whatever reason you want to build out a vegetable detector.\xa0 Let's say I wanted to detect a carrot versus broccoli versus cauliflower.\xa0 So what is a carrot?\xa0
So would I do it based on color?\xa0 So I have an if-statement that says, okay, well, if it's shaped kind of like a triangle, if it's orange and it's roughly this long in the photo, that's a carrot.
Well, there's purple carrots.\xa0
DONA SARKAR:\xa0 Right.
CLINT RUTKAS:\xa0 So now I have to add in an additional if-statement there.
And then, okay, well, now, what's the difference between a carrot and broccoli?\xa0 That's a bit more easy.\xa0 But what's the difference between broccoli and cauliflower?\xa0 If you ask a kid that doesn't know, has never seen them, they might go like this is a baby version of that.
So all those things, once you start having to factor in more and more and more, that code becomes extremely unwieldy, and then that's when machine learning comes in, because now you can start giving -- start training your model, this is exactly what a carrot is.\xa0 Here are all the different examples, all the different images we have of carrots, from different angles, different viewpoints, different coloring, different variants.\xa0 Same thing with broccoli and cauliflower.\xa0 And then magically now we can start getting high confidences with that model, and all I had to do was call a couple lines of code.
LUCAS BRODZINSKI:\xa0 You hit it really on the nail there.\xa0 There are some problems that what we face as developers, you know, our human intuition can solve that problem very, very easily and quickly.\xa0\xa0 However, when we sit down to write code to fix that problem, it gets a little hard.
So, you know, to write the code to detect the difference between two different types of apples can get pretty challenging.
An example, the cool thinking about machine learning is, like you said, it creates this model that abstracts that problem away from the developer, so the developer can feed a model on input, an image of an apple.\xa0 The model does a lot of computational work to figure out the small nuance differences between different species of apples based on all the training dataset that went into making that model, and the developer just gets an answer of what type of apple it is.
DONA SARKAR:\xa0 So just to cut you both off for a second rudely, what is "the model?"\xa0 You guys are saying, train the model, you know, give the developer the model.\xa0 What is that?
CLINT RUTKAS:\xa0 Okay, so I think maybe a good thing we should probably talk about machine learning is maybe how it works and what are the big components.\xa0 So you have an engine, the inference engine, you have I'll say the training system, and then you have the model.\xa0 The model is actually what is kind of evaluated.\xa0 So if you said, is this an apple, you give the system the model of what is an apple.\xa0 Is that a good way to think about it?
LUCAS BRODZINSKI:\xa0 Yeah, the best way to think about it is, given this large set of data, you can train on that data, which basically means you apply a lot of math to it, and you come up with an algorithm that notices patterns, that can solve functions.\xa0 And all of that is contained within this model.\xa0 So the model is the thing that describes the data that you fed it during training.
DONA SARKAR:\xa0 I see, okay.
CLINT RUTKAS:\xa0 And then you have the inference engine, and the reason why it's called an inference engine is because we're not 100 percent confident.\xa0 So we're inferring is this thing an apple.\xa0 It may be an apple, we may be 99 percent sure it's an apple, but we're not 100 percent sure.\xa0 So it's not a definitive answer, but you have to have a confidence that, yes, if it's, you know, let's say above 80 percent, we're pretty positive this is an apple.
Speech recognition is a great example of this where you may say, turn on the lights.\xa0 It's going to give you a fairly high confidence rating if the model properly interpreted your natural language, but it's never 100 percent sure.
DONA SARKAR:\xa0 That's right.\xa0
And do you feel like right now machine learning has already taking over our lives a little bit, that it's already kind of infiltrated tools and services that we use on a day-to-day?\xa0 Do you feel that that is true?\xa0 And if so, what are some examples that normal people will understand?
LUCAS BRODZINSKI:\xa0 Yeah, totally.\xa0 So, you know, the most recent example is if you look at the Windows photos app, you can actually go into the photos app and type in what you want to search for.\xa0 So you can type in "dog" into the search field, and suddenly, all of your photo albums will be searched for what the computer thinks is a dog inside the picture.\xa0 And as a user, you're presented with all the pictures that have a dog in it.\xa0 And that's using machine learning to do image classification and find specific things and images, in this case being a dog.
DONA SARKAR:\xa0 That's pretty awesome.
CLINT RUTKAS:\xa0 Yeah, think about all the speech recognition that is in the world now.\xa0 So if you have let's say an Amazon Echo Dot or a Harman Kardon Cortana device, if you talk to it, that's machine learning.\xa0
You have machine learning built directly into Windows.\xa0 If you search as well, that's all machine learning.\xa0 If you go to a search engine, that's machine learning.\xa0 There's tons of areas in our lives that we have it, we just don't realize what's it's called yet.
DONA SARKAR:\xa0 So we think of it more like computing rather than machine learning?
CLINT RUTKAS:\xa0 Yeah.\xa0 I mean, machine learning I view it as it's much more of a topic programmers care about, because it either benefits or hurts us the most when it comes to programming what we need to program.
As an end user you just want your answer.\xa0 It's like going to a restaurant.\xa0 You don't care how the food is made, as long as it's made sanitary, but you get the food and you're happy.\xa0 You don't care if it's one person making it or 20 people making it, you just get your yummy food.
DONA SARKAR:\xa0 Okay.\xa0 So that phrase, machine learning, is quite buzzy these days.\xa0 Everyone thinks they're working on machine learning or want to work on machine learning.\xa0 And I think it was the most used term in job descriptions last year.\xa0 That and AI.\xa0 So why do you think people, who may not be technical, are so excited about this phrase?\xa0 What do you think is the potential like going forward?\xa0 We know it's been used a lot, but how can it be used to transform all these other somewhat old school industries, like think hotel, transportation, manufacturing, et cetera?
LUCAS BRODZINSKI:\xa0 Sure.\xa0 So, you know, I think we're living in this time where you really have two massive things coming together to kind of fuel all this.\xa0 One of it is data.\xa0 There's a lot of data out in the world.\xa0 And the key thing for machine learning is you need a lot of data to be able to rationalize over.\xa0 The other part of it is having access to a lot of compute.\xa0 The process of training a machine learning model can be quite rigorous from a computation perspective.\xa0 And we're at a point where these two technologies as a for instance having the data and having the compute power have come together.
And when you think about sort of all the cool end user scenarios that are possible, I mean, wouldn't it be great if we could have systems that, based on sort of the weather forecast, could predict what kind of hotel availability may be available in a specific city?\xa0 That's just one example of how you can make sense of all this data that's around us in a way that could benefit a user.
CLINT RUTKAS:\xa0 So think outside just the user, think about how this could benefit humanity.\xa0 So with machine learning think about growing crops where you can directly use machine learning and models to determine is this a good area for that crop, is something bad happening, should we create targeted pesticide usage versus just blanketing everything.\xa0
Or disaster recovery potentially.\xa0 Like there's so many different areas where you could do things smarter and faster with machine learning.
Manufacturing is another great example.\xa0 We showed this at Windows Developer Day.\xa0 Imagine you're building out a circuit board, and for whatever reason something hiccoughs and a single transistor is skipped.\xa0 With machine learning you can quickly look at it and say, oh, this is missing.\xa0 And it's the same model then that would detect if a capacitor was missing, for the most part.
I'm looking at Lukas to verify.
LUCAS BRODZINSKI:\xa0 Yeah, no, that's exactly right.\xa0
CLINT RUTKAS:\xa0 You can use that same thing, and then now rather than have to do a recall of, you know, 100,000 units, you caught it before it even shipped out.
DONA SARKAR:\xa0 That's right.
LUCAS BRODZINSKI:\xa0 Yeah, and, you know, to build on that example, there are cases where in order to make sense of the data that's available today requires a lot of specialized expertise in an area.
DONA SARKAR:\xa0 That's right.
LUCAS BRODZINSKI:\xa0 And sometimes, that expertise is not always available.\xa0 With machine learning what you can do is offer the computer to make sense of all the data that a human expert would have accumulated over years, and make some predictions that, you know, the hope of machine learning is to create a model that is accurate enough to sort of mimic what a human would have done in that situation.
And that's the really cool part about it, too, because you're potentially unlocking a lot of scenarios where we just don't have enough human experts to do something, and the machine could help in those cases.
DONA SARKAR:\xa0 That news article that just came out, like the farmers in India who are figuring out how to grow crops more efficiently using machine learning, because they definitely don't have the computational expertise to look at petabytes of data on crop growing, so they've been using machine learning to do that, I thought that was such a cool story.
CLINT RUTKAS: Yeah.
LUCAS BRODZINSKI:\xa0 Yeah, totally.
DONA SARKAR:\xa0 That applies in like every country in the world, agriculture as a thing, so yeah.
Okay, so recently, Microsoft, we made a big announcement about the next Windows 10 update and machine learning.\xa0 Do you mind sharing with our listeners what the announcement was?
CLINT RUTKAS:\xa0 So in Windows 10 Version 1803,\xa0Windows Machine Learning is built in. So that means every system that is running version 18.03 will have machine learning built-in.\xa0 And it smartly takes over.\xa0 If you're on a GPU, it will leverage the GPU.\xa0 If your device only has a CPU, it will only leverage the CPU.\xa0
As a programmer you also have some toggle so you can pick and choose.\xa0 This also runs on basically any system -- correct me if I'm wrong here, Lucas -- that runs 18.03, it will just work.
LUCAS BRODZINSKI:\xa0 Yeah, and the cool thing about it is what we've announced that's going to ship in our next major update is a preview that solves a bunch of problems for developers.
So historically, when a developer has approached machine learning problems, there was a couple of barriers of entry that made the process a little hard.\xa0 So first, as a developer you would have to figure out, hey, I have this model file that came from somewhere.\xa0 And that somewhere could have been one of a handful of different training frameworks.\xa0 And each one of them had its own sort of file format associated with it.
And the very first task you would have to do as a developer is to ask, well, given this model, I need the corresponding evaluation engine that ships with my software to be available to evaluate this model.
With Windows ML we've taken that pain point away, because every single version of Windows has Windows ML in it and is able to evaluate that model.
The other problem was having these handful of different training frameworks and different formats meant that as a developer you had this giant format issue of, hey, there's like, you know, six or plus different formats.
So, Windows ML has the ability to take an Onyx as a model an input format.\xa0 Onyx is something that we're working with industry partners to standardize as the format exchange for ML models.\xa0 So as a developer that problem's gone away, too.
CLINT RUTKAS:\xa0 And we have conversion tools to get your existing models onto Onyx as well.
DONA SARKAR:\xa0 Oh, that's nice.
LUCAS BRODZINSKI:\xa0 Yeah, exactly.\xa0 And there's already frameworks that can produce Onyx natively as well.\xa0 So Azure machine learning can output Onyx today.\xa0 CNTK has a (for in-sys?) to save files as Onyx as well.\xa0 And more frameworks will be coming online and the converters are there.
But thirdly, and you touched upon this point, Clint, as a developer sometimes I need extra computational horsepower in order to evaluate a model.\xa0 I want to be able to use the hardware that's on my clients' machines.\xa0 And previously, as a developer I would have to target hardware specifically and not in an abstract manner.\xa0 So I would have to know what hardware specific GPUs are available on my customer's machines and write code specific to those GPUs.
With Windows ML we've abstracted that hardware problem, and as Clint said, we can do model evaluation on any DirectX 12 GPU or the CPU, and the developer can choose or let Windows decide which one to use.
DONA SARKAR:\xa0 That's pretty cool.
CLINT RUTKAS:\xa0 And what's even cooler is it's built to be future proof, I guess future proof with quotes.\xa0 So we announced this at Windows Developer Days is that it will also work on an MVPU.
LUCAS BRODZINSKI:\xa0 Right, so what we want to do is we recognize there's a bunch of new ML silicon out in the world that's not exactly a GPU.\xa0 But we want to be able to talk about to the silicon in a way where a developer doesn't have to make this decision about, well, how do I talk to that hardware specifically.
So at Windows Developer Day we showed an early engagement with Movidius, which is Intel's vision processing unit, to be able to do evaluations using this driver model that we're working on in order to bring these devices into Windows.
CLINT RUTKAS:\xa0 So imagine in the future you have a device that has one of these chips.\xa0 Windows ML will just leverage what the best item you have available on your system.
DONA SARKAR:\xa0 Right, without you having to do a bunch of extra work and learn this new thing.\xa0 Okay, that's cool.
So machine learning technology now in Windows, super exciting, but what made you guys on the team actually working on it decide to include it in the 18.03 update?
CLINT RUTKAS:\xa0 So we've been working on this for years in various different ways, in various different subsystems.
So I think the better way to think about it is how long it takes to actually get a feature into Windows.\xa0 Windows is everywhere.\xa0 It's in servers, it's in desktops, it's in a plethora of devices.\xa0 So we've been working on features like this and many others, and it takes years for it to actually get here.
So building out all the needed required items took a bit, and now it's finally in a state where we can ship it externally and allow developers to start getting their hands on it and really get their hands dirty, without us literally changing out the plumbing back and forth.\xa0
It's one thing for us inside of Microsoft to have to deal with some of this stuff, it's a totally another thing when an external developer has to deal with that kind of sausage making.\xa0
So now we feel that it's strong, it's in a shippable state, and we'd love to get feedback and developers to start using it.
LUCAS BRODZINSKI:\xa0 Yeah, and on Clint's point, we've been doing this for a long time.\xa0 We've had a lot of investments in our cloud solutions around AI.\xa0 So Azure Machine Learning allows you to do machine learning training.\xa0 We have Cognitive Services that allow you to use prebuilt AI in the cloud.\xa0 And as Clint was saying, we've finally got it to a point where we were in need of allowing developers to make the edge intelligent as well and do some of these operations without necessarily being able to talk to the cloud.
DONA SARKAR:\xa0 That's right.\xa0 That is awesome.\xa0 It sounds like this introduction to Windows machine learning is really going to change the game for app developers going forward.
LUCAS BRODZINSKI:\xa0 Yeah, totally.
DONA SARKAR:\xa0 So Windows machine learning is here, it's in the product by the time this podcast airs, any app developer can use it.\xa0 It's in preview, so that's to be noted.\xa0 But how do you foresee the field of app development changing as a result of introducing this technology?
LUCAS BRODZINSKI:\xa0 Yeah.\xa0 Well, just imagine the intelligence that you can introduce to your app if you had the ability to recognize patterns but not necessarily having to write all the code to do that.
So for instance, if you could, given a camera input, realize that, you know, there are these two people standing right in front of me, they're wearing maybe a red shirt, and I know if they're wearing a red shirt they're particularly a vendor at an event.\xa0 So maybe I want to provide them with some information about the event.\xa0 Imagine sort of all the code that you would have to write if you were going to do that without machine learning.\xa0
So one of the exciting things is developers will be able to take on these way more rich scenarios in a way that doesn't require them to write this code.\xa0 Now, I think that's just going to unlock like a giant cloud of creativity around how devs approach this space.
CLINT RUTKAS:\xa0 And I think that's one amazing example.\xa0 The other amazing example to me is it allows developers to start doing AI computing on the edge.\xa0 And when we say on the edge, it's the end developer system.\xa0 There's still times where you're going to have to go up to the cloud and leverage that big horsepower availability in the cloud.\xa0 But as a developer you can't do everything in the cloud because of latency for between calls.\xa0 Imagine you're dealing with a $30 million device that must have micro-millisecond precision.\xa0 I'm not sure if I just made up a term, but I just made up a term.
DONA SARKAR:\xa0 That's cool.
LUCAS BRODZINSKI:\xa0 And that roundtrip for going up to the cloud and back could be too big of a gap.\xa0 But there are also times where, hey, I might have to make a decision, my model locally is unsure of what's going on.\xa0 Then I can go send that query up and leverage that big, rich horsepower of the cloud and get a much more definitive answer.\xa0 So you can start doing cost reductions and everything and just make the most of what you have available to you as a developer.
DONA SARKAR:\xa0 That's really cool.
LUCAS BRODZINSKI:\xa0 Yeah, totally.\xa0 I'll totally sum it up as doing intelligence on the edge so machine learning evaluations on the edge gives you performance, it gives you scalability, and it also gives you flexibility.\xa0 I mean, there's going to be times where you want to be able to do machine learning evaluations, but you can't send your data to the cloud, whether it's due to customer preferences, whether it's due to no connectivity.\xa0 Having Windows ML allows you to do that on the edge in those cases where you couldn't do it otherwise.
DONA SARKAR:\xa0 That is really, really awesome.\xa0
So these are all of the upsides and all the goodness.\xa0 Are there any unknowns or challenges that you two can foresee?\xa0
Radio silence on the radio.
CLINT RUTKAS:\xa0 Okay, so I would say an interesting thing is it's a new skillset for people to start thinking about.\xa0 Some people may think of it as, okay, so I have this model.\xa0 This model, I didn't code it, I don't know what's in it, I don't know how to debug it.\xa0
But at the same time, to me as a developer when I step back and I think about it, I'm okay with that.\xa0 Because you can start verifying your inputs and your outputs.\xa0 You can also to be sure like, hey, I've done enough unit testing, I trust this thing.\xa0
Also, think about all the APIs you call where you didn't code that thing.\xa0 I got this external library from someone.\xa0 I didn't code it.\xa0 I can't directly debug it.\xa0 But I'm okay with that.
To me it's the same concept; it's just another skill, it's another tool in your toolbox to make you a more productive developer.
LUCAS BRODZINSKI:\xa0 Yeah, I think for me where there's a challenge there's an opportunity, and I think one of the coolest aspects of this is we're going to see two communities that in the past may not have had the closest collaboration start getting really, really close together.
And really what I'm talking about there is the data science community and the developer community.
DONA SARKAR:\xa0 Ah, yeah.
LUCAS BRODZINSKI:\xa0 And when you think about it, you know, historically, the data science community has made these like massive advancements in machine learning, and a lot of these advancements were geared at, hey, how do I get better accuracy out of a model, how do I create a new algorithm to do something that just wasn't possible before? And those are great.
From a developer perspective you may have some other concerns that you have to worry about.\xa0 So, for instance, you might be worrying about, well, how do I get an answer within, you know, some small, little, tiny threshold of time to make my app useful, how do I do that in a way where, for instance, my install size is not massive?
And I think you're going to start seeing these two communities come together and start sort of cross-pollinating needs, wants, desires, and together being able to train and also operationalize, you're just going to see the space evolve huge.
DONA SARKAR:\xa0 That is amazing.\xa0
So you guys can be super honest, do I need to call Sarah Connor on the phone?\xa0 Are we going to be ruled by machine overlords?
LUCAS BRODZINSKI:\xa0 You should always have Sarah Connor on speed dial.
DONA SARKAR:\xa0 So guys, for a dev like me who has written UWPs and Win32s, how can I get started on machine learning the hell out of my app?
CLINT RUTKAS:\xa0 So my opinion is go to some of the galleries with models already ready.\xa0 This is how easy it is to start getting coded once you have an Onyx model, which you can download any model right now, convert it.\xa0 All you have to do is take that Onyx file, drag it into Visual Studio, into your UWP, I believe also Win32.
LUCAS BRODZINSKI:\xa0 We have Win32 and UWP APIs.
DONA SARKAR:\xa0 That's cool.
CLINT RUTKAS:\xa0 So you drag it in to your solution, it auto-creates the CS file for you.\xa0 From there you get basically your input, your output and your engine.\xa0 And basically, you load your model and you call evaluate and you parse your results.\xa0 It's basically three lines of code, really.
LUCAS BRODZINSKI: Yeah, totally.\xa0
CLINT RUTKAS:\xa0 I made it sound really simple.\xa0
LUCAS BRODZINSKI: No, but you know what, it actually is that simple.\xa0 The great thing is with the (for in-sys?) that we added to Visual Studio, as a developer if you have this Onyx file, you don't have to worry about what's inside of it.\xa0 We've done our best to expose sort of all the nitty-gritty in a way where you're kind of just plumbing your data types from your apps to data types that the model expects.
My way of getting started actually uses some of our other tech that we have in the cloud today.\xa0 The easiest thing to remember is there's three steps to starting Windows ML.\xa0 You have to load a model.\xa0 So that means you have to have a model.\xa0 You take some inputs from your application, you bind it to Windows ML.\xa0 And then you call evaluate.
So how do you get that model? \xa0My favorite way of getting a model is using customvision.ai, which is a service that Microsoft offers to allow you to classify a bunch of images with labels and create a model that basically allows you to feed new images and detect whatever labels you added to the images in the training set.
Once you have that model, you bind your application data, whether, you know, it's a picture that you loaded or something from the camera, and you call evaluate.\xa0
If I wanted to make an app that, going back to the apple example, detects different types of fruit, I could feed a bunch of images of various types of fruit, each labeled with what fruit is in the image, into customvision.ai, and it will go off and do all the training for me, and just give me a model file that I can then go use in my application.
DONA SARKAR:\xa0 That is cool.\xa0 So say your family, you can take pictures of all of them, label who they are, and then build like some sort of family tree thing.
LUCAS BRODZINSKI:\xa0 Exactly.
DONA SARKAR:\xa0 That's really, really awesome.
CLINT RUTKAS:\xa0 In all fairness, it's more than a couple photos.
LUCAS BRODZINSKI:\xa0 Family reunions will never be the same.
DONA SARKAR:\xa0 Yeah, all of them.
CLINT RUTKAS:\xa0 I'm going to need to take a photo of every angle from you.\xa0 That'd be great, yeah.
DONA SARKAR:\xa0 Ah, okay, there you go.
Well, you guys, it's Friday night and I know what I'm going to do.\xa0 I'm going to go home and ML the hell out of my UWP is what I'm going to do.
LUCAS BRODZINSKI:\xa0 Awesome.\xa0 Love to hear it.
DONA SARKAR:\xa0 Because we are cool like that.
LUCAS BRODZINSKI:\xa0 That is the way to spend a Friday evening.
CLINT RUTKAS:\xa0 I know.
DONA SARKAR:\xa0 Clint and Lucas, thank you so much for being here and talking to Windows Insiders about ML.
Many of them are coming to Build.\xa0 They're going to be insanely excited about this.
CLINT RUTKAS:\xa0 I cannot wait for Build.
DONA SARKAR:\xa0 I am very excited for Build.
And I'm going to go and actually try to ML some stuff.\xa0 And when I get stuck, I know who to call.
Thank you so much for being here.
LUCAS BRODZINSKI:\xa0 Thanks for having us.
DONA SARKAR:\xa0 Have a wonderful day.
CLINT RUTKAS:\xa0 Thank you.
DONA SARKAR:\xa0 Bye.
JASON HOWARD:\xa0 As our previous guests have mentioned, machine learning is a pathway to achieving artificial intelligence or machines that can make decisions like humans, only faster and more efficiently.\xa0
Machine learning is built into the AI of so many everyday tools.\xa0 For example, Cortana can chat with you about your favorite sports team, because its chitchat function is continually learning from users how to talk about a variety of topics.
How are developers from around the world tapping into the power of machine learning and AI?\xa0 Up next, we take a tour under the hood of an AI bot built by a Windows Insider from Kenya.
Irving Amukasa was awarded an Insider's for Good fellowship from Microsoft for his innovative work with an artificial intelligence app.
IRVING AMUKASA:\xa0 Yes!
JASON HOWARD:\xa0 SophieBot answers user questions about sexual and reproductive health.\xa0 Anything you've been curious about but too embarrassed to ask, SophieBot will happily answer.
Welcome to the show, Irving.\xa0 Thanks for joining us.
IRVING AMUKASA:\xa0 Thanks for inviting me.\xa0 I'm really honored.
JASON HOWARD:\xa0 So I'm going to ask you a tough one, because doing live demos is always a tricky proposition.\xa0 Is it possible to open SophieBot and ask her a question so we can hear her?
IRVING AMUKASA:\xa0 I hope the sound is good.\xa0 Let's see if she can talk well.
SOPHIEBOT:\xa0 Hi there.\xa0 I'm Sophie. What would you like to know?
IRVING AMUKASA:\xa0 What is sexual health?
SOPHIEBOT:\xa0 Good health is considered to be a state of complete physical, mental, and social wellbeing, and not merely the absence of diseases or infirmity.\xa0 The principles of sexual health are the same.\xa0 Physical wellbeing means good health and hygiene for your genitals and related systems.\xa0 Mental wellbeing means feeling okay about your sexual desires and needs and not guilty or depressed about them.\xa0 Social wellbeing means not facing social discrimination because of your sexual desires and needs or because of any problem that may result from unsafe sex.\xa0 The combination of all these factors makes for a sexually healthy you.
IRVING AMUKASA:\xa0 You have the option to turn off that sound.\xa0 Before, it is text, no sound.
JASON HOWARD:\xa0 It sounded like she gave a very thorough answer.
IRVING AMUKASA:\xa0 Yes.
JASON HOWARD:\xa0 So let me ask you, what were the existing challenges that prompted you to design SophieBot?
IRVING AMUKASA:\xa0 Yes, first thing first is this side of the world, it's awkward and hard to talk about sexual health openly.\xa0 To even ask a question is even close to taboo.\xa0 And sexual health workers and centers aren't as friendly.\xa0 That was problem one.\xa0 Problem two is the lack of verifiable information out there.\xa0 So those two main problems helped us design SophieBot.
JASON HOWARD:\xa0 So part of it was the stigma of actually asking those questions, but the other half of it is making sure that the answers you're getting are true and correct and will actually, you know, guide you in the right direction.
IRVING AMUKASA:\xa0 Yes, that's it.
JASON HOWARD:\xa0 Here at Microsoft we've found that a significant portion of user interactions with Cortana are actually like a social response or a silly joke type question.\xa0 Which is super interesting because it shows users the human side of AI as a whole.
In your view, why is being able to interact with a humanlike bot appealing rather than using a digital encyclopedia or just a basic search engine?
IRVING AMUKASA:\xa0 On SophieBot not everyone asks us about sexual health.\xa0 Our most popular question we learned was people want to see Sophie's face.\xa0 So we also get those questions that are socially type.\xa0 So it's inherent in our nature to ask a question, send out a message, and get feedback and build on top of that.\xa0 You can't do that with a blog, you can't do that with any other media, that directly instantly sending out a message and getting actual feedback.\xa0 That element of communication is ingrained in us, and that's why messaging bots are big.\xa0 And messaging apps are popular because they know that one little secret.
JASON HOWARD:\xa0 So real quick for our listeners I want to talk a little bit about the difference between AI and machine learning.
IRVING AMUKASA:\xa0 Yes.
JASON HOWARD:\xa0 As you know, in this episode we're talking about machine learning.\xa0 And as some of the other guests have discussed, the terms machine learning and AI, while they're used interchangeably sometimes, they're actually very different things.\xa0 Machine learning is a particular method of achieving AI, which is of course allowing machines to have access to tons of data using algorithms and learning how to perform tasks rather than, you know, a developer hand-coding everything line by line.
Can you talk some about how SophieBot uses machine learning to become better?
IRVING AMUKASA:\xa0 So let me go back to AI in general.\xa0 SophieBot started off with like old technology that you had to provide everything.\xa0 Now we just call the Artificial Intelligence Markup Language.\xa0 It falls under something called rule-based AI.\xa0 But that wasn't enough to provide answers to our users, so we had to move up on the learning curve.\xa0
Machine learning comes in two ways on SophieBot.\xa0 First is us getting insights of the question they're asking.\xa0 We don't know who you are but we keep track of the questions you ask and the answers we provide for you.\xa0 So when users ask questions, it's insightful for us to know which topics are more prevalent and which is the most popular question.
So point one is us finding out which is the most popular question.\xa0 We don't do a tally of each question, because people have asked similar questions but then in different ways.\xa0 You can't do a tally and manually count.\xa0 People have asked about STIs or people have asked about HIV and AIDS.
What we do instead is use a machine learning model that looks at the words in every single question, looks at the frequency of those words, and how much they weigh on each single question they've asked, so we can have a popularity graph of the most popular question and the most least popular question.
So that's how we use machine learning specifically on SophieBot.\xa0 It isn't on answering questions, it's on getting insights on the questions already been asked.
JASON HOWARD:\xa0 Yeah, so you're highlighting key words from what people say to make sure that, you know, even if somebody does ask it differently, that you know how to respond appropriately.\xa0 But then because people are very different in how they address topics, they may not use the right words to get the answer they're actually looking for.\xa0 So it sounds like you're going to use some of the machine learning to figure out what they're trying to ask, even if they're not asking the question the right way.
IRVING AMUKASA:\xa0 Yes.\xa0 Also including typos.\xa0 If somebody doesn't know how to spell chlamydia or gonorrhea, machine learning points them in the right direction.
JASON HOWARD:\xa0 So not only are you giving them the right answer, but you're helping take some of the human error out of it as well?
IRVING AMUKASA:\xa0 Yes.
JASON HOWARD:\xa0 That's brilliant.
See, that's one of the fun things about this whole concept of machine learning and AI in general.\xa0 It's like even if we don't get it quite right, and we as humans are the ones that set up the constructs that we're working in, we can still use this cloud-based learning and machine learning and the whole concept of AI to correct ourselves to make sure we're going in the right direction still.
IRVING AMUKASA:\xa0 Yes.
JASON HOWARD:\xa0 So as machine learning becomes more and more sophisticated in the future, what's your vision for the next evolution of SophieBot?
IRVING AMUKASA:\xa0 Interesting.\xa0 So the next evolution of SophieBot is an end-to-end system that can take any dataset of questions and answers and be able to automate them.\xa0 That's the next evolution of SophieBot.\xa0 So rather than us elaborately designing full process flows or designing questions and answers, we go to someone who already has a huge dataset of questions and answers.
JASON HOWARD:\xa0 So are you trying to take her further than answering questions about sexual health?\xa0 Are you trying to expand her beyond that?\xa0 Or are you trying to make her more adept and capable in the space that she's functioning in currently?
IRVING AMUKASA:\xa0 We're doing both.\xa0 In essence like that's our business model.\xa0 We don't make money from you coming to us to ask questions.\xa0 That's we fund it to do that by the native nation population.
But we are a business, we are going to make SophieBot sustainable.\xa0 And the goal for that is to build that model and be able to monetize that end-to-end model in other domains rather than just sexual health.
JASON HOWARD:\xa0 That's awesome.\xa0
Well, Irving, I've got to say, thank you so much for taking the time to be here with us today.
IRVING AMUKASA:\xa0 No, thanks a lot, and thanks for having me and have a nice day.
JASON HOWARD:\xa0 Cheers, man.
IRVING AMUKASA:\xa0 Bless you.
JASON HOWARD:\xa0 That's a wrap for Episode 14.\xa0
Get the Windows Insider Podcast automatically every month by subscribing on your favorite podcast app.\xa0 You can also find all of our past episodes on the Windows Insider website.\xa0
Thanks for listening and until next time, Insiders.
NARRATION:\xa0 The Windows Insider Podcast is produced by Microsoft Production Studios and the Windows Insider team, which includes Tyler Ahn -- that's me -- Michelle Paison, Ande Harwood, and Kristie Wang.\xa0
Visit us on the Web at insider.windows.com.\xa0 Follow @windowsinsider on Instagram and Twitter.\xa0
Support for the Windows Insider Podcast comes from Microsoft, empowering every person and every organization on the planet to achieve more.\xa0
Please subscribe, rate, and review this podcast wherever you get your podcasts.\xa0
Moral support and inspiration come from Ninja Cat, reminding us to have fun and pursue our passions.\xa0
Thanks, as always, to our program's co-founders, Dona Sarkar and Jeremiah Marble.
Join us next month for another fascinating discussion from the perspectives of Windows Insiders.\xa0
END