1
00:00:00,320 --> 00:00:04,136
The last few you train horse
versus humans, cats versus dogs,

2
00:00:04,136 --> 00:00:08,300
would bind the classification
problems with just two output.

3
00:00:08,300 --> 00:00:12,380
For a lot of applications, you might want
more than two output courses such as

4
00:00:12,380 --> 00:00:15,880
Rock Paper Scissors where you
would have three possible courses.

5
00:00:15,880 --> 00:00:19,660
So in this week, you learn
the details of how to implement this.

6
00:00:19,660 --> 00:00:23,425
And in fact, you've actually seen one
version of this already in the first

7
00:00:23,425 --> 00:00:27,513
course where you did the ten course
classification problem of fashion.

8
00:00:27,513 --> 00:00:30,943
But in this week, you'll learn
the important coding difference of how to

9
00:00:30,943 --> 00:00:33,440
actually build these
multi-class classifiers.

10
00:00:33,440 --> 00:00:34,310
>> Yes, exactly,

11
00:00:34,310 --> 00:00:38,060
and it's one of the things that's really
exciting about the image data generator is

12
00:00:38,060 --> 00:00:42,480
how your images get automatically labeled
based on the directories that they're in.

13
00:00:42,480 --> 00:00:45,650
So we'll take a look at having with rock,
paper, scissors, for example, we'll

14
00:00:45,650 --> 00:00:49,230
have three sub-directories of rock, paper,
and scissors with the images in them.

15
00:00:49,230 --> 00:00:51,930
And we'll learn how the image
data generator then works in

16
00:00:51,930 --> 00:00:54,660
outside of binary mode and
in multi-class mode.

17
00:00:54,660 --> 00:00:58,420
We'll also look at the coding changes
that you would have within the DNN part

18
00:00:58,420 --> 00:01:00,130
of your convolutional neural network so

19
00:01:00,130 --> 00:01:02,920
that you can work more
efficiently with multi-class.

20
00:01:02,920 --> 00:01:07,103
>> And one of the really cool things
we'll see this week is the rock,

21
00:01:07,103 --> 00:01:11,756
paper, scissors data set that you
generated using computer graphics.

22
00:01:11,756 --> 00:01:15,893
>> Yeah, so I wanted to explore
that one of the bottlenecks

23
00:01:15,893 --> 00:01:20,125
I find in creating data sets
is in getting access to data.

24
00:01:20,125 --> 00:01:22,619
And if I wanted to build a rock,
paper, scissors,

25
00:01:22,619 --> 00:01:25,062
I wanted to have people
of different races hands.

26
00:01:25,062 --> 00:01:28,022
So Asian hands, black hands, white hands.

27
00:01:28,022 --> 00:01:29,669
I wanted to have male and female hands.

28
00:01:29,669 --> 00:01:32,763
I wanted to have nail polish and
pointy nails on some and

29
00:01:32,763 --> 00:01:35,258
I wanted to have big hands and
little hands.

30
00:01:35,258 --> 00:01:39,493
And if I were to do that with real images,
I'd have to hire a lot of models and

31
00:01:39,493 --> 00:01:41,554
I didn't have the budget for that.

32
00:01:41,554 --> 00:01:44,420
And so, I thought well,
what if I do it with CGI?

33
00:01:44,420 --> 00:01:47,396
And if I generate CGI hands for
all of these, and then to see.

34
00:01:47,396 --> 00:01:50,850
Because convolutions are really
all about extracting features.

35
00:01:50,850 --> 00:01:52,040
What does a finger look like?

36
00:01:52,040 --> 00:01:53,730
What does a finger nail look like?

37
00:01:53,730 --> 00:01:54,420
That type of thing.

38
00:01:54,420 --> 00:01:57,850
And with photo real CGI,
the convolutions that make for

39
00:01:57,850 --> 00:02:01,380
finger might look exactly the same that
it would be of a photograph of a hand.

40
00:02:01,380 --> 00:02:03,350
So I wanted to explore that and
do some training on that.

41
00:02:03,350 --> 00:02:05,123
And it works surprisingly well.

42
00:02:05,123 --> 00:02:09,468
>> Yeah, one of the exciting developments
in deep learning is that computer graphics

43
00:02:09,468 --> 00:02:11,453
is advanced to the point where more and

44
00:02:11,453 --> 00:02:15,735
more groups are considering using computer
graphics to generate images to feed to

45
00:02:15,735 --> 00:02:18,791
these incredibly data hungry
deep learning algorithms.

46
00:02:18,791 --> 00:02:23,124
Several years ago, when computer
graphics was less advanced, it was like

47
00:02:23,124 --> 00:02:27,406
a slightly fishy thing to do to use
computer graphics to synthesize data.

48
00:02:27,406 --> 00:02:31,567
And even though today, using graphics, not
a slam dunk, it does not always work, and

49
00:02:31,567 --> 00:02:33,452
there's still problems quite often.

50
00:02:33,452 --> 00:02:38,054
I thought it was really cool that you were
able to generate a pretty decent data set,

51
00:02:38,054 --> 00:02:40,510
certainly good enough for a learning tool.

52
00:02:40,510 --> 00:02:44,747
And in other context, I see companies
starting to explore these ideas for

53
00:02:44,747 --> 00:02:46,601
more and more settings as well.

54
00:02:46,601 --> 00:02:49,749
>> Yeah, I think as an industry,
we're only getting started with it.

55
00:02:49,749 --> 00:02:53,529
And that's really, really good for
us to experiment with these things.

56
00:02:53,529 --> 00:02:58,002
And hopefully, the students in this course
being able to experiment using these CGI

57
00:02:58,002 --> 00:03:00,840
based data sets will be
a nice introduction for them.

58
00:03:00,840 --> 00:03:05,064
>> Yeah, so more data to feed to this
giant hungry maw of our data hungry deep

59
00:03:05,064 --> 00:03:06,472
learning algorithms.

60
00:03:06,472 --> 00:03:07,220
>> Exactly.

61
00:03:07,220 --> 00:03:11,220
>> So in this week, you get to play
with this cool new data set and

62
00:03:11,220 --> 00:03:15,810
use it to practice implementing building
multi-class classifiers in TensorFlow.

63
00:03:15,810 --> 00:03:16,310
Please dive in.