1 00:00:00,000 --> 00:00:04,904 What is machine learning? In this video we will try to define what it is and also try 2 00:00:04,904 --> 00:00:09,520 to give you a sense of when you want to use machine learning. Even among machine 3 00:00:09,520 --> 00:00:14,252 learning practitioners there isn't a well accepted definition of what is and what 4 00:00:14,252 --> 00:00:18,926 isn't machine learning. But let me show you a couple of examples of the ways that 5 00:00:18,926 --> 00:00:23,600 people have tried to define it. Here's the definition of what is machine learning 6 00:00:23,600 --> 00:00:28,520 does to Arthur Samuel. He defined machine learning as the field of study that gives 7 00:00:31,037 --> 00:00:33,554 computers the ability to learn without being explicitly programmed. Samuel's claim to 8 00:00:33,554 --> 00:00:38,452 fame was that back in the 1950's, he wrote a checkers playing program. And the 9 00:00:38,452 --> 00:00:43,603 amazing thing about this checkers playing program, was that Arthur Samuel himself, 10 00:00:43,603 --> 00:00:48,268 wasn't a very good checkers player. But what he did was, he had to program for it to play 11 00:00:48,268 --> 00:00:52,245 10's of 1000's of games against itself. And by watching what sorts of board 12 00:00:52,245 --> 00:00:56,698 positions tended to lead to wins, and what sort of board positions tended to lead to 13 00:00:56,698 --> 00:01:00,725 losses. The checkers playing program learns over time what are good board 14 00:01:00,725 --> 00:01:04,713 positions and what are bad board positions. And eventually learn to play 15 00:01:04,713 --> 00:01:09,514 checkers better than Arthur Samuel himself was able to. This was a remarkable result. 16 00:01:09,514 --> 00:01:14,535 Although Samuel himself turned out not to be a very good checkers player. But because the 17 00:01:14,535 --> 00:01:19,254 computer has the patience to play tens of thousands of games itself. No 18 00:01:19,254 --> 00:01:24,275 human, has the patience to play that many games. By doing this the computer was able 19 00:01:24,275 --> 00:01:29,235 to get so much checkers-playing experience that it eventually became a 20 00:01:29,235 --> 00:01:33,817 better checkers player than Arthur Samuel himself. This is somewhat informal 21 00:01:33,817 --> 00:01:38,547 definition, and an older one. Here's a slightly more recent definition by Tom 22 00:01:38,547 --> 00:01:43,607 Mitchell, who's a friend out of Carnegie Mellon. So Tom defines machine learning by 23 00:01:43,607 --> 00:01:48,819 saying that, a well posed learning problem is defined as follows. He says, a computer 24 00:01:48,819 --> 00:01:53,843 program is said to learn from experience E, with respect to some task T, and some 25 00:01:53,843 --> 00:01:58,678 performance measure P, if its performance on T as measured by P improves 26 00:01:58,678 --> 00:02:03,764 with experience E. I actually think he came up with this definition just to make it 27 00:02:03,764 --> 00:02:08,346 rhyme. For the checkers playing example the experience e, will be the 28 00:02:08,346 --> 00:02:13,253 experience of having the program play 10's of 1000's of games against itself. The 29 00:02:13,253 --> 00:02:17,735 task t, will be the task of playing checkers. And the performance measure p, 30 00:02:17,735 --> 00:02:22,399 will be the probability that it wins the next game of checkers against 31 00:02:22,399 --> 00:02:27,157 some new opponent. Throughout these videos, besides me trying to teach you 32 00:02:27,157 --> 00:02:32,291 stuff, I will occasionally ask you a question to make sure you understand the 33 00:02:32,291 --> 00:02:36,891 content. Here's one, on top is a definition of machine learning by Tom 34 00:02:36,891 --> 00:02:42,292 Mitchell. Let's say your email program watches which emails you do or do not flag 35 00:02:42,292 --> 00:02:47,826 as spam. So in an email client like this you might click this spam button to report 36 00:02:47,826 --> 00:02:53,263 some email as spam, but not other emails and. Based on which emails you mark as 37 00:02:53,263 --> 00:02:59,046 spam, so your e-mail program learns better how to filter spam e-mail. What is the 38 00:02:59,046 --> 00:03:04,290 task T in this setting? In a few seconds, the video will pause. And when it does so, 39 00:03:04,290 --> 00:03:09,598 you can use your mouse to select one of these four radio buttons to let, to let me 40 00:03:09,598 --> 00:03:40,190 know which of these four you think is the right answer to this question. That might 41 00:03:40,190 --> 00:03:45,747 be a performance measure P. And so, our task performance on the task our system's 42 00:03:45,747 --> 00:03:50,529 performance on the task T, on the performance measure P will improve after 43 00:03:50,529 --> 00:03:55,957 the experience E. In this class I hope to teach you about various different types of 44 00:03:55,957 --> 00:04:00,933 learning algorithms. There are several different types of learning algorithms. 45 00:04:00,933 --> 00:04:05,650 The main two types are what we call supervised learning and unsupervised 46 00:04:05,650 --> 00:04:10,690 learning. I'll define what these terms mean more in the next couple videos. But 47 00:04:10,690 --> 00:04:16,028 it turns out that in supervised learning, the idea is that we're going to teach the 48 00:04:16,028 --> 00:04:20,513 computer how to do something, whereas in unsupervised learning we're going let 49 00:04:20,513 --> 00:04:25,016 it learn by itself. Don't worry if these two terms don't make sense yet, in the 50 00:04:25,016 --> 00:04:29,739 next two videos I'm going to say exactly what these two types of learning are. You 51 00:04:29,739 --> 00:04:34,070 will also hear other buzz terms such as reinforcement learning and recommender 52 00:04:34,070 --> 00:04:38,621 systems. These are other types of machine learning algorithms that we'll talk about 53 00:04:38,621 --> 00:04:42,460 later but the two most used types of learning algorithms are probably 54 00:04:42,460 --> 00:04:46,791 supervised learning and unsupervised learning and I'll define them in the next 55 00:04:46,791 --> 00:04:51,123 two videos and we'll spend most of this class talking about these two types of 56 00:04:51,123 --> 00:04:55,720 learning algorithms. It turns out one of the other things we'll spend a lot of time 57 00:04:55,720 --> 00:05:00,054 on in this class is practical advice for applying learning algorithms. This is 58 00:05:00,054 --> 00:05:04,444 something that I feel pretty strongly about, and it's actually something that I 59 00:05:04,444 --> 00:05:08,167 don't know of any other university teaches. Teaching about learning 60 00:05:08,167 --> 00:05:12,509 algorithms is like giving you a set of tools, and equally important or more 61 00:05:12,509 --> 00:05:17,616 important to giving you the tools is to teach you how to apply these tools. I like 62 00:05:17,616 --> 00:05:22,413 to make an analogy to learning to become a carpenter. Imagine that someone is 63 00:05:22,413 --> 00:05:26,959 teaching you how to be a carpenter and they say here's a hammer, here's a 64 00:05:26,959 --> 00:05:31,077 screwdriver, here's a saw, good luck. Well, that's no good, right? You, you, you 65 00:05:31,077 --> 00:05:34,799 have all these tools, but the more important thing, is to learn how to use 66 00:05:34,799 --> 00:05:38,927 these tools properly. There's a huge difference between, between people that 67 00:05:38,927 --> 00:05:43,456 know how to use these machines learning algorithms, versus people who don't know 68 00:05:43,456 --> 00:05:47,626 how to use these tools well. Here in Silicon Valley where I live, when I go 69 00:05:47,626 --> 00:05:52,328 visit different companies even at the top Silicon Valley companies very often I see 70 00:05:52,328 --> 00:05:56,428 people are trying to apply machine learning algorithms to some problem and 71 00:05:56,428 --> 00:06:00,857 sometimes they have been going at it for six months. But sometimes when I look at 72 00:06:00,857 --> 00:06:05,121 what they're doing I, I, I say, you know, I could have told them like, gee, I could 73 00:06:05,121 --> 00:06:09,714 have told you six months ago that you should be taking a learning algorithm and 74 00:06:09,714 --> 00:06:14,470 applying it in like the slightly modified way and your chance of success would have 75 00:06:14,470 --> 00:06:19,648 been much higher. So what we're going to do in this class is actually spend a lot 76 00:06:19,648 --> 00:06:23,523 of time talking about how, if you actually tried to develop a machine learning 77 00:06:23,523 --> 00:06:27,596 system, how to make those best practices type decisions about the way in which you 78 00:06:27,596 --> 00:06:31,321 build your system so that when you're applying learning algorithm you're less 79 00:06:31,321 --> 00:06:35,394 likely to end up one of those people who end up pursuing some path for six months 80 00:06:35,394 --> 00:06:39,373 that, you know, someone else could have figured out it just wasn't gonna work at 81 00:06:39,373 --> 00:06:43,515 all and it's just a waste of time for six months. So I'm actually going to spend a 82 00:06:43,515 --> 00:06:47,707 lot of the time teaching you those sorts of best practices in machine learning and 83 00:06:47,707 --> 00:06:52,052 AI and how to get this stuff to work and how we do it, how the best people do it in 84 00:06:52,052 --> 00:06:56,143 Silicon Valley and around the world. I hope to make you one of the best people in 85 00:06:56,143 --> 00:06:59,905 knowing how to design and build serious machine learning and AI systems. So, 86 00:06:59,905 --> 00:07:04,698 that's machine learning and these are the main topics I hope to teach. In the next 87 00:07:04,698 --> 00:07:09,023 video, I'm going to define what is supervised learning and after that, what 88 00:07:09,023 --> 00:07:13,757 is unsupervised learning. And also, start to talk about when you would use each of them.