Placeholder Image

Subtitles section Play video

  • what is going on?

  • Everybody.

  • And welcome to part seven of the highlight three tutorial series, as well as the first part to the M l section of Hal I three tutorials.

  • I do want to stress I am here mostly just to tinker with M l.

  • I have no promises here.

  • It's kind of like the python plays G t a or the S E to Siri's.

  • I don't know what the outcome's gonna be.

  • It's just a realistic example of me trying to solve a problem with ml eso.

  • In one case that was pretty darn successful.

  • And the other one, it wasn't so.

  • So we'll see.

  • If you guys have ideas, how to make it better or whatever, feel free Thio.

  • Leave it in the comment section.

  • Also, if anybody has an ML type of model that they just don't have the processing power to go through if you want, you can submit those in the comment sections, too.

  • If I see something that looks pretty darn cool, were interesting all happily devote some processing power to it toe, see if it's ah any good.

  • So if you want to do that, have at it so with that.

  • Let's just jump in and let me talk about what I want to do and why.

  • So the first thing I'd like to do is, um let's head over to highlight dot io and talk about the method I want to use.

  • So one method that is probably gonna win Hal I TTE or at least be the best type is you can parse replay files now.

  • I'm not gonna totally hate on that method.

  • I plan to use that method.

  • Um, and I think that will be the one that wins if there is a winning ML method.

  • But I find that method not like it's cheating, but it's kind of cheap.

  • It's not as cool to me as something a little more raw, so that's a very supervised ML method, and I think it's way more interesting to do methods that are a little less supervised.

  • So what I would like to do is the type of model that I always want to D'oh, which is a more evolutionary based method, something that learns more from like Random is just fascinating to me.

  • I just really like that.

  • So that's what I want to do here and So anyways, I know people are gonna want, like reinforcement learning.

  • This is to extent kind of reinforcement learning.

  • But it's not Q learning, which is really what everyone means when they say reinforcement learnings.

  • Anyway, uh, we will be doing deep learning.

  • Just I want to do an evolutionary based model because I think that's really cool.

  • If you want to do a reinforcement learning with Q learning example and again, you don't have processing power, let me know.

  • Post it below, and I'll happily see how good it is.

  • And I'll dedicate ah, comparable amount of processing power to it to pay how decent is so on.

  • Give you credit and all that.

  • I won't submit the Bader anything unless you want me to.

  • Anyways, let's watch a game.

  • Um, I can't click it.

  • They're going so fast I can't click thistles.

  • Super frustrating.

  • Thank you.

  • Yeah, I couldn't click on him.

  • Okay, so, uh, here's an example of a game.

  • And here's how I how I want our approach.

  • It in his few words less.

  • It's gonna be a lot of talking.

  • I'm sorry.

  • There's a lot of concept here.

  • Um, so anyways, so what's going on?

  • here.

  • Okay, so in this case, each player has what?

  • For ships?

  • Four or five ships.

  • Think green only has four.

  • Yeah.

  • Anyway, um, each ship is its own little entity.

  • And in the world of Hal, I TTE this game, as I've said before, is really all about navigation.

  • But the nice thing is, in highlight to navigation was you had a vector and thrust and all that's like a percentage those very challenging ML operation was and how it three, Honestly, this is a much more basic problem to solve.

  • That doesn't mean that competition is any less that we've got a lot of the same players from last year and the competition is Justus.

  • Hi, but the actual challenge itself and the way you need to think that part's a lot more basic you Instead.

  • Now you've got to get a lot more fancy when it comes to actual logic and stuff like that.

  • So I'm definitely dogging on this year's game, but in terms of navigation, we only have five options, right?

  • You can only move up, down, left, right or not move.

  • So that's pretty nice.

  • And it's a grid structure, so it's very basic It's super simple for us to feed this information to an A I or an M l A I and specifically a convolution Eleanor Network.

  • It seems like a no frickin brainer to feed it through a confident.

  • So the only fear I have is they're pretty small, but, uh, you know, we don't need a huge confident we can use a smaller, confident and be just fine.

  • Okay, so I want to see it through a confident.

  • Now there's a couple of issues we have.

  • One is the game sizes tend to vary a few different ways.

  • We could overcome that.

  • We could either use padding or we could crop down to the smallest size, which is a 32 by 32.

  • But if we're gonna do that, Theo, other option is to instead of taking the entire game map, we can take things relative to a ship.

  • Now, we're already gonna need to do that.

  • So consider, you know, I'm gonna zoom in, but consider you know, this is your game map.

  • Let's say it was a smaller game.

  • APS This one's already kind of big at 48 5 48 which where should this ship go.

  • This ship could should clearly go left writer or west to get that.

  • How light spot.

  • What about, um what about this ship?

  • Should this ship also head to that position?

  • Probably not.

  • This ship should probably maybe even come down here.

  • It's over here is a little close to the enemy because it rolls over.

  • Well, it's actually not close to you and me.

  • I'm zoomed, and I forgot about that.

  • So maybe he should go over here because he he is closer than the enemy is to this spot.

  • Right?

  • But regardless, each ship is relative, so each ship should have a relative viewpoint as well.

  • So whether you wanted to use the full map or a slice of the map or whatever, you want to not have this, let's say you're this ship.

  • You actually want the map to look like this.

  • Unless they were at this ship.

  • We want the map to look more like this, right with your ship.

  • The one you're considering at the present moment in the center.

  • Unless you were going for, like, a macro model of some kind to figure out.

  • Okay.

  • Were we send clusters of ships or something?

  • like that, which is totally valid.

  • But what I want to do is an evolutionary based model, and I want to do it on a per ship basis.

  • So each ship, the model will run a prediction for each ship as we generate through.

  • Maybe later on, I'll change that.

  • But to start, that's kind of what I want to do.

  • So then the next thing I want to dio is we need to get all of the information around that ship.

  • So we need to get this Coordinate this, coordinate this one and this one and just do that around that entire ship.

  • So now let's talk about how I plan to do that.

  • Because the good thing is, we have relative and game map coordinates built into that little Halle A p I for us.

  • So doing this is really just a logical question.

  • It's not gonna require too much digging on our on our on our end, so I'll just minimize this will come into here.

  • Um, and for now, I'm gonna copy paste center.

  • But I'm gonna call this testing grounds.

  • Open that up.

  • Let's just talk about how we can get those coordinates.

  • So, first of all, we just kind of want to get, like, a radius.

  • I'm not gonna get a circle, though.

  • I'm gonna get a square.

  • So radius is probably the wrong word to use someone say size.

  • Let's say the size we want is three.

  • So three in all directions.

  • We like that square.

  • How would we do that?

  • Well, what we all we really need to do is, like, four eye in there.

  • Actually, that's a four X in range of negative one times scoops, not three size.

  • Let's make a dynamic here.

  • Um, and then you need to go up to size, but the weight range works is it starts from a point and goes up to not too.

  • So we won't say size plus one.

  • So if I print X here, we'll see you.

  • We go from negative 32 Positive three.

  • So if we have a three by three cents because of zero right center position, it's not gonna be a three by three.

  • And because it goes from negative positive, it's also notice six by six, this will generate a seven by seven.

  • Okay, So, um, so that we could just do the same thing for Why?

  • So let me just copy Come down here paste And then for why?

  • And then we just print Let's for now we'll print X Y and this should be our relative coordinates.

  • At least it's every combination of relative coordinates, But it is that what we want?

  • Well, looking at this, I I would say no because this was this was this is like if we were to pictorially represent this like so if we were to get the hallowed information and then pictorially represent it, it wouldn't look like this because of the way we're iterating.

  • And I think just in case someone's not understanding it, well, we definitely what we want.

  • This is gonna be the most beautiful stuff you have ever seen.

  • I'm gonna draw a bunch of these.

  • You'll have to excuse the mark.

  • I'm not gonna waste too much time, but this is something it's always like Whenever I have stuff like this, I always have to look at it visually.

  • So here, let's say our ship, Let's just d'oh!

  • Let's airship is we'll go with green and we're right here.

  • This is our ship.

  • So ships at center, then, like we want the square.

  • So since it's a three, um, in theory, I guess we want, like, this thistle.

  • We want this square, though.

  • But what are the coordinates at these other locations?

  • Well, so this is up one.

  • And I want to say up like up is actually negative, right?

  • And then left would be negative as well.

  • So at this point here, this is the same ex.

  • Seems to be a little bigger.

  • That was my phone, not your phone.

  • Um, this would be same XO at zero.

  • But then the why would be a negative one, And then this would be again same zero, but negative too.

  • And then this would be, um zero.

  • Negative three.

  • Now, if we continue, this would still be a negative three.

  • Why?

  • But this would be a negative one.

  • Negative three.

  • And this would be a negative too.

  • Negative.

  • Three.

  • I know it's running over, but you get the idea This would be a negative three negative three and so on.

  • So we know that this top row should go in that sort of order.

  • And then as you pop down here, X here is still negative three.

  • But now why is negative to Um And then this would be a negative, too.

  • Negative two and so on.

  • It should just continue with that pattern.

  • And right now that is not the pattern we have.

  • We have negative three negative three, but then it's a negative three.

  • Negative, too, which is not correct, right?

  • It's going this way, and we don't want that we needed to go the other way because, well, again, it's imperative that we keep how it looks pictorially because I want to use a confident so continents are gonna go based on patterns.

  • And so if you have a cluster of Hal I TTE, chances are, well, that's where the ship should go.

  • But if we don't go in the correct order, a confident might wreck might still figure it out.

  • Um, but it's less likely to We need things to be in the right order, and in fact, it might even actually flip things.

  • But this is exactly why, at least for me, personally, whenever I'm dealing with a raise, I needs to be visualized.

  • I need to see it visually to confirm that my theory is correct, and this is like one of the very few times I ever actually write stuff down to test.

  • But anyways, this is not what I expect.

  • So what's our problem?

  • Well, we're in a rating by exes.

  • And not by wise, right, Because if we want to generate by why well, we need to Why?

  • Needs to come first so we shouldn't get away with just flipping.

  • Why?

  • Ex Run that again.

  • Just go up to the very top.

  • Okay, Negative.

  • Three ***.

  • Three negative.

  • Too negative.

  • Three negative.

  • One negative three, right.

  • We're gonna stay at negative three until we're done with all the negative threes.

  • They were gonna do all the negatives and so on.

  • So it's gonna go from the top down.

  • Perfect.

  • That would generate almost an image we need Thio, like since Why is r ro ro is just an empty list here.

  • Um, let's just say surroundings.

  • Uh and then we will not do that.

  • We'll do this.

  • And then we would say, rode out of hand X y um so we tend the rose.

  • And then at the end, we surroundings surrounding Stott of hand the row that at the very end, let's rather than even print surroundings, that's four are in surroundings.

  • Unless print are.

  • And now let me delete this print.

  • Run that negative three name three and all the negative threes and all the negatives and all that.

  • Now, if we were to grab bless a hallowed amount at each of these locations, it would start to look something like this does, right?

  • If we displayed Hallet, amount by a size of in color of the square.

  • Okay, we could definitely do that.

  • And it would look exactly like that.

  • Okay, so we have the rough.

  • Hey, man, get back here.

  • We have the relative coordinates.

  • Now, what we need to do is get this for every single ship, okay?

  • And probably have a larger size.

  • So how do we get this for every single ship?

  • Well, I believe it was in the regular tutorials.

  • I'm pretty sure we covered this.

  • You can take a current position and then add another position to it, even if that's a negative.

  • So it's a tractor.

  • Whatever.

  • Um, so for example, let's just go to, um Let's go.

  • Python programming dot net.

  • Um, come down here.

  • Will go to hell a three.

  • Wow.

  • I think I just spotted a bug with that ad.

  • I'm gonna have to check that out.

  • We checked that out.

  • Like I gotta go back.

  • Yeah.

  • See?

  • Yeah.

  • That's clearly an ad in the middle.

  • Don't have to make sure I disable ads on this page Bought tutorials after I have this.

  • This is like a newer tutorial page, and I think that's why that's happening.

  • Anyway, um, back to work.

  • Uh, let's go to the final tutorial.

  • Just grab the code.

  • We actually probably don't have to go this deep into the tutorial.

  • Um, because we actually just we just want a skeleton here.

  • But I'm gonna copy the whole thing anyways, and then we're incentive lot paste the whole thing escape out of there.

  • And then what I want to do is, um, Let's go to the very tippy top.

  • We don't need ships states anymore.

  • Let's change the name as well sent about Dash ml.

  • Let's keep the command HQ.

  • You keep direction.

  • Order?

  • That's fine.

  • We might want those later, um, position choices.

  • We don't want that anymore.

  • We're not gonna use that logic.

  • We expect our a i to figure that out now.

  • Um, because basically what what I would like is the Aye aye, to control everything.

  • Everything possible, though The one thing that we could have A I do.

  • But it would have to be a separate model is when should you create more ships?

  • And when should you stop creating ships?

  • We can We can definitely do that.

  • But it would be a different model because this is a micro model, and create ship is a macro choice.

  • So, um, but in terms of when the ship's air collecting or depositing and where they're going anything, every the Aye aye.

  • Is choosing where that ship travels, period.

  • So, um, for shipping meeting.

  • Okay.

  • So actually want to delete all this logic?

  • Really?

  • Everything will keep one of the command cues.

  • Um, okay, cool.

  • So, uh, shipped up.

  • Move.

  • Okay, so the first thing I'm gonna dio is let's just delete all the way in these extra.

  • So now it just It just moves this Just hold.

  • Still, the ship basically.

  • And then the other thing is, if lend me, I got ships.

  • Let's just on lee make one ship.

  • So if it's less than one and we have the highlight to do it, let's make a ship.

  • Also, this should be a constant.

  • It's constance dot I think it's ship underscore cost.

  • We'll find out.

  • Um okay, so all this does is just generate over the ships, okay?

  • And doesn't move him, and we will only make one ship.

  • So the one thing I want to do Well, we got a few things.

  • First of all, we could take this code so I don't need to do this little bit here, but I do want this bit here.

  • So I'm gonna copy this coming to here, and I'm just gonna pay sitting here because we were gonna need it at some point.

  • We just don't need it right this instant.

  • Um, hey, man, tab that over.

  • Okay?

  • And okay, now what I want to do is I want to confirm a few things because, like, I was saying so like, here, these air relative coordinates.

  • But what we would like to eventually be able to do is query the hell I TTE map itself for these values.

  • We want to be able to ask the highlight map.

  • Okay.

  • How much Hallett is there also Is there a ship on that position?

  • Is it our ship?

  • Is it an enemy ship?

  • Is there a drop off for a depot, rather or no, it is Drop up.

  • I keep trying to calm depots, Um, a shipyard or whatever is our shipyard is an enemy ship.

  • All that stuff we want to be able to query for all of those things so we can't pass to the game.

  • Apnegative three, Negative three.

  • That's just I mean, we could, but it would be the wrong position.

  • We actually need to pass the ship's current position, plus those relative coordinates.

  • So the way we do that, um, coming back to our code now would be something like this.

  • So we could say, uh, let's just do a logging dot info and they will use an F string.

  • And unless first let's print ship dot position, that's the current ship position.

  • Then let's print.

  • Um, let's do a ship dot position position plus and then a Capital P positions.

  • We have to convert it to a position type.

  • Let's do negative 33 So that's the current position.

  • The current ship's position is the true position on the game map.

  • Then we want to pass that relative position that should just dash it correctly, um, modify the position by that a relative amount, basically.

  • So then what we're hoping is that we could also query the game map by that exact thing.

  • So let's just make another logging dot info, another F string.

  • And then we'd like to be able to adjust directly queried game app and then in here you put the coordinates, the actual physical coordinates on the game map.

  • So my expectation is that we could actually take this right here past that as the coordinates.

  • That's our hope.

  • And if this works, we'll be able to see a couple of things.

  • One it will tell us, like if we as we pass through like, zero.

  • My hope is that if I pass a negative position because there is no negative position on the map, it just automatically rolls us.

  • My my belief is that it does, But we need We need to confirm that before we go down the rabbit hole because pretty soon we're never gonna be looking at this ever again.

  • We definitely want to be 100% certain it's doing what we want, and also we will visualize it even further.

  • This is a kind of bad version of visualizing But I will visualize it as well in something private, Open CV or Matt plot lib to make sure what's happening is what we expect.

  • Because if because if it's not, we're wasting a lot of our time.

  • Um so okay.

  • Without was going.

  • Run it, uh, let me go into here.

  • Let's end it.

  • It is sent to Bob DuPuy.

  • So we don't change that, Then, uh, we'll run.

  • That looks like it's a least running, so it should be creating log files for us.

  • It looks like it is okay.

  • They're both center bought, so it doesn't really matter.

  • Um, okay, so this is the current position.

  • Negative.

  • 33 So 25 23.

  • And then we come down here and we can see we're definitely getting that map cell object and it even tells us it tells us that position also tells us how much Hal it is there.

  • We can also query for Is there a ship there and in all kinds of stuff like that?

  • So So we we can figure out all of that information that's working with One thing we didn't check is if the ship is moving, so let's go ahead and move the ship.

  • Because I need to know, um, if it crosses over zero, if we're gonna be able to handle that, so that's instead, say, ship North.

  • So we're just gonna every move the ship just moves north.

  • Nothing fancy.

  • Say that.

  • Let's rerun that, and then we'll come over here.

  • Um, click on this.

  • Okay, so it's definitely moving.

  • Let's just scroll down.

  • Down.

  • No, no.

  • Now, until we get to a zero ish point, So at this point, it actually got to a zero, and it becomes a 25.

  • 42.

  • Um, and then it becomes a 25 two.

  • That's curious, because, wasn't it?

  • No, it's a 40 by 40.

  • Okay, that makes sense.

  • So to over is okay.

  • And then so from 41 like 41 is out of bounds.

  • So was 42.

  • 42 is out of bounds.

  • Um, so that rules over and becomes a 25 to.

  • Okay, so that does.

  • That does work.

  • It is the way we intended.

  • Um, okay, great.

  • So now what we have to do is begin pulling.

  • So rather than row upend X y, we actually want a row upend game map position X Y, um and we want to actually upend three different things.

  • So we will have a three channel confident.

  • Um, it won't be rgb or B g r a color at all.

  • It'll be, you know, Hal, I'd amount ship amount and our ship less a ship.

  • And if it is, if there is a ship, you know, the intensity could be how much Hallett is on that ship.

  • Um, or shipyard, right?

  • Or drop off.

  • Okay, um, and we could even have Is a ship at the drop at the shipyard, which bi curious.

  • Actually, we would already know that from the previous one.

  • So yeah, so it would just be hallowed amount ship, shipyard.

  • And if it's an enemy ship, we could just say negative one times that enemy ships Hal, item out if the enemy shipyard negative one times that shipyard done.

  • So, um, I think I'll stop here and continue in.

  • The next one will do that will visualize it, and maybe even start building maybe some random data.

  • I'm not really sure how far we'll get.

  • I'm gonna try to keep these Not too too long, but also not too short.

  • Um, but Yeah, if you guys have suggestions.

  • Whatever.

  • Feel free to blow again if you if you make one, are you got a different idea and you want someone to test it out with Cem Cem honkin processing power.

  • Um, let me know in the comments if you want Meteo run and see how far we can get totally willing to do that.

  • Also quick shoutout to my most recent channel members.

  • Ah, you day, Dave, John Walton and being Lee, thank you guys very much for your support.

  • It allows me to do stuff just like this, which is a super fun.

  • And it's an awesome job.

  • So I really appreciate you guys support, um so anyways, uh, that's it for now.

  • Like I said, next video will visualize make sure what we're going to collect is exactly right.

  • We'll make sure it looks like something a confident could actually learn from.

  • Um Then we'll start building data, and all we're gonna do is build data off of random moves and then weaken.

  • Slice away the best games like we could go based on who won or something else.

  • Slice away those and then train a model and then literally just keep doing that and see to see how far we can get.

  • I have a suspension.

  • It won't be super far, but I'm really curious to see how far.

  • So anyways, uh, that's what we're gonna be doing in the next tutorial.

  • Um, I will see you guys there.

what is going on?

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it