0 1 00:00:00,610 --> 00:00:09,220 So, now that you've learned all about how to use CreateML to create a machine vision model, it's time 1 2 00:00:09,280 --> 00:00:14,380 to challenge yourself to create your very own machine learning model. 2 3 00:00:14,380 --> 00:00:22,750 Now, in previous modules, we create an app called WhatFlower and we used a research machine learning model 3 4 00:00:22,930 --> 00:00:29,400 that had been trained on maybe 80 or 90 images of each type of flower. 4 5 00:00:29,410 --> 00:00:36,000 Now, as many of you have realized, the machine learning model didn't have enough data to be very accurate. 5 6 00:00:36,220 --> 00:00:45,010 But if you were to use CreateML using all of the intelligence that it has from the Apple Photos and 6 7 00:00:45,010 --> 00:00:52,720 the Apple Siri technologies, and if you were to retrain it using your own images of flowers that you 7 8 00:00:52,720 --> 00:00:59,080 have classified manually, or you have found a data set where it has already been classified, and you were 8 9 00:00:59,080 --> 00:01:07,090 to create your very own flower database machine learning image recognition model, then you can add as 9 10 00:01:07,090 --> 00:01:13,930 much data as you needed to in order for it to become as accurate as you need it to be. 10 11 00:01:13,960 --> 00:01:20,680 Now, there are several other ideas that I've come up with for you to try and create your own machine 11 12 00:01:20,680 --> 00:01:21,700 learning model. 12 13 00:01:21,730 --> 00:01:27,670 Now, depending on what you're interested in, then you can pick and choose or even better come up with 13 14 00:01:27,670 --> 00:01:31,800 your own ideas for some crazy things that you can do. 14 15 00:01:31,810 --> 00:01:39,580 So, for example, you could look for celebrity images on Google Images and try to train a machine learning 15 16 00:01:39,580 --> 00:01:45,700 model that will know the difference between, say, Jennifer Lawrence and Jennifer Aniston, or even better, 16 17 00:01:45,700 --> 00:01:49,190 recognize what celebrity it's being shown. 17 18 00:01:49,210 --> 00:01:54,410 Another fun one is training machine learning model that recognizes brand logos. 18 19 00:01:54,610 --> 00:02:01,240 So you could use the image recognition to figure out which brand is being shown based on their logo. 19 20 00:02:01,240 --> 00:02:07,450 Now, if you have a lot of time and you want to do something really interesting, but quite time consuming, 20 21 00:02:07,990 --> 00:02:17,470 then a really fascinating topic, for me at least, is emotion recognition in people's faces. Now, because 21 22 00:02:17,470 --> 00:02:26,140 the emotions are all displayed on human faces, the differences between, say, surprise and fear, actually, 22 23 00:02:26,140 --> 00:02:28,000 really, really similar. 23 24 00:02:28,000 --> 00:02:36,280 And because the features are not so distinct, then you will need a large data set for each type of emotion 24 25 00:02:36,640 --> 00:02:44,380 based on lots of different types of faces, women, men, people from different countries, and you will need 25 26 00:02:44,380 --> 00:02:49,510 to train your model with a lot more data than some of the simpler things that you could do. 26 27 00:02:49,510 --> 00:02:55,410 Now, with the previous ones I've suggested that involves you going on to, say, Google Image, or wherever 27 28 00:02:55,420 --> 00:03:00,590 else, finding images that you recognize yourself that can be classified. 28 29 00:03:00,850 --> 00:03:08,200 But if you were to try and find public data sets, then some good resources are, for example, 29 30 00:03:08,200 --> 00:03:08,920 kaggle.com. 30 31 00:03:08,920 --> 00:03:17,950 So this is a large machine learning and data science website and I'll include a link in the link resources 31 32 00:03:17,950 --> 00:03:21,100 sheet to this image dataset. 32 33 00:03:21,160 --> 00:03:27,190 So they have a whole bunch of different ones, for example, pictures of the hand that represent different 33 34 00:03:27,190 --> 00:03:37,060 letters in the ASL alphabet, or different flowers, or different monkey species, or CT medical images. 34 35 00:03:37,060 --> 00:03:41,300 And it's really, really fun actually going through these datasets. 35 36 00:03:41,320 --> 00:03:42,670 So Kaggle is one of them. 36 37 00:03:42,850 --> 00:03:52,660 And this GitHub repository also collects a bunch of publicly available open databases of images and 37 38 00:03:52,660 --> 00:03:53,910 classifications. 38 39 00:03:54,190 --> 00:03:59,360 Now, remember that if the evaluation performance that you're getting isn't very good, 39 40 00:03:59,470 --> 00:04:08,000 say, it's below 80 percent, then you might need to retrain your model with more data or make other adjustments. 40 41 00:04:08,050 --> 00:04:15,610 And Apple has created this entire article on improving your models accuracy which I recommend that you 41 42 00:04:15,610 --> 00:04:22,930 read if you are encountering this problem. And they tell you a whole bunch of ways that you can improve 42 43 00:04:22,930 --> 00:04:29,650 the accuracy, for example, by augmenting your images or by getting more data to train your model. 43 44 00:04:29,650 --> 00:04:34,480 And I'll include a link to this in the resources sheet as well. 44 45 00:04:34,480 --> 00:04:41,230 The rule of thumb is that the closer that the images that you're trying to classify resemble each other, 45 46 00:04:41,560 --> 00:04:49,090 even to a human eye, then the more data you need to provide in order for it to pick up on the unique 46 47 00:04:49,150 --> 00:04:52,750 features that differentiate these different classes. 47 48 00:04:52,750 --> 00:05:01,850 Now, a classic example is the blueberry muffin versus chihuahua dog, where I have to say, even my own image 48 49 00:05:01,880 --> 00:05:08,690 classifier in my brain is not often good enough to tell which one's the dog and which one's a muffin. 49 50 00:05:08,690 --> 00:05:14,750 It's very concerning. But I hope you understand that this illustrates the point of the struggles that 50 51 00:05:14,750 --> 00:05:20,210 your machine learning model has to go through to be able to give you an answer with adequate confidence 51 52 00:05:20,210 --> 00:05:24,630 and adequate accuracy. So go crazy, go wild. 52 53 00:05:24,670 --> 00:05:31,570 Create machine learning models that are interesting to you and come up with new ideas. 53 54 00:05:31,570 --> 00:05:39,370 For example, what if you could recognize whether if a person is making a fist or a pair of scissors or 54 55 00:05:39,370 --> 00:05:46,030 paper, and create a rock paper scissors game based off image recognition and your own machine learning 55 56 00:05:46,030 --> 00:05:51,970 models, or what if you could create a game that's based off brand logos. 56 57 00:05:51,970 --> 00:05:53,950 The world is your oyster. 57 58 00:05:53,980 --> 00:05:58,360 And with what you've learned about how to create image recognition models, 58 59 00:05:58,540 --> 00:06:07,630 I hope that you'll use this skill and new knowledge to create and build really fascinating classifiers 59 60 00:06:07,720 --> 00:06:08,710 and models. 60 61 00:06:08,710 --> 00:06:13,360 And once you've done that, and you think it's pretty interesting, and you want to share it with other 61 62 00:06:13,360 --> 00:06:20,050 students on the course, then upload your model to GitHub and show it off in the Q & A section so that 62 63 00:06:20,080 --> 00:06:27,250 other students can be inspired by what it is that you're doing and can add to your database, and can 63 64 00:06:27,370 --> 00:06:33,800 add data or collaborate with you on your projects and your machine learning models. 64 65 00:06:33,910 --> 00:06:42,610 So go crazy, go nuts, have fun, and I look forward to seeing all the fantastic things that you guys achieve 65 66 00:06:42,880 --> 00:06:44,380 in the Q & A sections.