0 1 00:00:01,870 --> 00:00:02,650 All right. 1 2 00:00:02,680 --> 00:00:06,730 Let's get started by tackling a big topic. 2 3 00:00:06,730 --> 00:00:09,770 What exactly is machine learning, 3 4 00:00:09,940 --> 00:00:16,430 and why is it important? Every day when you open the newspaper or your favorite blog, 4 5 00:00:16,450 --> 00:00:18,910 you see this word everywhere. 5 6 00:00:18,910 --> 00:00:25,630 Machine learning, machine learning, machine learning, but nobody really explained to me what exactly is 6 7 00:00:25,630 --> 00:00:32,590 the significance of this thing and why we should all care. The first time I really understood this, 7 8 00:00:32,590 --> 00:00:33,890 it was huge, 8 9 00:00:34,030 --> 00:00:38,900 and I'm going to try and explain it right here in less than five minutes. 9 10 00:00:38,950 --> 00:00:42,140 OK let's start the clock. To start, 10 11 00:00:42,150 --> 00:00:47,310 we have to look back at the history of the computer. The development of the computer started with one 11 12 00:00:47,310 --> 00:00:48,710 human urge. 12 13 00:00:48,720 --> 00:00:51,360 It's not a desire for understanding the universe. 13 14 00:00:51,360 --> 00:00:56,490 It's not from wanting to further the frontiers of science and it's not even because we wanted to organize 14 15 00:00:56,490 --> 00:00:58,120 the world's information. 15 16 00:00:58,200 --> 00:01:04,350 Computers exist because some guy, let's call him Bob, decided that he wanted to spend more time chilling 16 17 00:01:04,350 --> 00:01:06,850 at home rather than working hard. 17 18 00:01:06,960 --> 00:01:11,380 The fundamental urge that drives any programmer is laziness. 18 19 00:01:11,460 --> 00:01:19,000 And we invented various forms of computing so that we can work less and spend more time watching Netflix. 19 20 00:01:19,040 --> 00:01:25,490 The first thing that could be considered remotely close to a computer was the abacus. Now ignoring the 20 21 00:01:25,490 --> 00:01:31,190 racy picture, the abacus is useful because it helped us calculate and keep track of the steps in our 21 22 00:01:31,190 --> 00:01:32,110 calculations. 22 23 00:01:32,540 --> 00:01:38,760 But this still required us to know the times tables and we programmers were too lazy for that. 23 24 00:01:38,780 --> 00:01:40,730 So we built a calculator. 24 25 00:01:40,730 --> 00:01:46,160 Well there are quite a few steps in between some code breaking and a lot of movie fodder but essentially 25 26 00:01:46,220 --> 00:01:47,300 we are here. 26 27 00:01:47,330 --> 00:01:52,100 We figured out transistors and we could use them to perform logical tasks. 27 28 00:01:52,100 --> 00:01:58,220 So we now had something that could be vaguely programmed. Just replace the Apple logo with Texas Instruments 28 29 00:01:58,220 --> 00:02:01,390 and you're basically looking at the hype around the calculator. 29 30 00:02:01,850 --> 00:02:07,010 But we obviously wanted to be even lazier and that required our computers to do more. 30 31 00:02:07,280 --> 00:02:09,320 So we invented programming languages. 31 32 00:02:09,320 --> 00:02:13,160 We got rid of ticker tapes and started using CRT screens. 32 33 00:02:13,190 --> 00:02:20,060 We were able to use a vaguely human readable language like Fortran or COBOL and converted into ones 33 34 00:02:20,060 --> 00:02:25,560 and zeros that the computer could understand. Our programs could now be executed by the computer, 34 35 00:02:25,670 --> 00:02:31,160 one line at a time. If we told it to go left, it wouldn't dare to go right. 35 36 00:02:31,160 --> 00:02:36,440 We specified the conditions and based on those conditions, the computer checked to see what it should 36 37 00:02:36,440 --> 00:02:37,660 do. 37 38 00:02:37,760 --> 00:02:42,550 So now we can play games, send email and use Excel instead of an abacus. 38 39 00:02:42,590 --> 00:02:48,230 But what if we could get the computer to do even more of our work? Work that we previously thought could 39 40 00:02:48,320 --> 00:02:52,820 only be done by humans, like buying gifts for your husband or your wife. 40 41 00:02:53,130 --> 00:02:54,500 Okay, just kidding. 41 42 00:02:54,500 --> 00:03:00,510 We're not quite there yet, but what about things like identifying the unripe fruit from our farm? 42 43 00:03:00,590 --> 00:03:06,380 What would you tell the computer? What would your program look like? If object color is red then keep 43 44 00:03:06,380 --> 00:03:07,200 it. 44 45 00:03:07,340 --> 00:03:11,990 What if next week it's chili harvesting time and you only want to keep the green ones? 45 46 00:03:11,990 --> 00:03:14,750 Well, I guess you'd have to rewrite your code. 46 47 00:03:14,960 --> 00:03:19,590 Wouldn't it be great if we could actually teach the computer what a tomato is? 47 48 00:03:19,610 --> 00:03:26,580 Maybe we could refine our program. If something is round, red and around 100 grams, 48 49 00:03:26,670 --> 00:03:29,820 it's probably a tomato. Problem - 49 50 00:03:30,300 --> 00:03:31,720 it's more subtle than that. 50 51 00:03:31,740 --> 00:03:37,340 You wouldn't tell your kids that everything red, round and 100 grams is edible, would you? 51 52 00:03:37,350 --> 00:03:38,640 So, how do kids learn? 52 53 00:03:38,640 --> 00:03:43,290 Maybe we'd have to show them lots of examples of tomatoes. Tomatoes from different angles. 53 54 00:03:43,330 --> 00:03:44,820 Tomatoes of different sizes. 54 55 00:03:44,880 --> 00:03:46,590 Tomatoes of different shapes. 55 56 00:03:46,590 --> 00:03:48,780 Now we're getting close to machine learning. 56 57 00:03:48,780 --> 00:03:55,230 It's similar to kids learning, but with machines. In the previous example of teaching kids to classify 57 58 00:03:55,230 --> 00:04:01,770 tomatoes, we gave them lots of different examples and taught them that they are each a tomato, even if 58 59 00:04:01,770 --> 00:04:03,160 they might look different. 59 60 00:04:03,510 --> 00:04:09,720 When we do the same thing for our computers, it's called supervised learning. By providing labeled training 60 61 00:04:09,720 --> 00:04:14,550 data we can slowly teach our computers what a tomato is. 61 62 00:04:14,610 --> 00:04:19,980 And once we have a trained machine learning model that knows what a ripe tomato looks like, then we can 62 63 00:04:19,980 --> 00:04:26,820 do this. And teaching computers is way more fun than teaching kids, because even if you teach your kid 63 64 00:04:26,820 --> 00:04:33,630 what a tomato is, they won't work on your farm 24/7 sorting your tomatoes, but your machine learning model 64 65 00:04:33,630 --> 00:04:34,530 will. 65 66 00:04:34,560 --> 00:04:38,040 So I hope you're now as excited as I am about machine learning.