Placeholder Image

字幕表 動画を再生する

  • what's going on everybody.

  • And welcome to a deep learning with python and, of course, pint torch tutorial.

  • Siri's this tutorial.

  • Siri's is going to start from the very, very basics, assuming maybe you don't know anything about deep learning and then we'll be getting into more complex types of neural networks and applications for them.

  • So anyways, to get started, of course you're going to need pied towards.

  • You're also going to need python.

  • I am assuming you already have at least Python, and my hope is that you at least understand the basics of Python as well as object oriented programming.

  • So if you don't have either of those two things, probably you should stop and either find someone else's tutorials or I've got tutorials on both the basics.

  • It's a pretty short Siri's.

  • It's like 13 parts or something like that, Uh, and then also object oriented programming again.

  • It's not that many videos should be able to get through it pretty quickly.

  • You should have a basic understanding of python because I'm just assuming you.

  • D'oh!

  • I'm not going to be talking about basic python concepts and then object or any programming, because in general, your neural network is going to be a class.

  • So if you don't understand that you're gonna be fuzzy about certain things, and then you're also probably fuzzy about neural networks.

  • It's just not a good combination.

  • You should be solid on how object during it programming works first, uh, and then jump into this next up.

  • I'm assuming you guys don't.

  • At least some of you guys probably don't know about neural networks or at least don't know much.

  • So I'm gonna go really, really briefly into how neural networks work You.

  • You can get by here with a pretty high level understanding of neural networks and be just fine.

  • And then you could If you want to be very successful, you're gonna need a pretty deep understanding, at least for this Siri's.

  • We're not going to get too deep too quickly, because again, you don't really need that.

  • But if you're curious or you want to get into more cutting edge research and stuff like that, you're going to need to sew.

  • Uh, as this serious progresses will be getting a little deeper into things.

  • But then also, and we'll be talking about concept, so I'm just not gonna hit immediately because there's just no need.

  • Uh, and then also, at some point, I'm going to do in neural networks from scratch video and buy scratch.

  • I mean, we're going to use numb pie.

  • We need something to do, like a ray math or something like that.

  • But no helper functions.

  • Um, just because the list would be really slow.

  • Anyway, it's not important.

  • But if you guys want to get a little deeper that you will be able to both in this series and in the future.

  • Anyways, assuming you don't know anything about neural networks, I'm going to go briefly over them.

  • But then again, if you're still kind of fuzzy about just even sort of 100 on networks work, you can look up videos by three Blue one brown that there's some great visuals there.

  • Also, there's just so much information online a ce faras like how neural networks work at a basic level, but I'll do my best to explain them really quickly.

  • So this'll is a basic neural network.

  • You've got your input data here.

  • Let's assume you've got a knish, a situation where you're trying.

  • You've got images of dogs, cats and humans and you want a neural network that can differentiate between an image of dogs, cats and humans.

  • So over here, in your input, you've got features and these air going to have to be numerical valued in some way.

  • It might be the case that they're pixel values and pixel values are already numerical values, right?

  • 022 55 for RGB or if it's gray scaled image, it's just gonna be 022 55 or some other number.

  • It's usually 022 55 anyways, so they'll already be, um, a new miracle form.

  • But your features could also be so the input we call that features.

  • This could also be some sort of categorical type of feature.

  • So it's like Has four legs, has two legs.

  • Could be has body of covered in hair or something like that, or what kind of color?

  • How tall is this thing?

  • That kind of stuff is going to be like descriptive features, and at some point we have to convert that to numerical, so you could just do like a, like just simply, the first thing is a zero.

  • The second thing is the one, and so on, and we'll talk much more about that and how how to convert things to numbers later.

  • But just understand it's always gonna be a number that is being input.

  • It has to be a number, so anyways, that's your input.

  • So let's assume they're pixel values, because that's a pretty common task.

  • Eso and it's great skilled.

  • Let's say so.

  • You have this import and then it gets passed to these things called hidden layers.

  • They're called hidden because we don't have control over those layers.

  • The machine has control over those layers.

  • We can read them.

  • We can see what's going on.

  • But we're not changing any values there.

  • After they come through the hidden layers, they get past to an output.

  • And again, in general, I'm just gonna be super super vague or not vague.

  • But hopefully not big Super general here.

  • Let's just say this neuron.

  • This is your dog.

  • Now on this is your cats in Iran.

  • This is your human neuron and the value that winds up here in general, we do an argon max function that's just gonna ask which of these is the greatest.

  • So dogs, cats, humans, Let's say dogs.

  • Five cats is seven humans is 12 right?

  • So that would mean the largest value is humans.

  • So we would say this neural network has predicted it's a human.

  • Okay, um, so how does the machine has a neural network even learned?

  • It's not complicated at all.

  • We could look at really complicated imagery like this.

  • It's You don't even really have to think of it this way.

  • But basically each of these connections you can see how there's a line drawn from every input.

  • Every neuron here and then every neuron here has a connection to every other one, right?

  • As you continue going forward here, this is what's referred to as a fully connected neural network.

  • They don't have to be fully connected, and we can talk more about how to do different things later on.

  • But in general, this one's fully connected, and each line here each connection is really a wait.

  • So you've got this input value, and then it gets multiplied by await the biases.

  • Optionally added.

  • In on a bias is just an extra, you know, bias could be three.

  • So it's, you know, the input times, the weight plus three.

  • Okay, and then it becomes a value in here and then X to the same thing is done.

  • And it's all these air added together into this one neuron.

  • So I've got another image here and like, this is basically what goes on in a single neuron.

  • So you've got all your inputs coming in.

  • Those inputs are being multiplied by a weight of biases.

  • Possibly added, All those are added together, So they're just summed together and they're passed through an activation function.

  • So the activation function kind of mimics of neuron in your brain, right?

  • Is it firing or isn't it?

  • And it could be a firing or isn't it?

  • So it would be like a stepper function.

  • But in most cases, we use the sigmoid function.

  • So is actually a range between zero and one, and that again is just kind of mimic both a neuron firing or not.

  • And also it serves a purpose of keeping values from just exploding in your neural network.

  • Um, it just kind of keeps things again between zero and one.

  • One of the key concepts that I just keep coming up time and time again is that in general, neural networks appreciate values between zero and one or negative one and one in some cases.

  • So, um, always keep that in mind.

  • So your input, usually you're going to do what's called scaling and scale it down, um, to be between zero and one and then, yeah, even through your network, this value start exploding into these gigantic values.

  • Something's probably going wrong, but way more on that later.

  • With one thing, all you have to really think about is what a neural network does.

  • All it does is each of these weights is what we call a parameter.

  • So same with biases, awaits and bias.

  • Even this really, really simple neural network that I've hand drawn here.

  • Look at all of those parameters.

  • Every single line is a parameter, probably two parameters if we consider weights and biases.

  • So what the machine does is it has has the ability to modify every single one of those weights independently, right?

  • So it just keeps tweaking all of those so that when we pass data when we train in the old network, we're passing in this input data and we're telling it, let's say it really is a picture of a human.

  • We would say the desired output.

  • The output I wish you would make in this case is a 001 Right?

  • Please make that and it makes its output, and then we determine how wrong that is with loss.

  • And then we have an optimizer that goes back and attempts to update these weights in such a way that gets closer to predicting wth e targeted output.

  • And we tend to do this over batches over millions of samples in slowly.

  • Over time, the neural network learns what exact values to put for each of these weights to hopefully generalize over your data and predict.

  • But at the end of the day, it's just it's like this gigantic function with, like, a 1,000,000 variables, sometimes more like like I'm not even being I'm not exaggerating like three million variables is a pretty small neural network.

  • 30 million variables is a regular neural network, so it's just so many things that it gets to tweak and change.

  • And of course, with that comes things issues like over fitting and stuff like that, and we will talk about that moving forward.

  • But really all enrolled network is is just this huge function where we allow the machine to slowly tweak variables and parameters to output desired results.

  • Okay, so now hopefully you have a general and basic understanding of how neural networks work again.

  • I think it's completely to be expected that you're somewhat vague on how things work.

  • I think one writing it out in code would help, but also to There are just vast resource is online as faras, depicting how neural networks work.

  • And that's how you learn.

  • I would strongly recommend the Three Blue one Brown just type of like to YouTube three blue one brown neural network, and I am sure you'll find the Siri's.

  • He is wonderful of visualizations way better than my hand Sean photos.

  • So anyways, moving along, we're gonna be using pytorch.

  • Now chances are you've heard of for sure, Tensorflow, which is another machine learning library, and there's quite a few others I want to use pytorch one.

  • I just start.

  • I just decided one day to learn pytorch myself, and as I was learning it, I was like, This would be a really good language to do a beginner's deep learning Siri's because Pytorch is like super friendly to the programmer, especially a python programmer as opposed to Tensorflow.

  • And one way it is with the graph.

  • And the great thing about Pytorch is you don't even need to know what the heck is the graph.

  • What is he talking about?

  • You don't need to know.

  • With pytorch, it's great.

  • With tensorflow you have to.

  • You have to learn about the graph because you have to work around the graph.

  • It's very challenging, whereas in pytorch you really you just don't need to know about it and so on.

  • And then also, people call it like more python IQ and like, What does that actually mean in general, like with Pytorch, you write Python programming like you write the object, you deal with it like it's an object, you it's eagerly executed.

  • And there is tensorflow eager.

  • Ah, but it's not the main tensorflow, and there are certain issues and limitations with using.

  • It also is much slower than regular tensorflow And, uh, and then the next question, of course, is had his pytorch compared to tensorflow and speed.

  • Uh, and they're pretty close, actually.

  • But pytorch is faster than eager tensorflow, and that would be the more fair comparison because Pytorch is eager and what I mean by that I mean, you can write a line of code in pytorch like you can have your network and then you run like one line or you run through one layer and then you could check the output and you can see it.

  • Also, with pytorch you, you can branch out into different layers and you write pure python code to do it.

  • It's just it's just easy to make complex networks.

  • There's some tedious things about pytorch, and we'll talk about them when they when we get there.

  • But anyways, long story short, we use pytorch and you're gonna love it.

  • So let's click on Get Started.

  • There's, like, a 1,000,000 ways you could install this, so I'm gonna let you install it by yourself.

  • All this stuff should be super simple for you to understand, except for maybe Cuda.

  • If you don't know what Cuda is, go over here.

  • Click on none.

  • If you have ah NVIDIA GPU of decent quality, you could enable you could get the coup diversion and put operations on your GP you.

  • And when you do that, it's in general somewhere between 50 and 100 times faster, which makes a big difference in training times to begin.

  • This Siri's at least for the first few videos.

  • All the code that I'm gonna write is one.

  • I'm gonna run it.

  • I'm gonna be running it on my CPU, and it's like, totally capable of being running a CPU.

  • At some point, you are going to need access to a mid range or better GPU, either locally or in the cloud.

  • Now, if you have access to one locally you can install it will be talking about how to do that.

  • And then in the cloud there are lots of options.

  • This Siri's is sponsored by Leonard, who also happens to have the best prices in terms of bang for your buck performance in the cloud s so you can check them out.

  • I've done a video on exactly how to set everything up on them as well.

  • Um, I'm not saying that because they're a sponsor, the response or because they are simply the best right now.

  • Anyways, right over time, all these all these cloud providers are duking it out.

  • So at some point, someone might beat them on price, and I'll let you know when that happens till them.

  • Linda.

  • It has the best cloud GPU prices by far.

  • It's like twice as good as anyone else right now.

  • So anyway, um, check them out.

  • But like I said, if if you don't know what Cody is, don't worry about it right now.

  • Just get the regular CPU version.

  • You're gonna be totally fine.

  • You can learn the basics without needing to run on a GPU, but at some point, you will need to run on a GPU.

  • So anyway, um, once you have that, go ahead and do your install.

  • I am going to pause for a moment and assume you guys when I would have done pausing going to assume you have pytorch installed.

  • Great.

  • Congratulations on your install.

  • So the first thing I'm gonna do is figure out.

  • Do I have Oh, I do already opened it up.

  • Nice.

  • So, uh, I'm gonna be coding things in the Jupiter lab, but you can use whatever editor you want, cause remember, you guys have done your least not basic programmers anymore.

  • So I'm assuming you guys can have your own editor and be fine.

  • I'm going to use Jupiter notebook just because one I can yea for eager execution, but also because it just kind of makes sense a T East when you're trying to learn the very, very basics, running line by line is just useful.

  • Also, if you needed to bug things again, it's just it's super useful.

  • So I'll be starting in a Jupiter notebook at some point will probably leave the notebooks behind, but for now, cool.

  • So first of all, like what is pytorch right?

  • Like what is that?

  • So again, Assuming you know the basics of python, you're probably familiar with numb pie, which is the the new miracle processing library of Python.

  • Now the problem with some pie is what I just explained moments ago is that it doesn't run on the GPU.

  • So whatever deep learning first came out, there was really it was very difficult to to to really run these things because the your CPU, the reason why things are so much faster on your GP you is with a neural network.

  • Like I said that the thing that is happening is each of thes waits is getting updated, so your machine is needing to run thousands and thousands of operation of a small cat like, not even thought like millions of small calculations.

  • Basically.

  • And so?

  • So the GPU.

  • Um, trying to think how exactly?

  • Want to describe this?

  • What order?

  • Uh, let's say your CPU.

  • So your CPU was made tea?

  • Do these not really huge song, these huge calculations, but the CPI was really there under the assumption that most calculations that are going to be made are gonna be are going to be large calculations like very much more challenging calculations than modifying little weights.

  • Okay, your GP you is your graphics card, right?

  • So it's computing, graphics and graphics.

  • There's a lot of very small calculations.

  • So we run on the GPU for that reason.

  • So So running on the GP was where we want to be for something like deep learning, because what we're trying to do is a lot of simple calculations.

  • Inter Jeep, like your CPU probably has something between I don't know, four and 12 cores.

  • Okay, A nice GPU has, like thousands, of course, so it's just it makes a big difference.