WEBVTT 00:00.000 --> 00:21.320 Now it's OK, oh wow, I'm magnified, OK, so we're already started of bad high 00:21.400 --> 00:29.040 I'm Yens, I work at SAP on the SNAP programming language, together with my friends and you see 00:29.040 --> 00:34.920 Berkeley and with more friends at SAP you are also working on this and working here, anybody 00:34.920 --> 00:44.560 ever worked with scratch or snap, same scratches, like snap, something OK, so here's one thing 00:44.560 --> 00:51.200 I got the sticker yesterday, it says no AI and I'm about to put it on my laptop because 00:51.280 --> 00:55.440 this is sort of the thing that has been harassing all of us, right? 00:55.440 --> 01:01.440 Whether we're programmers, whether we're educators, just AI keeps popping up being this 01:01.440 --> 01:08.640 huge thing that everybody except us seems to be talking about as the good thing and we are 01:08.640 --> 01:15.680 kind of thinking it might not be the best thing and it'll be great if people actually 01:15.680 --> 01:24.240 know more about AI so when we're in schools and when we're with teachers and professors 01:24.240 --> 01:30.800 discussing AI often if you go to these conferences it'll be all about prompting for 01:31.840 --> 01:35.040 biology prompting for inclusion prompting for 01:36.640 --> 01:44.160 something or the other and what's often left is well why don't somebody just explain how 01:44.240 --> 01:51.600 the damn thing works so I can find out what it is and whether I can have fun with it and 01:51.600 --> 01:57.920 this is what we've been trying to do with our programming language that is used in some schools 01:57.920 --> 02:05.040 and so the idea is that really it's almost like a thunderstorm, this AI thing that's coming in 02:05.040 --> 02:11.760 and we've coined this term Gale, it's like a game is something that is really sweeping away 02:11.760 --> 02:19.200 but not really so much in a good way and we try to come up with a meaning for what Gale means so 02:19.200 --> 02:25.200 we want to do pedagogy for dealing with neural networks and we want to focus on kind of four things 02:25.200 --> 02:33.040 that I'd like to demonstrate. One is the general purposeless of it, it is really something that 02:34.480 --> 02:39.680 we can apply and we are applying to things that we don't know anything about, we don't know 02:39.680 --> 02:49.840 how stuff works and yet we can do things with it, it is also about abstraction and abstraction is 02:49.840 --> 02:55.120 something where you know when you're talking about AI and comparing it to classical CS, there are 02:55.120 --> 03:01.920 some differences like in AI we're often comparing things for being similar rather than mathematically 03:01.920 --> 03:09.040 equal and we need the similarity so we can put them into bins so we can put them into group 03:09.040 --> 03:16.640 to classify them and also a lot of it in order so that we can compare things for similarity, 03:16.640 --> 03:25.040 there's some normalization involved. AI makes errors and if you think about it errors are really just 03:25.680 --> 03:32.560 also a property of abstraction because if you're comparing things you're saying all of these 03:32.560 --> 03:38.240 individual things I'm going to put them into different groups you're not going to be right 03:38.240 --> 03:42.240 for many things because you're just going to leave out many things that you're going to look 03:42.240 --> 03:48.800 at because say for the sake of this these are in the same group. So abstraction is something that 03:49.440 --> 03:56.560 literally takes away things so we can then talk about them. Another really interesting thing is when 03:56.560 --> 04:02.400 we're talking about the mathematics of neural networks is something that is difficult to be taught 04:02.400 --> 04:08.560 in schools because it really requires at least some basic linear algebra and we're wondering 04:08.560 --> 04:13.680 kind of what the basis is because very often when we look at the explanation of how it works 04:13.680 --> 04:19.920 we see a bazillion variables and we see a bazillion loops that connect a bazillion variables 04:19.920 --> 04:25.200 to bazillion other variables and then all some them up and put them in some function. So linear 04:25.280 --> 04:35.040 algebra really helps demystify that and so we would like to come up and teach something that 04:35.040 --> 04:42.240 we're calling the sales slip algorithm and the fourth thing would be evolution and this is also 04:42.240 --> 04:48.800 something we talk a lot about like is it human should we talk about AI in human terms should we say 04:49.360 --> 04:56.240 should we give it a personality or not and if we're modeling it in a programming language 04:56.800 --> 05:04.000 there are two things that are important to us that is emergence things happen a lot a lot and then 05:04.000 --> 05:10.640 something else appears that isn't just a repetition of what's happening and the system changes 05:10.640 --> 05:17.520 it mutates. Mutations is something that we hackers, we computer scientists, we programmers have 05:17.600 --> 05:22.480 problems about because we're all these super cool functional programmers that are all stateless 05:22.480 --> 05:28.000 and some mutation is something that we really don't like to hear but these systems 05:28.720 --> 05:34.880 really are emerging or adapting and are mutating so maybe there's another way we want to 05:34.880 --> 05:40.800 think about certain aspects of programming and I'd like to go back to really something that 05:40.800 --> 05:46.960 I might be unusual so when we're thinking about when does it all start I mean we can go back 05:46.960 --> 05:52.800 to Aristotle I guess but I'd like to suggest concretely that it started with Oliver heavy side 05:53.440 --> 06:01.120 in 1881 now I'm not sure whether anybody knows Oliver heavy side he's a self-taught mathematician 06:01.920 --> 06:12.160 really cool dude in Great Britain working on telegraphs and he invented a stepping function 06:12.240 --> 06:16.400 which you all know I guess but there's also something even more important that he was 06:18.240 --> 06:25.600 and it's the notation for the scalar product of a vector the mutation of the dot 06:26.320 --> 06:33.280 and really these two things if you think about it is almost all you need to know to build a neural 06:33.280 --> 06:41.280 network so a couple of years later after 1881 the next thing that we want to talk about is this other 06:41.360 --> 06:45.680 guy but oh here's the sense that algorithms so this is the algorithm so you've got you know a 06:45.680 --> 06:50.720 bunch of products you want to buy something these are the seven things you need to make a good 06:50.720 --> 06:55.840 cake in this German children song and if you want to know what it costs is of course you 06:55.840 --> 07:02.480 you multiply the quantity in each row with the price and then you take the sum total that's the 07:02.480 --> 07:08.080 sense of algorithm and that's literally how a neural network works so a couple of years later 07:08.160 --> 07:15.440 there's Frank Rosenblatt and Frank really built something that he called the perceptron the Mark 07:15.440 --> 07:22.880 one perceptron and it's a giant machine it's a giant machine for the cables and the usage was 07:22.880 --> 07:28.960 off for the military which is I'm just going to show you in a few minutes a giant machine and of 07:28.960 --> 07:38.000 course now it's no longer a machine now it's just a algorithm and so it kind of had these things 07:38.000 --> 07:42.880 formula what you see at the right here is literally the sales level algorithm and on the left is 07:42.880 --> 07:49.120 how the damn thing works like you've got several layers of that that we're a picture is coming in 07:49.120 --> 07:53.200 then it gets projected to something then it gets sort of digitized and then there are some random 07:53.200 --> 08:01.440 connections with random weights associated to it that mutate that change as it learns here you can see 08:02.160 --> 08:07.120 sort of the thing how it actually works so there's the C for the Cornell University and there's 08:07.200 --> 08:14.640 there's lamps so so this was a projected projection on the right side down here you see the C 08:14.640 --> 08:22.320 in a matrix so this is already the matrix and then what happens is it got through the neural network 08:22.320 --> 08:31.040 the neural network literally was this network of things that connect all these inputs with each 08:31.040 --> 08:37.040 other and this is something I just very quickly like to build now in this programming language 08:37.040 --> 08:44.320 so so we can play with it and find out how it works so I would like to look at 08:46.320 --> 08:59.200 we should look the project this all was really motivated by looking at some data so here's some 08:59.280 --> 09:05.280 some data you might know the sooner mine's data set anybody know the sooner mine's data set 09:05.280 --> 09:12.160 so data set of actual pings sooner pings that and the echoes that come back and what comes back 09:12.160 --> 09:18.400 the signal tells you whether this thing is a metal cylinder or not it could be a rock it could be a 09:18.400 --> 09:25.840 piece of wood or something so these are actual signals it's a table of signals and in the last 09:25.840 --> 09:33.040 column there's a number that tells you well this is just a rock it's not a mine and if it's one 09:33.040 --> 09:41.840 it's a metal cylinder now always when I look at this data I'd like to actually plot it so so we 09:41.840 --> 09:49.280 can we can look for example at the first item of this thing it's just a list of signals 09:49.280 --> 09:55.440 and the last item zero so it's not a rock so we can plot this now these numbers are all very 09:55.440 --> 10:04.560 small they're all normalized so we want to scale them in snap scaling them is just you multiply 10:04.560 --> 10:14.240 the whole vector with something like with say 200 and this is what we call about building linear algebra 10:14.240 --> 10:18.560 sort of into the system so we don't need to use loops for that so we just want to look at that 10:19.200 --> 10:28.800 and we see that maybe we just want to center it so this is the example of the sonar signal for 10:28.800 --> 10:37.440 a rock right so now if I look at the last item this is the sonar signal of a mine you can see 10:37.440 --> 10:45.120 because the last column has has this this this this big bar and we can look we can now just 10:45.200 --> 10:50.880 eyeball events with these things like random things like this is another example of a rock 10:50.880 --> 10:57.920 another example of a mine another example of a mine another example of a mine another example 10:57.920 --> 11:05.280 of a rock rock a mine a mine and you know I've eyeballed these a Brazilian times 11:06.640 --> 11:14.560 I as a human being I have no idea I I can't find any pattern like to to distinguish whether 11:14.560 --> 11:19.920 a one is a mine or a whale or or whatever and this is exactly the kind of problem that they 11:19.920 --> 11:25.280 were dealing with back in the 50s and 60s because there are people who are very interested in that 11:25.280 --> 11:31.120 and those are the military and so it's you know maybe we shouldn't talk about this in school but you 11:31.120 --> 11:35.920 know that's the truth the military was sponsoring this the military is interested in this this is about 11:36.320 --> 11:45.680 killing them or getting killed so why not use this database so the idea was how about we built this 11:46.320 --> 11:58.320 Mark one perceptron in snap so we make a new object I'm calling a perceptron and a perceptron 11:59.280 --> 12:06.080 need something that is a weight so I've actually got a couple of weights here which I found 12:06.080 --> 12:11.200 on the free market you know these weights this is actually it's really cute usually weights kind of 12:11.200 --> 12:15.520 have these have these little limbs that you kind of kind of things that you hold them on this is 12:15.520 --> 12:22.960 actually cute this is something that they're sort of you can this is like a matriuska thing 12:23.840 --> 12:29.680 it's very cool and there's actually some hey if you're a computer scientist there's numbers in there 12:30.480 --> 12:38.640 this one says 16 this one says eight this one says four two I again you know we all love the 12:38.640 --> 12:49.040 powers of two so this is essentially this is a vector of weights randomly associated this is what 12:49.120 --> 12:53.600 we need for neural networks so we're just going to make weights I'm going to add that to that 12:56.640 --> 13:03.200 weight where is it make a variable for the perceptron only and these are called weights 13:04.000 --> 13:09.600 we make another variable for this perceptron only and these are called inputs these are the two 13:09.600 --> 13:17.680 variables we need for this and so I don't have to code this all along I've sort of prepared something 13:17.680 --> 13:27.040 like the cooks on TV in order to set this up there is one method that this perceptron does that 13:27.040 --> 13:35.520 just sets up the weights with random numbers so what I want to do is I want to take this data set here 13:35.760 --> 13:55.040 the um and I want to just get the sooner to a variable called data and now I want to set up 13:55.920 --> 14:08.640 my perceptron I'm going to show the weights here with random numbers so I'm broadcasting set up 14:11.440 --> 14:18.640 to the perceptron and so the weights kind of taken some dimension what goes in what goes out 14:19.040 --> 14:25.520 so this is going to be a list of numbers there's going to be six features going in a 60 features 14:25.520 --> 14:33.600 actually and one decision coming out whether it's a rock or a mine and when I click on this this is 14:33.600 --> 14:41.520 this is my my weight matrix it's here so the second thing that we want to do is we want to actually 14:41.520 --> 14:48.800 now ask the perceptron for a prediction is this a rock or is this a mine and so remember this 14:48.800 --> 14:55.680 little say slip algorithm I've also kind of just coded this up in snap it's a huge big program 14:55.680 --> 15:02.240 this is all it takes um and you know anything about neural networks you'll realize it's literally 15:02.240 --> 15:08.240 just that take the sum like multiply everything with everything just take the sum of it and 15:09.200 --> 15:16.160 lead it through a stepping function or a sigmoid function a function that really just tells me yes 15:16.160 --> 15:22.160 this is okay or this is not okay this is all it takes because there's linear algebra involved 15:23.280 --> 15:33.600 so what I want to do is I want to just um now request from I want to request predict 15:34.240 --> 15:46.720 from the perceptron with some data so you know let's actually take the first item of the data 15:48.480 --> 15:59.520 which is a rock so I want to know whether it is a rock and I'm getting back a probability 15:59.600 --> 16:06.720 and says well with the probability of 75% it's a rock so this is wrong already 16:07.600 --> 16:12.800 so let's find out and it's no wonder it's wrong because we just have a bunch of random numbers 16:12.800 --> 16:19.680 so let's find out how well we're doing for the whole data set so I'm going through each of the samples 16:20.080 --> 16:30.240 in my data and I want to make a variable that says um you know what's the target I know the target 16:34.000 --> 16:42.800 because the target is just the last item in my data in my sample then I want to know what 16:43.680 --> 16:50.720 my perceptron actually answers and that's the output and I can say the output 16:53.600 --> 17:00.720 is what did request here I'm not just taking the item one of the data I'm taking the sample 17:01.680 --> 17:14.720 oh wait let's make the singular also here now I can see what the difference is the difference is the 17:14.720 --> 17:26.160 delta and the delta really is nothing but the difference between what I'm expecting which is the 17:26.160 --> 17:38.880 target and when I'm getting I know about also just count the errors some first my errors are zero 17:42.480 --> 17:51.440 and then I'm changing the errors not by the delta because the delta can be either you know one 17:51.440 --> 17:58.080 or minus one or anything between so I need to take the absolute value of the delta 18:02.400 --> 18:08.000 here and when I'm done I'd like to know how well I'm doing so I could say something I could say 18:08.000 --> 18:19.920 the ratio of errors to the length of the data said and since I want to be positive I want to see 18:19.920 --> 18:28.640 the success rate I'm taking the opposite like the inverse and yeah let's see how well we're doing 18:30.240 --> 18:36.800 with this whole data said oh 55 percent that's not great that's about what's to be expected let's 18:36.800 --> 18:43.600 take another set of random numbers and give it another try oh 50 percent okay so you get the 18:44.160 --> 18:50.320 we're just basically we're throwing dice and no wonder and now the idea is how about 18:51.040 --> 18:57.120 this thing learn something so we want to adjust these weights we want to oh wait there's another 18:57.120 --> 19:04.080 one I forgot in here two other ones crazy we've got this huge vector we want to rearrange these weights 19:04.640 --> 19:14.000 so they fit to the error to the delta that we found and there's this last script which is 19:15.600 --> 19:21.520 how we need to go to the perceptron the last method of the perceptron is how does it learn 19:22.720 --> 19:29.920 and all it takes is really this learning means the weights are adjusted the weights are shifted 19:30.320 --> 19:36.800 but not all the way because then we would fit just every kind of data to the maximum 19:36.800 --> 19:43.440 but shifted a little bit so it because we need to riddle in everything of like all of these 19:44.560 --> 19:50.240 records so and that's that's kind of the abstraction and here's what they found out 19:51.200 --> 19:59.680 so now we've got this what if we you know go through all of this once more and this is actually 20:00.400 --> 20:12.880 shuffle the data so so it doesn't remember the sequence and see what happens when we do it once more 20:13.600 --> 20:23.520 so I click on this once more it's 50 once more wait oh we need to we need to actually tell 20:23.520 --> 20:39.600 it to learn okay so we're broadcasting learn to the perceptron with the delta so let's try this again 20:40.240 --> 20:50.960 you see it's 51% 56% 60% you can see at each iteration the system learns and that 20:50.960 --> 20:57.600 was kind of mind-blowing to them back then when they found this out and this is kind of all the 20:57.600 --> 21:03.680 promise that wow this thing can actually learn so what we can do is we can try to visualize this 21:04.400 --> 21:25.920 so we're making a log initiating the log to no list and I am adding the errors to the log 21:26.160 --> 21:32.480 and I also want to visualize that again by plotting the bars these are the errors 21:33.920 --> 21:40.400 by visualizing them and we should probably also scale them a little bit 21:46.720 --> 21:55.120 excellent let's let's try this and let's maybe just do the error as one number 21:56.480 --> 22:12.960 uh okay let's just do that so let's start a new new setup and um wait don't think of the data 22:12.960 --> 22:36.880 okay so now what we want to do is this um we want to forever do this and find out how well it's 22:36.880 --> 22:51.440 doing um wait wait wait there's something wrong see this is what happens when there's a room for the 22:51.520 --> 23:11.440 people and somebody tries to code up something um didn't it just work 23:12.160 --> 23:21.360 uh I need to plot the not the errors but the log this is what I need to do 23:21.920 --> 23:27.280 um 23:35.280 --> 23:43.520 to log yes thank thank you Glenn thank you Glenn 23:43.600 --> 23:54.960 okay I didn't get it oh but but you can see it's going up like now it's it's already at at 23:54.960 --> 24:03.600 77 percent so okay so what you see is it's actually learning but it doesn't kind of go above 78 24:03.600 --> 24:11.120 percent and you just think about 78 percent that is pretty great like if you're investing money 24:11.280 --> 24:16.160 like yeah I would put my my money in there to make money but it's not so great when it's about 24:16.160 --> 24:22.320 should I kill this guy or should this guy kill me um so it's not good enough and the question 24:22.320 --> 24:30.720 how how to make it good enough is is really a difficult one and so what they did was um what one 24:30.720 --> 24:38.160 perceptron cannot do maybe two perceptrons can do and this is the thing about deep learning so what 24:38.240 --> 24:46.640 they did is um they have this idea that it takes more than one layer and that was actually 24:46.640 --> 24:52.560 found out by uh Martin Minsky and see my paper they proved that a single layer a single 24:52.560 --> 24:59.920 perceptron can only learn certain problems but it cannot learn certain other problems and it can 24:59.920 --> 25:05.680 only learn problems that are linearly separable if there's a non-linear function even an 25:05.680 --> 25:12.720 easy non-linear function one layer is not enough and you need more than one layer two layers or 25:12.720 --> 25:18.640 even more layers well two two layers actually can do anything but there's more than two layers and 25:18.640 --> 25:24.640 this is they didn't know for a long time how to do this well some people knew but then it didn't 25:24.640 --> 25:31.360 get published or or got published but only in finish uh which nobody in the US read so it didn't 25:31.520 --> 25:42.720 exist um and this is kind of this this whole thing that at one time um rumble hard and and 25:42.720 --> 25:48.640 and they found out how to do actual back propagation and back propagation is something where they just 25:48.640 --> 25:56.880 added one little thing to this formula of how it learns really just one little thing 25:57.760 --> 26:12.160 and essentially when you before you change the weights make another delta for the next layer and return 26:12.160 --> 26:21.040 this you can now have two layers one kind of perceptron layer and one thing that is called a hidden layer 26:21.920 --> 26:34.320 and when you do this with a hidden layer you can reformulate this you can say okay the output now is not 26:34.320 --> 26:46.560 just one request it is actually a pipe it is a pipe of piping my data my sample 26:46.640 --> 27:01.520 to the hidden layer and then taking what I'm getting out of this to the perceptron layer or the 27:01.520 --> 27:08.240 output layer and this is called a forward pass and then when you're learning you're not just 27:08.240 --> 27:15.760 broadcasting something that it can learn but you need another you need another um pipe 27:17.520 --> 27:29.920 we're taking the delta and you're requesting now first uh you're requesting to learn but you're 27:29.920 --> 27:38.160 requesting first from the output like the layer for the perceptron layer and what it gives you back 27:39.120 --> 27:47.280 is you're requesting then from the hidden layer and that is called back propagation 27:48.480 --> 27:56.400 and with these two kind of simple things they were able to build a network that was way better 27:56.400 --> 28:02.320 in learning now let me let me glance over this again there is something wrong here the target 28:02.320 --> 28:19.040 that sounds the output is okay the delta is okay um yes errors I guess the errors should be the 28:19.120 --> 28:31.440 sum of this so this should work um so now we need to also initialize the hidden layer 28:33.360 --> 28:34.720 now when you look at its weights 28:35.600 --> 28:50.560 so I'm having the perceptron and duplicating this because first there is a hidden layer it takes 28:50.560 --> 28:56.240 60 features coming in and let's say maybe five features coming out then it takes five features 28:56.400 --> 29:03.760 coming in and one decision coming out the click on this um uh wait hidden layer 29:06.400 --> 29:15.520 now I've got my weights here hidden layer and the perceptron um 29:16.160 --> 29:27.600 now that's actually try this now we can see how it learns and we can see it learns 29:27.600 --> 29:33.120 much much better it's already it's 78% you can see how the weights adjust themselves 29:34.080 --> 29:38.720 and you can see that it's going now all the way it's already we've rated a little bit it'll be 29:38.720 --> 29:47.840 over 90% and this is precisely the thing um that is very interesting to do um and this is what is 29:47.840 --> 29:52.320 called deep learning deep learning is when you have more than one layer you can have now you can 29:52.320 --> 30:01.200 copy these layers you can have as many layers as you want to solve any non-linear equations so 30:01.200 --> 30:08.640 we're now we're at at 70% already which is kind of fundamentally a great thing and with this 30:09.920 --> 30:14.480 kind of running out of time I want to show you that with this when we use this in classroom 30:14.480 --> 30:21.360 we can actually have more fun than analyzing data sets we can actually do fun things when we 30:21.360 --> 30:29.440 maybe when we incorporate this into a programming language like like snap where we have a 30:29.440 --> 30:34.960 library that is called a neural network library so we can use this to use this on our own on our 30:34.960 --> 30:43.840 own data and we can build these neural networks sort of as something that programs a block for us 30:44.560 --> 30:50.800 so let me make a little list of things that I'd like to show you I'd like to show you a picture 30:51.680 --> 31:12.000 of a heart of a star on the house of a boat whoops of a balloon of a bird 31:12.320 --> 31:22.720 heart star house boat balloon bird I forgot you see what else is there 31:29.840 --> 31:36.960 that's fine so so what I want to do is I want to map over this list and I want to draw an 31:36.960 --> 31:45.040 example for each of these things I'm going to draw a scribble and I'm going to append the name 31:45.040 --> 31:54.080 of what it is to it which will then give me a very small data set of six entries and I want to 31:54.080 --> 32:03.120 make a little neural network that generates a predicate for that actually that classifies what I drew 32:03.280 --> 32:10.160 a classifies the shape for that so this is going to make a new block a neural network that's 32:10.160 --> 32:19.040 actually try this um so I'm doing this now now I'm drawing a heart I'm drawing a star 32:19.600 --> 32:27.920 free hand I'm going a house and a boat 32:32.720 --> 32:40.400 who let's say a balloon and a bird and now let's see what's happening my neural network is 32:40.400 --> 32:47.280 analyzing what I drew and it is learning is having it's a little bit of a bigger neural network 32:47.360 --> 32:54.240 now because there's many more gestures in my stroke and it claims that it learned a hundred percent 32:54.240 --> 33:01.360 of that well I'd like to believe that um now we'll find out now what I want to do is I want to say 33:01.360 --> 33:10.960 okay wait when I kind of press anywhere on the stage when I want to do is I want to sketch something 33:11.680 --> 33:21.680 and when I receive that I sketch something you know what I want to do is I want to get the shape 33:21.680 --> 33:26.960 of this is the block that my neural network made it is not programmed on the inside it just has 33:26.960 --> 33:34.160 some weights these are the weights that the neural network learned and it made a new block that 33:34.240 --> 33:42.640 classifies that with these weights so I want to get the shape of you know what I just drew 33:44.880 --> 33:51.600 so I'm going to draw something that shape is a name and I want to look that up in the library 33:51.600 --> 34:01.280 of animations and I actually want to animate it so let's try this so we could now say 34:02.240 --> 34:11.200 this AI thing is like this gale the storm that is shaking up all of our education 34:12.800 --> 34:20.720 but you know the storm is also kind of a wind a wind of change that can lead us and take us to 34:20.720 --> 34:30.800 different shores where we kind of have to focus on our guiding star and not let us say I think 34:30.800 --> 34:39.360 take away our jobs but maybe make us more empathetic towards each other so we can let our creativity 34:39.360 --> 34:47.920 fly and kind of take it for a different future then it seems now a different future 34:48.560 --> 34:54.560 sorry for being too long 34:57.120 --> 35:17.840 any questions yes yes yes yes yes yes yes yes please 35:17.840 --> 35:26.160 questions so about the terminology so you're calling it's network in learning but I don't 35:27.440 --> 35:33.440 this is about what's called networks we're all network and deep learning is going to improve 35:34.240 --> 35:40.720 things like evolution or some kind of tricky set of multi-glame 35:41.040 --> 35:48.320 your calculations are you interested? well images are are of course more complicated because 35:48.320 --> 35:53.600 now what what I've shown you is just vectors it's just a neural network working on vector data 35:54.240 --> 36:01.040 if your images you're probably doing a convolutional network but the deepness of a network really 36:01.040 --> 36:08.240 is is an attribute about having more than one layer now of course you know with technology you 36:08.240 --> 36:13.120 would be saying maybe deep means more than five layers or more than ten layers but the idea really 36:13.120 --> 36:17.760 is all the same you can add as many layers as one the difficulty was having more than one layer 36:19.600 --> 36:21.280 yes please 36:25.920 --> 36:34.000 what we did in the classroom is we use this what I just showed you we use this to classify data from 36:34.160 --> 36:40.720 datasets and to use it to classify data that's coming from ourselves what we don't do in the 36:40.720 --> 36:49.600 classroom is build neural networks ourselves so I showed you how we built it ourselves and we have a 36:49.600 --> 36:54.160 library for that where we can actually we give you that sprite we give you that percept on sprite 36:54.160 --> 36:59.440 and we can show you that that you can manually duplicate that sprite and build that network of your 36:59.440 --> 37:07.360 cell yes yes but then we use it just as a block because this is something that we feel 37:07.360 --> 37:11.760 is important what if you just went away what if a neural network is just a function that you call 37:11.760 --> 37:16.080 and you just get some back some numbers and you can call it what if it just makes a function for you 37:16.160 --> 37:22.320 right yes sir and when you did that in got it some of what you're doing with kind of 37:22.320 --> 37:32.080 black what if what if it's what if it's not your your your what but it's just running 37:32.080 --> 37:36.080 locally it's in snap it's the same thing I showed you just just packed into a block 37:40.560 --> 37:43.440 I just put it into a block yes the whole thing is just one 37:46.560 --> 37:54.560 show it to a university class we are working on a curriculum this we just recorded a course for this 37:56.080 --> 38:05.040 we taught it to there's all kinds of students coming into SAP so we tried it with them 38:06.240 --> 38:15.600 classes yes yes yes yes yes yes yes thank you very much sorry there's a number time 38:16.560 --> 38:20.000 thank you 38:26.640 --> 38:31.760 s