0:00:00.000,0:00:04.904 What is machine learning? In this video we[br]will try to define what it is and also try 0:00:04.904,0:00:09.520 to give you a sense of when you want to[br]use machine learning. Even among machine 0:00:09.520,0:00:14.252 learning practitioners there isn't a well[br]accepted definition of what is and what 0:00:14.252,0:00:18.926 isn't machine learning. But let me show[br]you a couple of examples of the ways that 0:00:18.926,0:00:23.600 people have tried to define it. Here's the[br]definition of what is machine learning 0:00:23.600,0:00:28.520 does to Arthur Samuel. He defined machine[br]learning as the field of study that gives 0:00:31.037,0:00:33.554 computers the ability to learn without being[br]explicitly programmed. Samuel's claim to 0:00:33.554,0:00:38.452 fame was that back in the 1950's, he wrote[br]a checkers playing program. And the 0:00:38.452,0:00:43.603 amazing thing about this checkers playing[br]program, was that Arthur Samuel himself, 0:00:43.603,0:00:48.268 wasn't a very good checkers player. But[br]what he did was, he had to program for it to play 0:00:48.268,0:00:52.245 10's of 1000's of games against itself.[br]And by watching what sorts of board 0:00:52.245,0:00:56.698 positions tended to lead to wins, and what[br]sort of board positions tended to lead to 0:00:56.698,0:01:00.725 losses. The checkers playing program[br]learns over time what are good board 0:01:00.725,0:01:04.713 positions and what are bad board[br]positions. And eventually learn to play 0:01:04.713,0:01:09.514 checkers better than Arthur Samuel himself[br]was able to. This was a remarkable result. 0:01:09.514,0:01:14.535 Although Samuel himself turned out not to be a[br]very good checkers player. But because the 0:01:14.535,0:01:19.254 computer has the patience to play tens[br]of thousands of games itself. No 0:01:19.254,0:01:24.275 human, has the patience to play that many[br]games. By doing this the computer was able 0:01:24.275,0:01:29.235 to get so much checkers-playing experience that it eventually became a 0:01:29.235,0:01:33.817 better checkers player than Arthur Samuel[br]himself. This is somewhat informal 0:01:33.817,0:01:38.547 definition, and an older one. Here's a[br]slightly more recent definition by Tom 0:01:38.547,0:01:43.607 Mitchell, who's a friend out of Carnegie[br]Mellon. So Tom defines machine learning by 0:01:43.607,0:01:48.819 saying that, a well posed learning problem[br]is defined as follows. He says, a computer 0:01:48.819,0:01:53.843 program is said to learn from experience[br]E, with respect to some task T, and some 0:01:53.843,0:01:58.678 performance measure P, if its[br]performance on T as measured by P improves 0:01:58.678,0:02:03.764 with experience E. I actually think he came[br]up with this definition just to make it 0:02:03.764,0:02:08.346 rhyme. For the checkers playing[br]example the experience e, will be the 0:02:08.346,0:02:13.253 experience of having the program play 10's[br]of 1000's of games against itself. The 0:02:13.253,0:02:17.735 task t, will be the task of playing[br]checkers. And the performance measure p, 0:02:17.735,0:02:22.399 will be the probability that it[br]wins the next game of checkers against 0:02:22.399,0:02:27.157 some new opponent. Throughout these[br]videos, besides me trying to teach you 0:02:27.157,0:02:32.291 stuff, I will occasionally ask you a[br]question to make sure you understand the 0:02:32.291,0:02:36.891 content. Here's one, on top is a[br]definition of machine learning by Tom 0:02:36.891,0:02:42.292 Mitchell. Let's say your email program[br]watches which emails you do or do not flag 0:02:42.292,0:02:47.826 as spam. So in an email client like this[br]you might click this spam button to report 0:02:47.826,0:02:53.263 some email as spam, but not other emails[br]and. Based on which emails you mark as 0:02:53.263,0:02:59.046 spam, so your e-mail program learns better[br]how to filter spam e-mail. What is the 0:02:59.046,0:03:04.290 task T in this setting? In a few seconds,[br]the video will pause. And when it does so, 0:03:04.290,0:03:09.598 you can use your mouse to select one of[br]these four radio buttons to let, to let me 0:03:09.598,0:03:40.190 know which of these four you think is the[br]right answer to this question. That might 0:03:40.190,0:03:45.747 be a performance measure P. And so, our[br]task performance on the task our system's 0:03:45.747,0:03:50.529 performance on the task T, on the[br]performance measure P will improve after 0:03:50.529,0:03:55.957 the experience E. In this class I hope to[br]teach you about various different types of 0:03:55.957,0:04:00.933 learning algorithms. There are several[br]different types of learning algorithms. 0:04:00.933,0:04:05.650 The main two types are what we call[br]supervised learning and unsupervised 0:04:05.650,0:04:10.690 learning. I'll define what these terms[br]mean more in the next couple videos. But 0:04:10.690,0:04:16.028 it turns out that in supervised learning,[br]the idea is that we're going to teach the 0:04:16.028,0:04:20.513 computer how to do something, whereas in[br]unsupervised learning we're going let 0:04:20.513,0:04:25.016 it learn by itself. Don't worry if these[br]two terms don't make sense yet, in the 0:04:25.016,0:04:29.739 next two videos I'm going to say exactly[br]what these two types of learning are. You 0:04:29.739,0:04:34.070 will also hear other buzz terms such as[br]reinforcement learning and recommender 0:04:34.070,0:04:38.621 systems. These are other types of machine[br]learning algorithms that we'll talk about 0:04:38.621,0:04:42.460 later but the two most used types of[br]learning algorithms are probably 0:04:42.460,0:04:46.791 supervised learning and unsupervised[br]learning and I'll define them in the next 0:04:46.791,0:04:51.123 two videos and we'll spend most of this[br]class talking about these two types of 0:04:51.123,0:04:55.720 learning algorithms. It turns out one of[br]the other things we'll spend a lot of time 0:04:55.720,0:05:00.054 on in this class is practical advice for[br]applying learning algorithms. This is 0:05:00.054,0:05:04.444 something that I feel pretty strongly[br]about, and it's actually something that I 0:05:04.444,0:05:08.167 don't know of any other university[br]teaches. Teaching about learning 0:05:08.167,0:05:12.509 algorithms is like giving you a set of[br]tools, and equally important or more 0:05:12.509,0:05:17.616 important to giving you the tools is to[br]teach you how to apply these tools. I like 0:05:17.616,0:05:22.413 to make an analogy to learning to become a[br]carpenter. Imagine that someone is 0:05:22.413,0:05:26.959 teaching you how to be a carpenter and[br]they say here's a hammer, here's a 0:05:26.959,0:05:31.077 screwdriver, here's a saw, good luck.[br]Well, that's no good, right? You, you, you 0:05:31.077,0:05:34.799 have all these tools, but the more[br]important thing, is to learn how to use 0:05:34.799,0:05:38.927 these tools properly. There's a huge[br]difference between, between people that 0:05:38.927,0:05:43.456 know how to use these machines learning[br]algorithms, versus people who don't know 0:05:43.456,0:05:47.626 how to use these tools well. Here in[br]Silicon Valley where I live, when I go 0:05:47.626,0:05:52.328 visit different companies even at the[br]top Silicon Valley companies very often I see 0:05:52.328,0:05:56.428 people are trying to apply machine[br]learning algorithms to some problem and 0:05:56.428,0:06:00.857 sometimes they have been going at it for[br]six months. But sometimes when I look at 0:06:00.857,0:06:05.121 what they're doing I, I, I say, you know,[br]I could have told them like, gee, I could 0:06:05.121,0:06:09.714 have told you six months ago that you[br]should be taking a learning algorithm and 0:06:09.714,0:06:14.470 applying it in like the slightly modified[br]way and your chance of success would have 0:06:14.470,0:06:19.648 been much higher. So what we're going to[br]do in this class is actually spend a lot 0:06:19.648,0:06:23.523 of time talking about how, if you actually[br]tried to develop a machine learning 0:06:23.523,0:06:27.596 system, how to make those best practices[br]type decisions about the way in which you 0:06:27.596,0:06:31.321 build your system so that when you're[br]applying learning algorithm you're less 0:06:31.321,0:06:35.394 likely to end up one of those people who[br]end up pursuing some path for six months 0:06:35.394,0:06:39.373 that, you know, someone else could have[br]figured out it just wasn't gonna work at 0:06:39.373,0:06:43.515 all and it's just a waste of time for six[br]months. So I'm actually going to spend a 0:06:43.515,0:06:47.707 lot of the time teaching you those sorts[br]of best practices in machine learning and 0:06:47.707,0:06:52.052 AI and how to get this stuff to work and[br]how we do it, how the best people do it in 0:06:52.052,0:06:56.143 Silicon Valley and around the world. I[br]hope to make you one of the best people in 0:06:56.143,0:06:59.905 knowing how to design and build serious[br]machine learning and AI systems. So, 0:06:59.905,0:07:04.698 that's machine learning and these are the[br]main topics I hope to teach. In the next 0:07:04.698,0:07:09.023 video, I'm going to define what is[br]supervised learning and after that, what 0:07:09.023,0:07:13.757 is unsupervised learning. And also, start[br]to talk about when you would use each of them.