This course was created by Microsoft.NET. We are pleased to host this training in our library.
Skill Level Intermediate
- [Pranav] Hello everyone, and welcome to this series on ML.NET, machine learning framework for .NET developers. My name is Pranav Rastogi and I'm a Program Manager on the .NET team, focusing on making machine learning approachable to .NET developers. In this series of videos, we'll be looking in depth at ML.NET. Let's start by understanding what is machine learning. Machine learning is all about programming the unprogrammable. Let's say, in this case we want to write a function whether this picture is an image of a dog or not. Machine learning will help us figure out whether this image is a dog or not. Some other examples of using machine learning are, let's say I want to predict a price of a house. A price of a house can depend on a variety of features, such as how many rooms does the house have, does the house have any special amenities, like a pool? How big is the yard? And all these features will determine what the exact price of the house is. Now traditionally, let's say we had to write a program to detect whether this is a dog or not. What we would have done is we would have looked at images of dogs and cats, and you would have looked at certain characteristics, like how large are the ears? Do they have a tongue? How big the tongue is? And we would write this program ourselves, taking care of all the possibilities to figure out whether the image is of a dog or a cat or not. These are some example images that I would have looked at to figure out how to make the program understand whether this image is a dog or a cat. So I'd be looking at cat pictures, I'd be looking at dog pictures, I'd be looking at different examples of all these images and trying to write a program by myself. But with machine learning, all of this becomes much more simpler. Machine learning allows a program to learn from a set of data to figure out what are all the characteristics of a particular problem. So in this case, what defines a dog? What defines a cat? The machine learning program will look at different images and see, all right, how big is the mouth? How big is the tongue? Does it have claws? Does it have whiskers? And as it trains on more and more data, the machine learning program will become more smarter and smarter in terms of figuring out whether this image is of a dog or a cat or not. And in the end what you would have is a program that you can call to figure out what type of animal is this. So machine learning is really about programming the unprogrammable. What this allows to do is it allows you to write a function which trains on a set of data to figure out whether this picture is of a dog or a cat. And the machine learning model that you get is trained on lots of these images where it learns about different features whether how big the mouth is, whether the cat has claws or not, whether the cat has whiskers. And so you don't have to write all of these constructs yourself. The machine learning program looks at all these images and learns and then it gives you a function which is a machine learning model that you can use in your application. Such advancement in machine learning has opened many possibilities where you can use machine learning to train machine learning models over data which is of different kinds. You can train machine learning models to detect audio, to recommend, for example, new music that you would like. You can use machine learning on text-based scenarios, so you can do things like sentiment analysis, sales forecasting, movie recommendation, anomaly detection. You can use machine learning on images, so you can classify images whether it's a cat or a dog, you can detect objects in an image. So you can effectively build a greater user experience for online cataloging. And the machine learning can also be used to teach machines itself so they can be much more smarter. In this video, we looked at the basics of what is machine learning. In the next video, we will take a look at ML.NET, which is a framework for building machine learning models for .NET developers.