1 00:00:00,200 --> 00:00:02,500 Hello and welcome to this art tutorial. 2 00:00:02,500 --> 00:00:06,900 So we just connect it to our H2O instance and now things are going to get easy. 3 00:00:07,466 --> 00:00:08,833 That's another reason why. 4 00:00:08,833 --> 00:00:11,166 This H2O package is great. 5 00:00:11,166 --> 00:00:15,233 Because in a few lines of code, we're going to be able to build a complex 6 00:00:15,233 --> 00:00:17,700 deep learning model. And this will be very simple. 7 00:00:17,700 --> 00:00:20,933 We'll just use one function and then input different parameters. 8 00:00:21,066 --> 00:00:26,400 I'm going to first define our classifier that I call classifier then equals. 9 00:00:26,566 --> 00:00:29,266 Then that's. Where we use the H2O. Function. 10 00:00:29,266 --> 00:00:31,200 So to take this function we need to take. 11 00:00:31,200 --> 00:00:34,200 First the H2O package. 12 00:00:34,300 --> 00:00:36,166 And then the function that we're going to use 13 00:00:36,166 --> 00:00:38,133 right now is one of the functions here. 14 00:00:38,133 --> 00:00:38,533 And you are 15 00:00:38,533 --> 00:00:41,866 going to like the name of this function since it is called deep learning. 16 00:00:42,300 --> 00:00:43,700 So that here. 17 00:00:43,700 --> 00:00:45,600 And then. Deep. 18 00:00:45,600 --> 00:00:47,200 And here it is deep learning. 19 00:00:47,200 --> 00:00:48,133 That's the function we'll. 20 00:00:48,133 --> 00:00:50,833 Use to build. Our deep learning model. 21 00:00:50,833 --> 00:00:53,100 Pressing enter and here we go. 22 00:00:53,100 --> 00:00:56,100 Now we just need to input the different arguments. 23 00:00:56,700 --> 00:00:57,933 So what I'm going to do now. 24 00:00:57,933 --> 00:01:00,933 Is go here. And press F1. 25 00:01:01,366 --> 00:01:03,100 To have a better look at all the. 26 00:01:03,100 --> 00:01:05,100 Arguments. Of this H2O. 27 00:01:05,100 --> 00:01:06,800 Deep learning function. 28 00:01:06,800 --> 00:01:07,766 So let's see. 29 00:01:07,766 --> 00:01:10,766 Let's scroll down here to find the arguments. 30 00:01:10,933 --> 00:01:12,266 And here we go. 31 00:01:12,266 --> 00:01:15,533 So the first argument is x vector containing the character 32 00:01:15,533 --> 00:01:17,700 names of the predictors in the model. 33 00:01:17,700 --> 00:01:19,933 That's actually not a required argument. 34 00:01:19,933 --> 00:01:21,000 We don't need to input it. 35 00:01:21,000 --> 00:01:23,000 So we'll move on to the next one. 36 00:01:23,000 --> 00:01:24,233 So the next one is y. 37 00:01:24,233 --> 00:01:27,166 The name of the response variable in the model. 38 00:01:27,166 --> 00:01:27,900 So we will have. 39 00:01:27,900 --> 00:01:31,733 To use this one because actually the next argument is training frame. 40 00:01:31,900 --> 00:01:33,400 And this training frame argument is. 41 00:01:33,400 --> 00:01:35,100 Basically the. Training set. 42 00:01:35,100 --> 00:01:39,466 That means that for this training frame argument will input our training set here. 43 00:01:39,900 --> 00:01:43,400 And since the training set contains both the independent variables 44 00:01:43,400 --> 00:01:45,300 and the dependent variable, we need to. 45 00:01:45,300 --> 00:01:46,800 Specify with this y. 46 00:01:46,800 --> 00:01:50,733 Argument here, what is the dependent variable in this training frame. 47 00:01:50,966 --> 00:01:52,533 That is our training set. 48 00:01:52,533 --> 00:01:55,533 And so with these two informations training frame and y 49 00:01:55,566 --> 00:01:58,766 the model will then understand what is the training set. 50 00:01:58,800 --> 00:02:01,933 What are the independent variables and what is the dependent variable. 51 00:02:02,333 --> 00:02:03,466 So let's start. 52 00:02:03,466 --> 00:02:05,366 By inputting these two arguments. 53 00:02:05,366 --> 00:02:07,600 First y equals. 54 00:02:07,600 --> 00:02:12,066 And as you can see it is just asking for the name of the response variable. 55 00:02:12,066 --> 00:02:13,500 That is the dependent variable. 56 00:02:13,500 --> 00:02:15,133 So here we just need to. 57 00:02:15,133 --> 00:02:18,233 Input in quotes the name of the dependent variable. 58 00:02:18,333 --> 00:02:20,433 Which is exited. 59 00:02:20,433 --> 00:02:23,433 All right done for the first argument comma. 60 00:02:23,500 --> 00:02:26,233 And then moving on to the second argument. 61 00:02:26,233 --> 00:02:30,633 So the second argument is training underscore frame. 62 00:02:31,700 --> 00:02:32,700 Here we go. 63 00:02:32,700 --> 00:02:34,233 And so that's our training set. 64 00:02:34,233 --> 00:02:37,800 And therefore we input here training set. 65 00:02:38,233 --> 00:02:38,533 All right. 66 00:02:38,533 --> 00:02:41,133 But now be. Careful because as it is said. 67 00:02:41,133 --> 00:02:43,866 In this training frame argument info here. 68 00:02:43,866 --> 00:02:46,866 This is an H2O frame object. 69 00:02:47,033 --> 00:02:50,100 And right now our training set is not an H2O frame object. 70 00:02:50,366 --> 00:02:51,866 It is just. A training set. 71 00:02:51,866 --> 00:02:53,233 That is a data frame. 72 00:02:53,233 --> 00:02:55,266 But that's not an H2O frame. 73 00:02:55,266 --> 00:02:57,166 So we need to convert. 74 00:02:57,166 --> 00:02:57,600 This. 75 00:02:57,600 --> 00:03:00,633 Data frame training set into an H2O frame. 76 00:03:01,000 --> 00:03:03,433 And to do this, there is one very simple way. 77 00:03:03,433 --> 00:03:07,533 It is to use the as dot h2o. 78 00:03:07,666 --> 00:03:08,400 Function. 79 00:03:08,400 --> 00:03:12,200 That is a function that will convert its input here training 80 00:03:12,200 --> 00:03:16,400 set that so far as a data frame into a H2O frame, 81 00:03:16,966 --> 00:03:20,666 and therefore this training frame argument is getting what it is expecting. 82 00:03:21,166 --> 00:03:21,633 Great. 83 00:03:21,633 --> 00:03:23,433 Second argument done come up. 84 00:03:23,433 --> 00:03:25,900 Moving on to the third argument. 85 00:03:25,900 --> 00:03:27,633 So what is the third argument now? 86 00:03:27,633 --> 00:03:31,133 Well, we have other arguments like model ID but we won't use it. 87 00:03:31,433 --> 00:03:33,000 Overwrite. With best models. 88 00:03:33,000 --> 00:03:34,466 So that's some other options. 89 00:03:34,466 --> 00:03:35,966 But let's not focus on that right now. 90 00:03:35,966 --> 00:03:38,000 That's not the most important. 91 00:03:38,000 --> 00:03:43,200 Then simple validation frame checkpoints autoencoder pre-trained autoencoder. 92 00:03:43,200 --> 00:03:45,666 So that's again not the most important. 93 00:03:45,666 --> 00:03:48,266 But then moving on to what's most important. 94 00:03:48,266 --> 00:03:49,700 We get to. 95 00:03:49,700 --> 00:03:52,466 Activation, which of course corresponds 96 00:03:52,466 --> 00:03:55,633 to the activation function you want to use for your network. 97 00:03:56,066 --> 00:04:00,866 And so that argument is very important because you saw an intuition 98 00:04:00,866 --> 00:04:04,266 tutorial that some activation functions are better than others. 99 00:04:04,633 --> 00:04:06,366 And actually, as Kirill explained, 100 00:04:06,366 --> 00:04:10,166 the best activation function to use to train an artificial neural network 101 00:04:10,333 --> 00:04:13,800 is the rectifier function, which is this function here on this slide. 102 00:04:14,400 --> 00:04:18,266 And that's the function we'll use right now for artificial neural network. 103 00:04:18,900 --> 00:04:21,000 All right. So let's input activation. 104 00:04:22,033 --> 00:04:22,933 Equals. 105 00:04:22,933 --> 00:04:25,933 And then in quotes. Rectifier. 106 00:04:26,033 --> 00:04:27,866 Make sure to type capital R. 107 00:04:27,866 --> 00:04:30,400 So perfect we have one of the best choices of. 108 00:04:30,400 --> 00:04:35,000 Activation functions for artificial neural network okay great. 109 00:04:35,000 --> 00:04:38,266 And then come up moving on to the fourth argument. 110 00:04:38,700 --> 00:04:40,800 So the fourth argument is actually the one just. 111 00:04:40,800 --> 00:04:42,400 Below. Hidden. 112 00:04:42,400 --> 00:04:44,866 And that's the hidden layer sizes. 113 00:04:44,866 --> 00:04:47,666 That is it's a. Two and one argument. 114 00:04:47,666 --> 00:04:49,500 Because specifying this argument. 115 00:04:49,500 --> 00:04:50,900 Will allow you to specify. 116 00:04:50,900 --> 00:04:53,700 Two parameters of your network at the same time. 117 00:04:53,700 --> 00:04:56,333 The first parameter is the number of hidden layers, 118 00:04:56,333 --> 00:04:59,933 and the second parameter is the number of nodes in each hidden layer. 119 00:05:00,300 --> 00:05:01,700 And so how do we input. 120 00:05:01,700 --> 00:05:02,233 These two. 121 00:05:02,233 --> 00:05:04,866 Parameters in this only one argument here? 122 00:05:04,866 --> 00:05:07,566 Well, we are doing this with a vector. 123 00:05:07,566 --> 00:05:11,533 The number of elements of this vector will be the number of hidden layers, 124 00:05:11,933 --> 00:05:15,833 and the value of each element of this vector will be the number of nodes 125 00:05:15,833 --> 00:05:17,233 in the hidden layer. 126 00:05:17,233 --> 00:05:19,733 So for example here we have c. 127 00:05:19,733 --> 00:05:22,566 So you know C is the way. To define a vector in R. 128 00:05:22,566 --> 00:05:25,066 Then first element of the vector 100 129 00:05:25,066 --> 00:05:27,866 and then second element of the vector 100 again. 130 00:05:27,866 --> 00:05:28,833 So that means that here 131 00:05:28,833 --> 00:05:32,366 we have a vector of two elements and therefore will have two hidden layers. 132 00:05:32,866 --> 00:05:36,100 And in the first hidden layer will have 100 neurons, 133 00:05:36,400 --> 00:05:39,300 and in the second hidden layer will have 100 neurons. 134 00:05:39,300 --> 00:05:40,200 Again. 135 00:05:40,200 --> 00:05:42,966 And now time to ask ourselves a big question, 136 00:05:42,966 --> 00:05:45,966 a question that comes very often when building a deep learning model. 137 00:05:46,266 --> 00:05:48,833 It's how many layers do we want to choose? 138 00:05:48,833 --> 00:05:51,133 That is, how many elements in this vector, 139 00:05:51,133 --> 00:05:54,633 and then how many neurons we want to put in each layer. 140 00:05:55,000 --> 00:05:59,100 So unfortunately, the bad news is that there is no rule of thumb to. 141 00:05:59,100 --> 00:06:01,133 Choose this. Optimal number of hidden layers. 142 00:06:01,133 --> 00:06:04,133 And these optimal numbers of neurons in the hidden layers. 143 00:06:04,266 --> 00:06:06,566 But there is a tip. That we can use. 144 00:06:06,566 --> 00:06:10,400 And this tip is not really based on research, but rather based on experiments. 145 00:06:10,766 --> 00:06:12,366 We observed that. 146 00:06:12,366 --> 00:06:14,066 A convenient choice. Of. 147 00:06:14,066 --> 00:06:17,900 Number of hidden nodes in the hidden layers not the optimal choice. 148 00:06:17,900 --> 00:06:20,333 But. More. A convenient choice. 149 00:06:20,333 --> 00:06:21,500 Is to have the average. 150 00:06:21,500 --> 00:06:24,900 Of the number of input nodes and the number of output nodes. 151 00:06:25,400 --> 00:06:29,533 And as you saw in Carol's intuition tutorial, well, the number of input nodes 152 00:06:29,533 --> 00:06:30,600 in the input layer. 153 00:06:30,600 --> 00:06:32,866 Is. The number of independent variables. 154 00:06:32,866 --> 00:06:36,000 So the number of input nodes in the input layer is ten. 155 00:06:36,000 --> 00:06:38,033 Because we have ten independent variables, 156 00:06:38,033 --> 00:06:41,366 and the number of output node in the output layer is one. 157 00:06:41,666 --> 00:06:44,133 Because again, you saw in Carol's intuition tutorial, 158 00:06:44,133 --> 00:06:47,033 that's when our dependent variable has a binary outcome. 159 00:06:47,033 --> 00:06:49,866 Well, there is only one output node in the output layer. 160 00:06:49,866 --> 00:06:53,333 So that means that the number of neurons will choose in the hidden layer 161 00:06:53,333 --> 00:06:56,500 is going to be ten plus one divided by two. 162 00:06:57,166 --> 00:06:58,500 That is 5.5. 163 00:06:58,500 --> 00:07:00,666 But of course we need to take a round number. 164 00:07:00,666 --> 00:07:02,333 So we'll go for six. 165 00:07:02,333 --> 00:07:04,400 Six neurons in the hidden layer. 166 00:07:04,400 --> 00:07:07,600 And so now to be honest we are not working with some complex data. 167 00:07:07,600 --> 00:07:08,533 Set like for. 168 00:07:08,533 --> 00:07:11,566 Example images to find some patterns in the pixels. 169 00:07:11,800 --> 00:07:13,900 Here we have a simple data. Set with. 170 00:07:13,900 --> 00:07:16,800 Some independent variables and one dependent variable. 171 00:07:16,800 --> 00:07:18,666 And there is no spatial structure in this. 172 00:07:18,666 --> 00:07:21,366 Data set like. It is the case for images. 173 00:07:21,366 --> 00:07:22,000 So to be. 174 00:07:22,000 --> 00:07:24,033 Honest, we don't need many hidden layers. 175 00:07:24,033 --> 00:07:26,600 In fact, I'm pretty sure our Ann and model. 176 00:07:26,600 --> 00:07:27,600 Would work very well. 177 00:07:27,600 --> 00:07:29,766 With only one hidden layer. 178 00:07:29,766 --> 00:07:32,200 But hey, since we are in the deep learning part. 179 00:07:32,200 --> 00:07:34,033 Let's go for. Two hidden layers. 180 00:07:34,033 --> 00:07:36,500 That will not be this kind of deep learning model. 181 00:07:36,500 --> 00:07:38,100 But that will be a start. 182 00:07:38,100 --> 00:07:40,500 All right, so let's input these layers. 183 00:07:40,500 --> 00:07:42,133 With the neurons inside. 184 00:07:42,133 --> 00:07:45,766 So I'm going to add the hidden argument. 185 00:07:46,400 --> 00:07:47,266 Here we go. 186 00:07:47,266 --> 00:07:49,733 And so as you understood we need to. 187 00:07:49,733 --> 00:07:50,666 Specify. 188 00:07:50,666 --> 00:07:53,600 These numbers of layers and these numbers of neurons in the layers. 189 00:07:53,600 --> 00:07:57,000 With a vector. So c parenthesis. 190 00:07:57,300 --> 00:07:58,800 Then the first element of this vector 191 00:07:58,800 --> 00:08:01,133 is the number of neurons in the first hidden layer. 192 00:08:01,133 --> 00:08:02,866 So we said six. 193 00:08:02,866 --> 00:08:05,666 Then comma and then the second element of this vector 194 00:08:05,666 --> 00:08:08,433 is the number of neurons in the second hidden layer. 195 00:08:08,433 --> 00:08:10,800 And so let's. Pick six as well. 196 00:08:10,800 --> 00:08:13,633 Keep in mind that in part ten we will be able to improve. 197 00:08:13,633 --> 00:08:14,600 These choices. 198 00:08:14,600 --> 00:08:17,600 Of parameters thanks to parameter tuning techniques. 199 00:08:17,600 --> 00:08:19,700 Like k fold cross-validation. 200 00:08:19,700 --> 00:08:20,366 But for now. 201 00:08:20,366 --> 00:08:22,733 Let's just focus. On deep learning. 202 00:08:22,733 --> 00:08:23,300 Okay good. 203 00:08:23,300 --> 00:08:26,400 So that's it for this hidden argument. 204 00:08:26,533 --> 00:08:29,533 And so now let's move on to the next argument. 205 00:08:29,733 --> 00:08:33,266 The next argument is going to be the one just below hidden. 206 00:08:33,600 --> 00:08:35,233 That is epochs. 207 00:08:35,233 --> 00:08:36,500 So that is of course. 208 00:08:36,500 --> 00:08:39,833 The number of epochs in the stochastic gradient descent algorithm. 209 00:08:40,000 --> 00:08:42,333 We actually have a. Good description. Here. 210 00:08:42,333 --> 00:08:45,133 The number of epochs. Is. How many times. 211 00:08:45,133 --> 00:08:47,100 The data set should be iterated. 212 00:08:47,100 --> 00:08:48,000 If we go back to. 213 00:08:48,000 --> 00:08:51,500 Our intuition, slide about this stochastic gradient descent algorithm, 214 00:08:51,900 --> 00:08:54,900 well, we can see this number of epochs here in step seven, 215 00:08:55,033 --> 00:08:58,566 when the whole training set completed all the steps from one to. Six. 216 00:08:58,766 --> 00:09:00,333 Passing through the A and then 217 00:09:00,333 --> 00:09:03,933 well that makes an epoch and we redo many more epochs. 218 00:09:04,333 --> 00:09:06,400 So this number of. Epochs here is. 219 00:09:06,400 --> 00:09:10,033 This number of times we are repeating the whole process of steps one to. 220 00:09:10,033 --> 00:09:11,033 Six for the. 221 00:09:11,033 --> 00:09:13,600 Whole training set, either by updating the weights. 222 00:09:13,600 --> 00:09:15,033 After each observation. 223 00:09:15,033 --> 00:09:16,000 Or validating the. 224 00:09:16,000 --> 00:09:18,133 Weights after each batch. Of observations. 225 00:09:18,133 --> 00:09:19,900 For example, ten observations. 226 00:09:19,900 --> 00:09:22,900 So let's add this epochs argument here. 227 00:09:23,166 --> 00:09:24,033 Here we go. 228 00:09:24,033 --> 00:09:27,900 And as in Python we are going to input 100 epochs. 229 00:09:28,700 --> 00:09:29,533 Great. 230 00:09:29,533 --> 00:09:32,400 And now we have one final argument to input. 231 00:09:32,400 --> 00:09:33,000 That is. 232 00:09:33,000 --> 00:09:34,200 Actually the one just below. 233 00:09:34,200 --> 00:09:37,100 Again train samples per iteration. 234 00:09:37,100 --> 00:09:39,766 So what is that you might have guessed. What it is. 235 00:09:39,766 --> 00:09:40,433 Well first the. 236 00:09:40,433 --> 00:09:44,566 Description says that it's the number of training samples per MapReduce iteration. 237 00:09:44,733 --> 00:09:47,733 But more simply that. Is your batch size. 238 00:09:48,100 --> 00:09:51,800 That is the number of observations after which you want to update the weights. 239 00:09:51,800 --> 00:09:53,533 So this number can be one. 240 00:09:53,533 --> 00:09:55,900 If you want to. Update the weights after each observation. 241 00:09:55,900 --> 00:09:59,966 Passing through the A and N, and in that case that's called reinforcement learning. 242 00:09:59,966 --> 00:10:02,966 Exactly as we saw in part six, reinforcement learning 243 00:10:03,100 --> 00:10:05,000 or this number can be more than one. 244 00:10:05,000 --> 00:10:07,366 That is for example, when the weights are updated after. 245 00:10:07,366 --> 00:10:07,633 Each. 246 00:10:07,633 --> 00:10:10,533 Batch of ten observations passing through the end. 247 00:10:10,533 --> 00:10:13,533 And in that case that is called batch learning. 248 00:10:13,900 --> 00:10:16,200 Okay. So let's input this argument. 249 00:10:16,200 --> 00:10:18,566 Train symbols per iteration. 250 00:10:18,566 --> 00:10:20,400 Here it is pressing enter. 251 00:10:20,400 --> 00:10:23,700 And now the good thing is that we don't even need to choose. 252 00:10:23,966 --> 00:10:25,333 A batch size. 253 00:10:25,333 --> 00:10:26,433 Because as you can see we. 254 00:10:26,433 --> 00:10:29,566 Have these three parameters zero. 255 00:10:29,766 --> 00:10:31,400 Minus one and minus two. 256 00:10:31,400 --> 00:10:32,700 And as you can. See. 257 00:10:32,700 --> 00:10:33,766 This minus two. 258 00:10:33,766 --> 00:10:35,966 Value is very practical because by. 259 00:10:35,966 --> 00:10:41,366 Specifying minus two here, this will autotune your artificial neural network. 260 00:10:41,700 --> 00:10:44,933 And that corresponds to the third reason why. H2O. 261 00:10:44,966 --> 00:10:47,366 Was to me one of the. Best packages. 262 00:10:47,366 --> 00:10:48,533 It's because it gives you the. 263 00:10:48,533 --> 00:10:51,300 Option to already apply some parameter tuning. 264 00:10:51,300 --> 00:10:52,900 Parameter tuning can be way more. 265 00:10:52,900 --> 00:10:56,500 Complicated, but here we have this great tool that will already help. 266 00:10:56,500 --> 00:10:58,600 Us to improve the model. 267 00:10:58,600 --> 00:11:01,633 So let's definitely input minus two here. 268 00:11:02,033 --> 00:11:06,333 And actually now artificial neural network is ready. 269 00:11:07,200 --> 00:11:09,933 That's all the parameters we need. To build. 270 00:11:09,933 --> 00:11:11,833 Our artificial neural network. 271 00:11:11,833 --> 00:11:13,966 And we even have some parameter tuning. 272 00:11:13,966 --> 00:11:16,666 So we have. Everything we need and even more than we need. 273 00:11:16,666 --> 00:11:18,266 Therefore let's do it. 274 00:11:18,266 --> 00:11:18,733 I'm going. 275 00:11:18,733 --> 00:11:21,733 To select all. These lines here. 276 00:11:21,766 --> 00:11:24,166 That will create the. Classifier. 277 00:11:24,166 --> 00:11:26,400 And now I just want to say something important for. 278 00:11:26,400 --> 00:11:28,633 Those of you who follow the. Python tutorials. 279 00:11:28,633 --> 00:11:30,900 Well you saw that. Training DNN took quite. 280 00:11:30,900 --> 00:11:31,700 A while. 281 00:11:31,700 --> 00:11:32,366 It took about. 282 00:11:32,366 --> 00:11:34,966 One minute, if I remember correctly, and that was. 283 00:11:34,966 --> 00:11:37,700 Because we used our CPU on our system. 284 00:11:37,700 --> 00:11:41,400 But here we are connected to a server, and so we have access to a powerful. 285 00:11:41,400 --> 00:11:43,800 System using this. H2O. Instance. 286 00:11:43,800 --> 00:11:45,600 And therefore. You will see how. 287 00:11:45,600 --> 00:11:48,600 The model is going to be trained much faster. 288 00:11:48,633 --> 00:11:51,500 We are going to see that right now I'm going to execute. 289 00:11:51,500 --> 00:11:54,433 Ready. Three two. One. Go. 290 00:11:57,533 --> 00:11:58,466 And that's it. 291 00:11:58,466 --> 00:11:59,866 That's already ready. 292 00:11:59,866 --> 00:12:02,400 It took about five seconds. 293 00:12:02,400 --> 00:12:03,700 So that's pretty exciting. 294 00:12:03,700 --> 00:12:05,700 To work. With such powerful tools. 295 00:12:05,700 --> 00:12:07,466 I was very happy to show you this. 296 00:12:07,466 --> 00:12:09,300 And I hope that now you're convinced. 297 00:12:09,300 --> 00:12:11,833 That with this H2O package you are. 298 00:12:11,833 --> 00:12:13,666 In good hands. So great. 299 00:12:13,666 --> 00:12:15,366 And now that our model is trained, 300 00:12:15,366 --> 00:12:18,833 time for the next step making predictions on the test set. 301 00:12:19,400 --> 00:12:21,200 And that will be very interesting to do. 302 00:12:21,200 --> 00:12:23,133 To see the accuracy on new. 303 00:12:23,133 --> 00:12:25,833 Observations on which the model wasn't trained. 304 00:12:25,833 --> 00:12:27,633 So we'll see that in the next tutorial. 305 00:12:27,633 --> 00:12:30,633 And until then, enjoy machine learning.