1
00:00:00,390 --> 00:00:09,330
Artificial intelligence is everywhere, be it in optical character recognition systems like this, which

2
00:00:09,330 --> 00:00:19,230
help automatically extract information from files in object detection systems where the machine's able

3
00:00:19,230 --> 00:00:22,060
to understand its environment.

4
00:00:22,080 --> 00:00:32,400
In visual inspection systems, like in this case, where landing AI is using this artificial intelligence

5
00:00:32,400 --> 00:00:36,180
tool to detect defects in electronic equipments.

6
00:00:36,390 --> 00:00:43,800
We also have this in the health sector where we detect certain diseases in the human breast.

7
00:00:44,010 --> 00:00:54,660
We have applications and image captioning, self-driving cars, voice transcriptions and question and

8
00:00:54,660 --> 00:00:56,730
screen, just to name a few.

9
00:00:56,760 --> 00:01:02,550
Before taking a look at these different tools will be using produce cars.

10
00:01:02,580 --> 00:01:05,730
Let's start with an introduction to deep learning.

11
00:01:06,060 --> 00:01:13,050
Deep learning is part of this vast computer science domain known as artificial intelligence.

12
00:01:13,350 --> 00:01:24,420
Artificial intelligence itself involves teaching computers or machines do tasks which are usually done

13
00:01:24,420 --> 00:01:32,130
by humans in classical, artificial intelligence or A.I. algorithms.

14
00:01:32,520 --> 00:01:42,690
We feed the computer with a set of rules such that when given the inputs, the machine is able to produce

15
00:01:42,690 --> 00:01:43,890
some output.

16
00:01:44,280 --> 00:01:52,410
So supposing we want to build an AI algorithm which teaches a computer how to play the game of chess?

17
00:01:52,440 --> 00:02:01,980
In that case, you'd pass in a set of well-defined rules such that the machine learns how to play the

18
00:02:01,980 --> 00:02:06,690
game of chess based on the rules you've given it.

19
00:02:06,900 --> 00:02:16,500
Now, in other subfields of artificial intelligence like machine learning, the way the machine learns

20
00:02:16,500 --> 00:02:18,330
is quite different.

21
00:02:18,840 --> 00:02:29,310
In this case, what we have is a machine learning model which has been given initially the inputs and

22
00:02:29,310 --> 00:02:30,420
the outputs.

23
00:02:30,420 --> 00:02:38,310
So the machine initially gets both the inputs and the outputs.

24
00:02:38,460 --> 00:02:44,850
And usually we're dealing with a pretty large number of input output pairs.

25
00:02:45,120 --> 00:02:52,950
Once the machine is done learning from this training examples which make up what we call the training

26
00:02:52,950 --> 00:03:05,440
set, the machine is now fed with new input, which it hasn't ever seen based on just this input.

27
00:03:05,460 --> 00:03:10,830
The model is now able to predict a new output.

28
00:03:11,670 --> 00:03:14,340
Let's look at this simple example.

29
00:03:14,730 --> 00:03:24,090
Yeah, we're having this detect run tool car damage detection notebook from Kaggle in which we have

30
00:03:24,090 --> 00:03:35,760
this dataset which can permit us to train a model such that it learns how to correctly say whether a

31
00:03:35,760 --> 00:03:38,220
car has been damaged or not.

32
00:03:38,970 --> 00:03:50,940
In some cases, we may be able to say exactly at what point or in what region is the damage.

33
00:03:51,240 --> 00:03:56,520
So looking at this car here, we see clearly that is a damaged car.

34
00:03:57,000 --> 00:03:59,130
We could click on this other one.

35
00:03:59,160 --> 00:04:05,520
See, we have this damage, this we have this damage and so on and so forth.

36
00:04:05,550 --> 00:04:14,460
Before going any farther, let's understand how this machine learning models are built such that they

37
00:04:14,460 --> 00:04:16,290
could learn from theater.

38
00:04:17,640 --> 00:04:23,370
Firstly, we suppose we have this input data that this input image right here.

39
00:04:23,370 --> 00:04:28,710
And then we have an output which is taking a value of say, one.

40
00:04:28,710 --> 00:04:35,970
Now this value could be zero in the case where this image isn't that of a damaged car.

41
00:04:35,970 --> 00:04:39,630
So if it's an undamaged car, we have the value zero.

42
00:04:39,630 --> 00:04:41,040
In this case it is one.

43
00:04:41,040 --> 00:04:43,680
So we have this our output.

44
00:04:43,680 --> 00:04:51,180
Why would take this value one Now our system takes in this image.

45
00:04:51,180 --> 00:04:56,580
It does some preprocessing and then we have our input x.

46
00:04:56,580 --> 00:04:59,610
This is the input which gets into the model.

47
00:04:59,710 --> 00:05:04,900
Now machine learning models could serve in several domains.

48
00:05:04,900 --> 00:05:14,140
And so this preprocessing unit right here is highly dependent on the domain in which we're working on.

49
00:05:14,140 --> 00:05:20,800
So if we're working in NLP, that's natural language processing and we have, for example, input which

50
00:05:20,800 --> 00:05:31,420
a text will have this pre processing unit build such that we are able to convert that text into information

51
00:05:31,420 --> 00:05:34,330
that the model will understand.

52
00:05:34,510 --> 00:05:46,390
In this case we are having this input image which itself is made of pixels which each take values ranging

53
00:05:46,390 --> 00:05:50,620
from 0 to 255.

54
00:05:50,830 --> 00:05:55,360
So now we will not get into how this pre processing unit works.

55
00:05:55,360 --> 00:06:00,220
We just understand that we have this pre processing and we have the input.

56
00:06:00,580 --> 00:06:06,190
Now once we have this input, we get straight into the model right here.

57
00:06:06,190 --> 00:06:07,630
So we'll just have this.

58
00:06:07,630 --> 00:06:10,200
We suppose that here is our model.

59
00:06:10,210 --> 00:06:19,990
We're using a very simplified model right here so that anyone could understand regardless of your background.

60
00:06:19,990 --> 00:06:26,260
So you don't need to have a math degree to understand what we have to explain right here.

61
00:06:27,130 --> 00:06:34,620
And trust me, if you could understand this, then you'll find because in this class will stress more

62
00:06:34,630 --> 00:06:42,280
on how to use tools like TensorFlow and Huggin Face to train your machine learning models.

63
00:06:42,280 --> 00:06:44,200
So let's look at this.

64
00:06:44,320 --> 00:06:51,790
We have this input X, which we've seen already, and then this input is passed into these two functions.

65
00:06:51,790 --> 00:07:00,730
We have F of x one and then we have f of x to the way f of x one is gotten from x is that we we have

66
00:07:00,730 --> 00:07:01,600
in a constant.

67
00:07:01,600 --> 00:07:07,720
So let's put in a constant here A we have a one and then right here we have a two.

68
00:07:08,380 --> 00:07:13,570
Yeah, let's say we have B one and here we have B two.

69
00:07:13,750 --> 00:07:22,780
So the way we get this F of x one is simply saying F of x one, that is we have this f of x one equals

70
00:07:22,780 --> 00:07:31,660
x, this input times this constant a one which gives us now F of x one and then f of x two.

71
00:07:33,010 --> 00:07:36,970
Is equals X times the constant a two.

72
00:07:37,000 --> 00:07:42,220
Now notice how we have for each path its own constant.

73
00:07:42,220 --> 00:07:45,340
So here we have f of x one, f of x two.

74
00:07:45,370 --> 00:07:47,980
Now how do we get the output y?

75
00:07:48,070 --> 00:07:50,360
We repeat the same process.

76
00:07:50,380 --> 00:07:57,130
Yeah, we have Y equals B one times f of x one.

77
00:07:57,610 --> 00:08:02,580
So we have b one times f of x one.

78
00:08:02,590 --> 00:08:10,480
But notice that to obtain y, we also need to take into consideration this information which is passing

79
00:08:10,480 --> 00:08:12,940
in this direction right here.

80
00:08:12,970 --> 00:08:21,310
So what we have now is instead of just having B one times F of x one, we have b one times f of x one

81
00:08:21,310 --> 00:08:28,240
plus b two times f of x two.

82
00:08:29,410 --> 00:08:37,510
And if we make use of what we had right here, we see that F of x one is a one times x, so we have

83
00:08:37,510 --> 00:08:41,440
a one times x f of x two is a two times x.

84
00:08:41,830 --> 00:08:42,600
There we go.

85
00:08:42,610 --> 00:08:48,340
We have seen how from this inputs we're able to obtain the outputs.

86
00:08:49,330 --> 00:08:54,730
But how does this permit the machine to learn from this input data?

87
00:08:54,910 --> 00:09:01,360
The way this works is we have here this constants which are known as weights.

88
00:09:01,750 --> 00:09:09,520
So in case you new to machine learning, you would have to get accustomed to this term as you will be

89
00:09:09,520 --> 00:09:11,520
using it very frequently.

90
00:09:11,530 --> 00:09:22,210
So right here we have what we call the weights which define the way the model will produce an output

91
00:09:22,210 --> 00:09:24,430
based on the inputs.

92
00:09:24,700 --> 00:09:33,190
So this means that once you pass in an input like this image right here, this weights are modify,

93
00:09:33,190 --> 00:09:33,470
right?

94
00:09:33,490 --> 00:09:45,490
So let's suppose that we initialize the waist to a value of say 0.02 right here E two equals 0.02 and

95
00:09:45,490 --> 00:09:47,690
this 0.0 to the 0.02.

96
00:09:47,710 --> 00:09:51,830
So we have all these four values initialized at 0.02.

97
00:09:51,850 --> 00:09:55,830
Then we'll have a certain output right here.

98
00:09:55,840 --> 00:10:05,290
But then if we know that we have this input and we have an output of one, then with our machine learning

99
00:10:05,290 --> 00:10:15,910
algorithm, we are able to modify this weights or this parameters right here such that once we get the

100
00:10:15,910 --> 00:10:17,050
image.

101
00:10:17,950 --> 00:10:26,740
We are able to get the corresponding output, which matches exactly what we expect.

102
00:10:27,370 --> 00:10:34,660
That said, after training our model, instead of having a value of, say, 0.02 here, we may have

103
00:10:34,660 --> 00:10:42,910
a value of six zero and yet we have a value of say, 0.3, yet we may have 0.4.

104
00:10:42,910 --> 00:10:46,720
And then maybe I will have a value of 0.02.

105
00:10:46,750 --> 00:10:55,960
Now, note that this is a very simplified model, and this is not the kind of models we use in practice

106
00:10:55,960 --> 00:11:04,120
to learn from this kind of input data, like images, as we could see here.

107
00:11:05,080 --> 00:11:09,250
But nonetheless, the principles still remain the same.

108
00:11:09,670 --> 00:11:15,400
So coming back to our model, we have seen that we have this input to the model.

109
00:11:15,400 --> 00:11:22,570
We have this intermediary values here which will call neurons.

110
00:11:23,020 --> 00:11:31,990
We have this constants which are modified during the training process such that they are values permit

111
00:11:31,990 --> 00:11:37,280
us to get certain outputs based on the inputs.

112
00:11:37,300 --> 00:11:42,070
So yeah, we have our weights A, 1a2, B one, B two.

113
00:11:42,220 --> 00:11:50,830
Now, in machine learning today and deep learning, we're used to having models which are over even

114
00:11:50,830 --> 00:11:53,680
up to a billion parameters.

115
00:11:53,680 --> 00:12:03,040
So you hear that this model or that other model has a billion parameters and that simply means we have

116
00:12:03,040 --> 00:12:05,980
a billion of these types of constants.

117
00:12:05,980 --> 00:12:13,660
So this is a tell you of how complex the models we deal with today have become.

118
00:12:14,550 --> 00:12:25,770
We could complex the father's model by having this even more complex or better set deeper model by the

119
00:12:25,980 --> 00:12:32,010
year will simply mean that we have stacked many more layers.

120
00:12:32,040 --> 00:12:38,280
Now, note that here we had the weights, we had this neurons, and then we have the layer.

121
00:12:38,790 --> 00:12:52,380
So understand that a layer is simply these nodes are nuance right here, which have a common input and

122
00:12:52,380 --> 00:12:54,480
a common output.

123
00:12:56,310 --> 00:13:07,410
And the way this layer or the way this neurons and the layer interact with the input in order to produce

124
00:13:07,410 --> 00:13:12,810
the outputs is dependent on the type of layer we're working with.

125
00:13:13,080 --> 00:13:15,900
Sometimes we may have dense layers.

126
00:13:17,290 --> 00:13:20,910
Dense or what we call linear layers.

127
00:13:20,920 --> 00:13:23,200
That's practically what we just saw.

128
00:13:23,950 --> 00:13:30,430
Right now, that's where we had to take the input, multiply by some weight and then get the output.

129
00:13:30,430 --> 00:13:33,700
So those are dense layers.

130
00:13:33,910 --> 00:13:38,170
And then we could also have convolutional layers.

131
00:13:38,170 --> 00:13:40,750
We'll see this subsequently.

132
00:13:40,870 --> 00:13:43,150
We could have recurrent layers.

133
00:13:47,750 --> 00:13:50,030
We could also have Transformers

134
00:13:53,750 --> 00:14:02,540
and a host of many other different layers, which we could create so we could have your transformers.

135
00:14:02,960 --> 00:14:07,220
Now, note that these are the most common which you'll use in practice.

136
00:14:07,220 --> 00:14:09,380
That's in deep learning practice.

137
00:14:11,090 --> 00:14:14,720
Now, we just mentioned the term deep learning.

138
00:14:16,320 --> 00:14:26,070
It's in fact a branch of machine learning, but one in which specializes with models which have many

139
00:14:26,070 --> 00:14:31,890
layers, which are stacked between the inputs and the outputs.

140
00:14:33,100 --> 00:14:35,560
Hence the term deep learning.

141
00:14:35,890 --> 00:14:43,480
Also note that this kind of machine learning model is known as a neural network.

142
00:14:43,660 --> 00:14:51,250
So as we get into this course, one of the most important points to note is that the machine learning

143
00:14:51,250 --> 00:14:57,790
model can't do much without proper data.

144
00:14:58,090 --> 00:15:05,080
So make sure you treat your data very well by treating your data very well.

145
00:15:05,770 --> 00:15:13,600
We simply mean gathering as much useful and clean data as possible.

146
00:15:14,020 --> 00:15:19,000
To elaborate on that point concerning the useful data.

147
00:15:19,180 --> 00:15:27,610
Let's consider that you've trained to model, which is able to take as input this kind of image and

148
00:15:27,610 --> 00:15:33,700
then correctly say that this is a damaged car.

149
00:15:33,910 --> 00:15:43,120
Now, supposing all these images were captured at the time and that you now have to do predictions or

150
00:15:43,120 --> 00:15:47,110
the model has to do predictions in night time.

151
00:15:48,190 --> 00:16:01,030
But because the model has been taught how to predict an input image, to contain a damaged car by using

152
00:16:01,060 --> 00:16:09,940
images or inputs from daytime, this model may not perform very well.

153
00:16:10,180 --> 00:16:17,410
From the moment you start building machine learning models and training them, you may be tempted to

154
00:16:17,410 --> 00:16:24,040
think that a machine learning project is all about just building a model and then training it.

155
00:16:25,600 --> 00:16:34,120
That's why we said previously that you have to be very careful about the way you deal with your data.

156
00:16:34,690 --> 00:16:41,140
That said, let's look at our proposed machine learning development lifecycle.

157
00:16:42,430 --> 00:16:49,840
When building a machine learning product will want to start with a task like in this case where we want

158
00:16:49,840 --> 00:16:52,570
to detect damaged cars.

159
00:16:53,800 --> 00:17:04,330
Our task will be that of taking in as input an image and predicting whether that image contains a damaged

160
00:17:04,330 --> 00:17:05,860
car or not.

161
00:17:06,100 --> 00:17:09,800
Then we'll move on to data and the stage of data.

162
00:17:09,820 --> 00:17:19,480
We may make use of readily available data on the internet, or as in most cases, we would have to gather

163
00:17:19,480 --> 00:17:22,120
our own data by ourselves.

164
00:17:22,480 --> 00:17:34,720
Now imagine building a model based off a certain type of car, and then one in the test, that same

165
00:17:34,720 --> 00:17:41,830
model on a completely different set of cars or completely different type of cars.

166
00:17:43,000 --> 00:17:45,930
That obviously wouldn't be a great idea.

167
00:17:45,940 --> 00:17:54,250
So upfront, we have to make sure we gather useful and representative data.

168
00:17:55,450 --> 00:18:01,780
In the next step, we'll go straight into the modeling that is coming up with some machine learning

169
00:18:01,780 --> 00:18:09,580
or deep learning model which will permit us to extract useful information from the inputs.

170
00:18:10,210 --> 00:18:18,160
In this case, where we'll want to know, extract this information on whether the car is damaged or

171
00:18:18,160 --> 00:18:18,730
not.

172
00:18:18,880 --> 00:18:24,790
We would use typically convolutional neural networks.

173
00:18:25,270 --> 00:18:30,310
We'll be looking at this shortly, so don't bother if you don't understand that.

174
00:18:31,000 --> 00:18:35,920
From this we'll go straight into error sanctioning in error sanction.

175
00:18:35,920 --> 00:18:44,170
And basically what we're doing is we're telling the model that in this example, as we have here, we

176
00:18:44,170 --> 00:18:50,670
know that we have this image and that the output is meant to be a one saying that it's a damaged car.

177
00:18:50,680 --> 00:19:01,270
So if our model readjusts, this is weights such that the output we have here is a zero, then we are

178
00:19:01,270 --> 00:19:09,220
going to penalize the model for producing the wrong output since we know the right output.

179
00:19:09,250 --> 00:19:15,010
And so this is that process of error sanctioning, which is part of our training process.

180
00:19:15,130 --> 00:19:22,810
But before getting to training, we have to define our error function, loss function.

181
00:19:23,290 --> 00:19:30,790
From this, we go straight into training and optimization using the gradient descent algorithm or a

182
00:19:30,790 --> 00:19:32,080
variance of the gradient.

183
00:19:32,950 --> 00:19:35,000
We'll look at this shortly.

184
00:19:35,050 --> 00:19:42,630
And then from there, we have to evaluate our model so it doesn't suffice just to train the model.

185
00:19:42,640 --> 00:19:48,010
We also have to evaluate this model from evaluation validation.

186
00:19:48,010 --> 00:19:54,390
We get into testing the model that is actually seen whether this model works.

187
00:19:54,400 --> 00:20:01,600
And from there, based on those performances, we are able to come up with some corrective measures.

188
00:20:01,600 --> 00:20:06,340
So take note that we don't just build and then finally test.

189
00:20:06,340 --> 00:20:14,800
But we also have this feedback where based on what we see, based on the performance of our model,

190
00:20:14,800 --> 00:20:22,420
we are able to come up with some corrective measures at the different stages of our pipeline.

191
00:20:22,420 --> 00:20:30,310
So we have, for example, the data so we could modify the data, even case models and performing very

192
00:20:30,310 --> 00:20:30,730
well.

193
00:20:30,730 --> 00:20:37,420
We could go ahead and gather much data or much more data, much more representative, useful and clean

194
00:20:37,420 --> 00:20:38,080
data.

195
00:20:38,080 --> 00:20:45,010
We could go ahead and modify the model, modify the error function, modify the training process, modify

196
00:20:45,010 --> 00:20:46,540
the hyper parameters.

197
00:20:46,540 --> 00:20:53,380
We're going to look at this shortly and ensure that we get the best out of our model.

198
00:20:53,380 --> 00:21:01,000
But as we said right from the beginning, you shouldn't get scared, as in this course will be using

199
00:21:01,000 --> 00:21:10,450
tools like TensorFlow hugging, face weights and biases and cube flow to help us in our machine learning

200
00:21:10,450 --> 00:21:12,220
development lifecycle.

201
00:21:12,220 --> 00:21:19,180
You now understand that deep learning is part of machine learning, which itself is part of artificial

202
00:21:19,180 --> 00:21:20,170
intelligence.

203
00:21:20,500 --> 00:21:27,610
Let's look at this categorization of machine learning algorithms.

204
00:21:27,610 --> 00:21:36,290
We have supervised learning, unsupervised learning and reinforcement learning and supervised learning.

205
00:21:36,310 --> 00:21:43,690
What we have is very similar to what we've seen already, where we have a model which has been trained

206
00:21:43,690 --> 00:21:46,150
with input output pairs.

207
00:21:46,970 --> 00:21:55,310
Whereas with unsupervised learning, we don't have this output during training, so we just pass on

208
00:21:55,310 --> 00:21:59,450
the inputs and the model learns from this inputs.

209
00:21:59,810 --> 00:22:08,480
This turns out to be very interesting in cases where getting the outputs is quite tedious.

210
00:22:10,020 --> 00:22:12,590
Let's take this simple example.

211
00:22:12,660 --> 00:22:16,630
Suppose we have this input right here.

212
00:22:16,650 --> 00:22:18,480
That's an input speech.

213
00:22:19,440 --> 00:22:21,420
Let's have this input speech.

214
00:22:21,420 --> 00:22:28,440
And then we have this model which takes in this input speech and then transcribes it.

215
00:22:28,470 --> 00:22:32,450
So suppose we say hello and then we transcribe this.

216
00:22:32,460 --> 00:22:33,780
We have Hello.

217
00:22:35,190 --> 00:22:42,270
We could build a model as a model like this, which does this transcription automatically.

218
00:22:42,720 --> 00:22:47,740
And to build this kind of model, we need the inputs and the outputs.

219
00:22:47,760 --> 00:22:51,090
Hence, this is a supervised learning problem.

220
00:22:51,420 --> 00:22:59,940
But then if we're able to come up with a model which doesn't need this transcriptions, then all we'll

221
00:22:59,940 --> 00:23:04,290
be doing is simply passing in this input voice.

222
00:23:04,290 --> 00:23:14,280
And then the model automatically learns how to extract this vocal information automatically.

223
00:23:15,390 --> 00:23:20,280
In that case, we're having an unsupervised learning problem.

224
00:23:21,090 --> 00:23:28,710
We see that if we're the training model using the supervised learning technique and we need we're working

225
00:23:28,710 --> 00:23:38,490
with, say, 100 K input audio sounds, we'll need a hundred K different transcriptions.

226
00:23:38,580 --> 00:23:49,170
Whereas in the case of unsupervised learning, we could simply gather this voice data without bothering

227
00:23:49,170 --> 00:23:54,840
ourselves on how or where we're going to get the transcriptions from.

228
00:23:55,290 --> 00:24:08,130
This permits us not only easily trained such models, but also help in expanding or better still, democratizing

229
00:24:08,130 --> 00:24:18,090
the use of such machine learning models as now someone in some village in India could just produce training

230
00:24:18,090 --> 00:24:27,540
data in the local language very easily, since now we do not need the outputs that are the transcriptions

231
00:24:27,540 --> 00:24:28,160
anymore.

232
00:24:28,170 --> 00:24:34,710
So all we need to do is just passing the inputs and the model learns from this inputs.

233
00:24:35,490 --> 00:24:39,450
The other type of machine learning is reinforcement learning.

234
00:24:40,050 --> 00:24:46,290
To understand reinforcement learning, we are going to consider an environment, an interpreter, and

235
00:24:46,290 --> 00:24:47,070
an agent.

236
00:24:47,580 --> 00:24:52,620
The interpreter gets information about the environment and then passes it on to the agent.

237
00:24:53,220 --> 00:24:59,280
And then the interpreter rewards the agents, depending on how well it took this action.

238
00:24:59,730 --> 00:25:06,600
And so at the end, we have this agent, which is learning how to take the best actions since it's been

239
00:25:06,600 --> 00:25:08,250
rewarded by the interpreter.

240
00:25:09,060 --> 00:25:12,480
A simple application of this could be in the chess game.

241
00:25:12,840 --> 00:25:19,110
So our environment is a chess board, and then we are trying to train these agents to make the best

242
00:25:19,110 --> 00:25:27,780
moves based on the current state of the environment and also using the reward system from the interpreter.

243
00:25:27,810 --> 00:25:35,670
One of the main reasons why machine learning and deep learning today have become very popular is thanks

244
00:25:35,670 --> 00:25:41,790
to the fact that we have huge amounts of data available to the.

245
00:25:44,440 --> 00:25:54,790
And it also turns out that as we increase the training data, that is the data we use in helping our

246
00:25:54,790 --> 00:26:03,400
models better understand the environment, there is an increase in performance when it comes to deep

247
00:26:03,400 --> 00:26:05,200
learning algorithms.

248
00:26:05,320 --> 00:26:14,890
So where the classical machine learning algorithms start plateauing, the deep learning algorithms keep

249
00:26:14,890 --> 00:26:17,260
performing even better.

250
00:26:18,100 --> 00:26:30,010
That said, today we have specialized hardware like the GPUs and CPU's, which parameters train these

251
00:26:30,010 --> 00:26:36,280
models way faster than what we would have done about 20 years ago.

252
00:26:36,520 --> 00:26:47,560
Finally, we also have machine learning algorithms which are state of art methods in several domains

253
00:26:47,560 --> 00:26:51,490
like computer vision and natural language processing.

254
00:26:51,520 --> 00:27:00,880
Apart from this algorithms, we have amazing tools which permit developers all around the world come

255
00:27:00,880 --> 00:27:05,560
up with deep learning and machine learning algorithms very quickly.

256
00:27:06,220 --> 00:27:15,280
Before the days of tools like TensorFlow and PyTorch, developers had to write their own machine learning

257
00:27:15,280 --> 00:27:17,320
algorithms all from scratch.

258
00:27:17,410 --> 00:27:28,180
But today, that's no longer the case as we have a fully fledged TensorFlow ecosystem consisting of

259
00:27:28,900 --> 00:27:38,110
different components which permit anybody load and pre process data for training these models, building,

260
00:27:38,110 --> 00:27:46,000
training, reusing and evaluating the models and then deploying these models.

261
00:27:46,030 --> 00:27:52,870
This deployment can be done on different platforms like the cloud, like mobile platforms, the web

262
00:27:53,230 --> 00:27:57,430
and many other edge hardware devices.

263
00:27:57,880 --> 00:28:07,060
Apart from deep learning libraries like TensorFlow, PyTorch or Fast AI, we also have domain focused

264
00:28:07,060 --> 00:28:14,770
products like hugging face, now hugging faces made of thousands of different computer vision models

265
00:28:14,770 --> 00:28:23,830
which help in solving different computer vision tasks like image classification, image segmentation,

266
00:28:24,130 --> 00:28:32,140
image to image generation on conditional image generation, object detection, that estimation and video

267
00:28:32,140 --> 00:28:33,220
classification.

268
00:28:33,340 --> 00:28:40,060
And so picking one of these transformer based models does the white that which stands for vision transformer.

269
00:28:40,120 --> 00:28:46,420
We could see here, for example, that if we pick this image of a tiger, you see it's going to classify

270
00:28:46,420 --> 00:28:49,990
this correctly as a tiger.

271
00:28:50,620 --> 00:28:53,400
We could go ahead and pick some other task.

272
00:28:53,410 --> 00:28:57,010
Let's pick, say, object detection.

273
00:28:57,550 --> 00:28:57,970
Yeah.

274
00:28:57,970 --> 00:29:00,610
For example, you have this digital model.

275
00:29:01,210 --> 00:29:02,620
Let's pick an example from year.

276
00:29:02,620 --> 00:29:08,800
You could obviously drag an image or some image you have in your PC on the cloud.

277
00:29:08,800 --> 00:29:11,130
But let's pick this one on.

278
00:29:11,530 --> 00:29:13,600
Okay, Let's say football match.

279
00:29:14,080 --> 00:29:15,520
There we go.

280
00:29:16,420 --> 00:29:18,940
You see, all these different objects are detected.

281
00:29:18,940 --> 00:29:21,430
You have persons, you have.

282
00:29:21,850 --> 00:29:25,210
Yeah, persons, you have ball and that's it.

283
00:29:25,210 --> 00:29:32,860
So you see that we have this pre-trained models available for this different tasks.

284
00:29:33,760 --> 00:29:40,600
Now, when running machine learning experiments, it may happen that for even the same problem, you

285
00:29:40,600 --> 00:29:48,500
run the experiment like 700 times and then you want to track those models which perform the best.

286
00:29:48,520 --> 00:29:50,150
Apart from tracking the model.

287
00:29:50,170 --> 00:29:56,500
You may also want to version even the data you are using the train these models.

288
00:29:57,660 --> 00:30:07,110
Waiting biases is one tool which comes very handy in helping you manage your machine learning projects.

289
00:30:07,440 --> 00:30:10,860
This is trusted by over 100,000 machine learning.

290
00:30:10,860 --> 00:30:17,130
Practitioners could integrate very quickly in the common machine learning libraries.

291
00:30:17,230 --> 00:30:23,520
You can see your tensorflow pytorch, keras psi kite hugging phase, xg boost.

292
00:30:23,910 --> 00:30:32,550
And so to help you manage your machine learning projects while working or without changing much on your

293
00:30:32,550 --> 00:30:33,690
initial code.

294
00:30:34,890 --> 00:30:38,970
We also have this right here visualizations.

295
00:30:38,970 --> 00:30:48,120
So you see we're going to look at this shortly, but we could have this type of hyper parameter tuning

296
00:30:48,120 --> 00:30:52,470
visualizations and even the model prediction visualizations.

297
00:30:53,430 --> 00:30:56,340
Lastly, we could collaborate in real time.

298
00:30:56,340 --> 00:31:03,900
So if you're on a team and we want to discuss the current state of a machine learning project, weights

299
00:31:03,900 --> 00:31:09,000
and biases is the right tool in this course.

300
00:31:09,000 --> 00:31:17,130
The environment we shall be using in building and training our models would be the Google CoLab.

301
00:31:17,130 --> 00:31:21,810
So you can head to Google Collab.

302
00:31:22,410 --> 00:31:24,780
I could check out this

303
00:31:27,420 --> 00:31:31,950
collab notebook which shows you how to make use of CoLab.

304
00:31:33,030 --> 00:31:34,940
And so that's it for the section.

305
00:31:34,950 --> 00:31:36,240
See you in the next section.
