1 00:00:00,000 --> 00:00:03,490 Hi, and welcome to this fourth and final week 2 00:00:03,490 --> 00:00:06,374 of this course on convolutional neural networks. 3 00:00:06,374 --> 00:00:08,930 By now, you've learned a lot about confidence. 4 00:00:08,930 --> 00:00:11,590 What I want to do this week is show you 5 00:00:11,590 --> 00:00:15,481 a couple important special applications of confidence. 6 00:00:15,481 --> 00:00:17,286 We'll start the face recognition, 7 00:00:17,286 --> 00:00:21,135 and then go on later this week to neurosal transfer, 8 00:00:21,135 --> 00:00:26,015 which you get to implement in the problem exercise as well to create your own artwork. 9 00:00:26,015 --> 00:00:30,095 But first, let's start the face recognition and just for fun, 10 00:00:30,095 --> 00:00:31,395 I want to show you a demo. 11 00:00:31,395 --> 00:00:33,730 When I was leading by those AI group, 12 00:00:33,730 --> 00:00:37,120 one of the teams I worked with led by Yuanqing Lin had built 13 00:00:37,120 --> 00:00:41,405 a face recognition system that I thought is really cool. Let's take a look. 14 00:00:41,405 --> 00:00:43,360 So, I'm going to play this video here, 15 00:00:43,360 --> 00:00:48,690 but I can also get whoever is editing this raw video configure out to this 16 00:00:48,690 --> 00:00:55,630 better to splice in the raw video or take the one I'm playing here. 17 00:00:55,630 --> 00:00:57,110 I want to show you a face recognition demo. 18 00:00:57,110 --> 00:00:58,975 I'm in Baidu's headquarters in China. 19 00:00:58,975 --> 00:01:01,740 Most companies require that to get inside, 20 00:01:01,740 --> 00:01:04,799 you swipe an ID card like this one but here we don't need that. 21 00:01:04,799 --> 00:01:07,355 Using face recognition, check what I can do. 22 00:01:07,355 --> 00:01:09,580 When I walk up, it recognizes my face, it says, 23 00:01:09,580 --> 00:01:15,030 "Welcome Andrew," and I just walk right through without ever having to use my ID card. 24 00:01:15,030 --> 00:01:16,530 Let me show you something else. 25 00:01:16,530 --> 00:01:17,730 I'm actually here with Lin Yuanqing, 26 00:01:17,730 --> 00:01:22,530 the director of IDL which developed all of this face recognition technology. 27 00:01:22,530 --> 00:01:24,530 I'm gonna hand him my ID card, 28 00:01:24,530 --> 00:01:26,230 which has my face printed on it, 29 00:01:26,230 --> 00:01:30,820 and he's going to use it to try to sneak in using my picture instead of a live human. 30 00:01:30,820 --> 00:01:37,698 I'm gonna use Andrew's card and try to sneak in and see what happens. 31 00:01:37,698 --> 00:01:43,400 So the system is not recognizing it, 32 00:01:43,400 --> 00:01:47,271 it refuses to recognize. 33 00:01:47,271 --> 00:01:53,280 Okay. Now, I'm going to use my own face. 34 00:01:53,330 --> 00:01:59,000 So face recognition technology like this is taking off very rapidly in China 35 00:01:59,000 --> 00:02:04,710 and I hope that this type of technology soon makes it way to other countries.. 36 00:02:04,710 --> 00:02:07,075 So, pretty cool, right? 37 00:02:07,075 --> 00:02:12,323 The video you just saw demoed both face recognition as well as liveness detection. 38 00:02:12,323 --> 00:02:16,010 The latter meaning making sure that you are a live human. 39 00:02:16,010 --> 00:02:20,240 It turns out liveness detection can be implemented using supervised learning as well 40 00:02:20,240 --> 00:02:25,201 to predict live human versus not live human but I want to spend less time on that. 41 00:02:25,201 --> 00:02:28,160 Instead, I want to focus our time on talking about how to 42 00:02:28,160 --> 00:02:31,365 build the face recognition portion of the system. 43 00:02:31,365 --> 00:02:36,071 First, let's start by going over some of the terminology used in face recognition. 44 00:02:36,071 --> 00:02:38,200 In the face recognition literature, 45 00:02:38,200 --> 00:02:42,605 people often talk about face verification and face recognition. 46 00:02:42,605 --> 00:02:45,845 This is the face verification problem which is if you're 47 00:02:45,845 --> 00:02:49,835 given an input image as well as a name or ID 48 00:02:49,835 --> 00:02:53,300 of a person and the job of the system is to 49 00:02:53,300 --> 00:02:57,080 verify whether or not the input image is that of the claimed person. 50 00:02:57,080 --> 00:03:00,170 So, sometimes this is also called a one to 51 00:03:00,170 --> 00:03:04,435 one problem where you just want to know if the person is the person they claim to be. 52 00:03:04,435 --> 00:03:09,485 So, the recognition problem is much harder than the verification problem. 53 00:03:09,485 --> 00:03:11,090 To see why, let's say, 54 00:03:11,090 --> 00:03:15,140 you have a verification system that's 99 percent accurate. 55 00:03:15,140 --> 00:03:19,040 So, 99 percent might not be too bad but now suppose 56 00:03:19,040 --> 00:03:23,606 that K is equal to 100 in a recognition system. 57 00:03:23,606 --> 00:03:30,290 If you apply this system to a recognition task with a 100 people in your database, 58 00:03:30,290 --> 00:03:33,710 you now have a hundred times of chance of making 59 00:03:33,710 --> 00:03:38,030 a mistake and if the chance of making mistakes on each person is just one percent. 60 00:03:38,030 --> 00:03:39,860 So, if you have a database of 61 00:03:39,860 --> 00:03:45,530 a 100 persons and if you want an acceptable recognition error, 62 00:03:45,530 --> 00:03:48,755 you might actually need a verification system with maybe 63 00:03:48,755 --> 00:03:52,520 99.9 or even higher accuracy before you can run 64 00:03:52,520 --> 00:03:55,430 it on a database of 100 persons that have 65 00:03:55,430 --> 00:03:59,840 a high chance and still have a high chance of getting incorrect. 66 00:03:59,840 --> 00:04:03,440 In fact, if you have a database of 100 persons currently just be even 67 00:04:03,440 --> 00:04:07,330 quite a bit higher than 99 percent for that to work well. 68 00:04:07,330 --> 00:04:11,645 But what we do in the next few videos is focus on building 69 00:04:11,645 --> 00:04:17,720 a face verification system as a building block and then if the accuracy is high enough, 70 00:04:17,720 --> 00:04:21,984 then you probably use that in a recognition system as well. 71 00:04:21,984 --> 00:04:23,150 So in the next video, 72 00:04:23,150 --> 00:04:27,395 we'll start describing how you can build a face verification system. 73 00:04:27,395 --> 00:04:29,630 It turns out one of the reasons that is 74 00:04:29,630 --> 00:04:34,125 a difficult problem is you need to solve a one shot learning problem. 75 00:04:34,125 --> 00:04:37,000 Let's see in the next video what that means.