Тёмный

🖥️ POSTMORTEM FOR MY FIRST MACHINE LEARNING GAME! (4/4) 

Jabrils
Подписаться 492 тыс.
Просмотров 211 тыс.
50% 1

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 380   
@_dr_ake
@_dr_ake 6 лет назад
I'm still impressed at your ability to speak without moving your lips
@woobear01
@woobear01 6 лет назад
Retired developer here and after watching the 4 videos you make me want to program again. Thanks for the juice.
@xamael1989
@xamael1989 6 лет назад
James Frohliger dont retire fellow keep the fire burning✌✌✌
@Rostol
@Rostol 6 лет назад
i downloaded visual studio and unity after these 4 videos, so yeah i get it
@woobear01
@woobear01 6 лет назад
I love being retired but I also love exploring the coding landscape. Always will. Currently chasing golang + graph databases.
@jabahpureza
@jabahpureza 6 лет назад
Obrigado pelo curso! Um salve de São Félix, Bahia, Brasil.
@kenchang3456
@kenchang3456 6 лет назад
Former programmer here too and this was so approachable and the topic is so amazingly interesting I am grateful for the work presented here.
@emperorpicard6474
@emperorpicard6474 5 лет назад
The reason why Forrest failed is because you didn't incorporate Jenny into the reward algorithm.
@deepfakestudio7776
@deepfakestudio7776 5 лет назад
Nice 1
@b7e286
@b7e286 4 года назад
hahahaha!!
@Crisosphinx
@Crisosphinx 4 года назад
He also didn't have a box of chocolates.
@emperorpicard6474
@emperorpicard6474 4 года назад
@@Crisosphinx My ma always said, a neural net is like a box of chocolates, you'll never know what you're gonna get.
@TheMarkFeet
@TheMarkFeet 6 лет назад
Forrest has evolved already if you tell me: he blamed lag.
@voxorox
@voxorox 5 лет назад
We'll know he's really getting advanced when he starts accusing the courses of cheating.
@Sh4dowHunter42
@Sh4dowHunter42 5 лет назад
Hahahahahhahahahaha!
@malamhari_
@malamhari_ 4 года назад
lmao
@Alfie275
@Alfie275 6 лет назад
How to stop lag affecting the results: Use FixedUpdate and fixedDeltaTime instead of Update and deltaTime. Update gets called every frame, so the actual time between varies. FixedUpdate will get called with a constant average frequency (note actual period in real time may vary, but thats why you use fixedDeltaTime). The way it exactly works is that the time since last frame will be added to some accumulator, eg the accumulator is currently 0 and then you get a frame after 0.023 seconds, it will now be 0.023. Then the first thing (before physics) is that while the accumulator is above the fixedDeltaTime (say 0.02), it will do a fixedUpdate and subtract the 0.02 from the accumulator. Then there will be 0.003 left in this example. This is useful as the "leftover" time accumulates, until you get multiple fixedUpdates per frame (of course, you may be getting many anyway if framerate is bad). Also useful is that each fixedUpdate is called before each physics step, so anything affecting the physics (or relying on it) should be done here as well.
@filmgbg
@filmgbg 6 лет назад
What this guy said. Sure hope he sees this comment.
@MaddieM4
@MaddieM4 6 лет назад
On top of this, I'd like to say, the most likely REASON for this unpredictable and seemingly nonsensical lag, is garbage collection. Memory optimization, especially lifetimes and explicit collection timing, are probably the most critical improvements that the game could have used.
@filmgbg
@filmgbg 6 лет назад
Philip Horger You can't do stuff like that manually in C# though, and I'm pretty sure you can't in javascript either.
@Alfie275
@Alfie275 6 лет назад
filmgbg you kind of can, using techniques like object pooling, where instead of creating/deleting objects, you take from the pool (and create if needed) and return them when not needed. Since the pool has references to unused objects the GC doesn't kick in untill the pool itself isn't needed
@filmgbg
@filmgbg 6 лет назад
Alfie275 Yeah of course you can object pool, but that wouldn't apply to this project, except possibly when respawning the AI player.
@seanld444
@seanld444 6 лет назад
1st video: 'I AM LAZY" 4th video: "Don't be lazy, bro."
@DariushMJ
@DariushMJ 6 лет назад
Good job! here is my analysis: #1: Put the the code in Unity's fixedUpdate function rather than the update function to avoid the lag influencing the AI. #2: Either give him a longer sight range such that he will be able to spot the dead-ends earlier, or equip him with A* path-planning, such that he will only have to follow way-points. #3: Avoid overfitting by testing him on all the maps at the same time, or by giving him a new randomized map in each iteration. #4: Add one more hidden layer to the neural network: 1 layer with 100 neurons perform equal to 2 layers with 2-3 neurons each!
@alxjones
@alxjones 6 лет назад
All good ideas. For #4, it may be worthwhile (given sufficient training time) to use some kind of optimization algorithm to determine the best NN architecture for the application. And on the subject of time, a quicker method of training, like a version of the game with no or simple graphics, would help significantly.
@ZackAngelSmith
@ZackAngelSmith 4 года назад
does he use unity and python? plz anwser
@SourabhDesaiBrief
@SourabhDesaiBrief 4 года назад
Yes, I also, Visualised #2...
@BlueTJLP
@BlueTJLP 6 лет назад
Use raycasts next time instead of these static lines, so Forrest could adapt to situations where the lines would be too short in open areas.
@WindBendsSteel
@WindBendsSteel 6 лет назад
One thing that would help Forrest, is increasing the turning speed with lower distance values, so he has time to turn around before hitting a wall. and also feed him with a backwards very long linetrace as well, so he knows what is behind him, and how he is progressing.
@RichardVaught
@RichardVaught 2 года назад
Your observation @3:26 is essentially a damning critique of our western education system: So deep in the basics that the learner never achieves the general understanding that would allow them to navigate challenges they never trained to face.
@zitaoqiu
@zitaoqiu 6 лет назад
I am taking machine learning class this semester, your project is very interesting! One possible problem I can think of was the input. I don't think there was enough input to train your agent well. You can play this game well because the environment was fully observable to you. However, your agent didn't have full access to the entire map. Just imagine how hard it would be if you are playing this game in first-person view. Even the top player may not be able to do well if there is some dead end trap.
@govinm6973
@govinm6973 6 лет назад
Just found this channel, so much information and yet you leave the viewer wanting more to sink their teeth into. Great job! Also, looking forward to trying out some of the machine learning games!
@dyntaos
@dyntaos 5 лет назад
I'm a new viewer and I just wanted to say, I really enjoyed the first 4 videos of yours. Keep up the good work!
@ForsmanTomas
@ForsmanTomas 6 лет назад
I spent DAYS trying to figure out how that demo worked when I was just a kid, not even a teen. It's been with me ever since and when machine learning blew up I kinda felt I understood it straight away, though...only in a very very general sort of way. Thanks for this fun demo.
@SheeplessNW6
@SheeplessNW6 6 лет назад
I loved this series! I think you did a great job of conveying the fun of experimenting with software, and I suspect quite a few of the people who watch this series will be encouraged to try their hand at machine learning as a result. Great job!
@JunkiMoturi
@JunkiMoturi 4 года назад
You've taken a very different approach to machine learning that has gotten me fired up and ready to dive in... Time to feed that curiosity.. :D Just subscribed to learn more from you.
@steventeglman
@steventeglman 5 лет назад
First time I've seen you talk while moving your lips. Impressed. But real talk, your channel is amazing, and has inspired me to really start looking into machine learning. Keep up the great work!
@SSampaleanu
@SSampaleanu 5 лет назад
When Forrest failed on level 4, it looked like he ran directly into the wall at a 90 degree angle. In every other level, he was moving around corners, so walls would always approach on one side and Forrest would know to turn the OTHER direction. If the wall approaches from a head-on angle, Forrest would not know which way to turn since the wall would activate his front-left and front-right equally. I believe including a similar scenario in your training would have corrected this, as you alluded to in the video, but I'm still pretty new to this topic. Love this content, you inject a lot of fun and personality into this topic! thanks for your work
@mdtapilatu
@mdtapilatu 4 года назад
It took me 4 parts of your video only to understand that forest is no more than what you WILL ALWAYS teach him to be and do. I hope we as human are not mere AIs to the Gods. Nice work btw👍
@kevinowenburress2435
@kevinowenburress2435 5 лет назад
You need to add a gradient for each of forrests "feelers" so that it becomes more negative to be too close to the wall in any one direction. Maybe use a logarithm. It's also better to use a predictive time series so you would actually have forrest running a frame or number of frames behind where he would run, and then anticipate where to go based on values and use a second, deeper network, in order to make decision trees based on which training sets to use in the next steps. And there are multiple ways to do this so you might want to look at making a neural network that tries them all randomly until the best combinations are found based on the same recursion. Then just add a lap marker at the starting point and make forrest drop markers for where he has already been and train him only on not hitting the walls and covering the least amount of distance to complete the tracks, and causing the first lap markers to be ignored at a certain point before the second lap or erase them up to a distance behind him, before they are in his field of vision, which is probably better except for in a few cases, which is a harder problem to case for randomly generating courses, which is another algorithm that is inversely co-variant with the difficulty in solving them, in some aspects. Being able to calculate that in the same means is of value as well, and you can see why now things are boring, and why it is of no value to explore things that don't make my possible as an independent conservative. Of course doing this in ways that affects people is a whole other domain and is in the realm of managing probability and risk. Since you wanted to get political and this is a matter of science involving politics and what we're not the ones doing..
@maxedwill
@maxedwill 6 лет назад
Wow sick series, really enjoyed it, I feel like I understand machine learning much better after watching this than other videos which can get caught up in jargon. You keep it funny and interesting while getting into complex subject matter. I also really appreciate how you analyse and learn from yourself, it's really cool to see your process. Will definitely be watching more of your videos, can't wait for your channel to properly blow up!
@imlxh7126
@imlxh7126 2 года назад
8:16 hot DAMN! that's eco virtual!! you, sir, are TRULY a man of class
@oasishurl
@oasishurl 6 лет назад
This is awesome! For more complicated levels, it'd be awesome if you added a way to run into unexplored areas. Like a reward for moving away from everywhere you've already been. Which would require a real time memory of that as the agents explore. That way you could keep agents from getting turned around and going around backwards.
@martiddy
@martiddy 6 лет назад
I watched all the Forrest machine learning series and I have to say they are really amazing. Also, I like how you find new obstacle in every video and give your best to find the problem. I'd like to give my opinion about why I think Forrest doesn't play as good as a human. My guess is that since we can observe the whole track and find which path lead to the finish line while Forrest has sensors around him so he only can see what is in front of him, that's why it can't know which path is the right one when he runs a new track for the first time.
@Tinkerer_Red
@Tinkerer_Red 5 лет назад
The issue is that Forest was given 5 inputs, say he is running exactly at a wall, he has an equal choice to either turn left or right, causing them to fight each other. try giving him SLIGHTLY randomized benefits. Also front, fleft, and fright should all be double lines, just slightly off from each other, that way if it's a thin pillar, he can detect that it is ever so slightly to one side.
@StarPlatinum3000
@StarPlatinum3000 6 лет назад
I feel like your features could have been improved, from just distance-to-wall measurements to also using the fraction of the course that Forrest ran (including negative values to punish running backward), as well as a time penalty. That way you could weed out bad habits like running in circles, running backward, and biases against exploration. Of course, all that was just talk, and I'd need to try coding it myself, before I can understand the feasibility of such an endeavor. This was an awesome video series. Hope you work on further projects like this.
@arianh6553
@arianh6553 6 лет назад
amusing and informative, man. thank you for putting in all the work to produce this
@iamundergrace
@iamundergrace 6 лет назад
Second process that monitors just his forward. When the forward gets very low or close them then calculate average 2 on left then right. Then go the way of higher.
@nammick
@nammick 6 лет назад
I both found this both extremely painful to watch and amazing to watch your thought process and presentation and closely follows a few of my failures in NN. From the offset it was clear that without any memory, a feed forward state would need more info on it's environments. Ironically I think if you had the NN setup with just 2 more input angles this may have worked but the problem was basic geometry for fitness on your tight hex courses you were essentially getting aliasing so 2 more inputs would have removed aliasing. Very good series and well explained. I have found that if you can think of what you would need to solve a problem and going further in deep learning the number of functions you may need to use to solve a problem + wether it needs to remember some state this can give you good clues on how many inputs you need, what layers you need and what activation functions you need on those layers.
@mattjhann
@mattjhann 6 лет назад
I think one of the problems your forrest faced is that he couldn't see around the corners like you could. Maybe weighting the average so that the straight ahead reward value was 2x that of the 45 degree value it might have helped. At some points he had to just guess because he couldn't see around the corner as well. Bear in mind this is coming from somebody that has no actual experience in machine learning, it's just some observations. I'd love to get into it, but I really have no idea where to start. Anyway, incredibly interesting and thanks for the video!
@juliettaylorswift
@juliettaylorswift 6 лет назад
After you said this would end up on github (episode 2?) I planned to build upon it in some way. In the past there have been many projects where I've gotten far enough into it to realize that it was not a task to take on at that moment as it would basically require building a game engine of sorts to be able to test any of the code. This series does remind me of my MTG neural net that never learned...I should take a look at it again (not true MTG, really simplified sorcery speed burn vs vanilla creature).
@hikester2010
@hikester2010 6 лет назад
Maybe you should make a way for him to see around corners like put a T shape sight pattern. It's like when you use your mind to figure out a maze or find your way through a new part of a city or town you have never been to. It will be like giving forest an imagination.
@johnvonhorn2942
@johnvonhorn2942 5 лет назад
Jabril is the coolest cat in code.
@maroawesome3068
@maroawesome3068 6 лет назад
Great series man .. I really love the semi technical way of explaining things and I really like your video editing Best of Luck
@aceofspades3000
@aceofspades3000 6 лет назад
I like the Augustus Hill cosplay you got running in ur video bud.
@RudeFoxALTON
@RudeFoxALTON 6 лет назад
6:55 If your laptop has a dedicated GPU it is possible that it has hardware encode/decode. If you change your encoder option in OBS from x264 to NVENC (Nvidia's encoder) it will reduce the strain on your CPU. AMD has the same thing and it's also possible with intel igpus apparently, using intel's "quick sync", but I have never tried it. obsproject.com/forum/resources/how-to-use-quicksync.82/
@bobbyhutter5654
@bobbyhutter5654 5 лет назад
I just wanted to say how much I enjoyed following this AI project you put together! I'm thinking about learning python so I can start a similar process for mastering games by emulating AI that has solved it - like 80's retrocade games. This was really educational and I appreciate all the resources you included - especially being a visual learner! I subscribed and hope you wanna do more ML / AI game oriented videos in the future! Also, is that Eco Virtual you ended the video with?
@yosephmetal
@yosephmetal 6 лет назад
loved your analysis of the subject of ai/machine learning. I want to learn about this myself and your tactics are extremely approachable! TY for the community at large. this is a subject that is hard to get into with little/no knowledge but the way it is presented.... hats off! it's great! and I hope to learn more soon , as tis a subject that I'm deeply interested in! That is all! ty for your vids!
@Lefty93
@Lefty93 6 лет назад
Wow. That was really, really intersting ! Thanks for theses 4 videos. Like you said, it's up to us ! That's iinspiring !
@someone5781
@someone5781 6 лет назад
I love your videos! The way you explain things makes so much sense, especially after seeing countless other youtube videos that just didn't give me enough of a reason to care about the minutia of ML. I would also love to help out on your video game using whatever skills I have! :)
@pynchia4119
@pynchia4119 5 лет назад
Probably spacing the rays of distance evenly every 45 degrees isn't enough/the best option. Try spacing them unevenly but symmetrically, e.g. 0, 25, 90, 155, 180 degrees. Also increasing the number of rays might help a lot. Good video series nevertheless. Kudos
@baritoneboy66
@baritoneboy66 6 лет назад
I thoroughly enjoyed this series. I am a CS major so I might be biased, but it wasn't too technical and decently engaging
@jeffersontbraga
@jeffersontbraga 5 лет назад
Good job Jabrils! :)
@NathanHaaren
@NathanHaaren 6 лет назад
you should add a 'distance to finish' reward, which forest will use to choose which way he goes
@calebmcnevin
@calebmcnevin 6 лет назад
I definitely think using distance from the walls as fitness was a main problem. I would use length of survival and number of laps, which is what the actual objective is
@mehmettahasimsek4979
@mehmettahasimsek4979 4 года назад
I want to learn ml too .This videos gave me motivation and information to what will I do in the future thanks for sharing these videos
@TheGrooseIsLoose
@TheGrooseIsLoose 6 лет назад
I wonder if it would work with no changes to Forrest, but instead of training on one course for a while, randomly generate a new course for each run.
@arsnakehert
@arsnakehert 6 лет назад
Oh yeah, regarding Thing #5, when you added little "rooms" with hexes inside them, you added something akin to cycles in a graph. That would require you to create some way for Forrest to memorize which "hex-spaces" he had already visited. I'm now wondering whether or not, and how, a neural network could figure out a graph traversal algorithm. o_o
@MrJhuang999
@MrJhuang999 5 лет назад
What if we are all just variations on Forrest Gumps-asked to figure out puzzles of the universe. With each generation hopefully slightly closer, although it seems like plateauing happens a lot
@RafaelSValerio
@RafaelSValerio 6 лет назад
Thx for the series, really interesting and fun to watch!
@iffn
@iffn 6 лет назад
Amazing video series! Looking at the reason why Forrest failed, I would argue that the 5 lines as inputs might not be enough information to determine a solution to every course. This would basically mean that the global minimum for the system is not low enough to solve every course. Thinking about this and looking at the graph at 3:30, I would assume that the closer the lowest point to is to the minimum required to solve the problem, the more difficult it is to determine, weither the problem has a solution. Meanwhile, a narrow valley would mean that the probability of finding it is lower and therefore requires more training time. A practical example of a narrow valley could be Forrest wiggling left and right to get more information from the environment, similar to the way some birds move their head while walking to increase spacial awareness.
@Indygoflow1
@Indygoflow1 6 лет назад
That's some good channel right there
@Krentiles
@Krentiles 6 лет назад
Great series thank you
@kamiljanpozezynski7040
@kamiljanpozezynski7040 5 лет назад
What about creating an algoritm that will create map`s based on forest skills? so for example if forest is starting it will create straight without many curves, and going harder and harder?
@eaglenebula2172
@eaglenebula2172 5 лет назад
Good idea imo
@tyelork
@tyelork 6 лет назад
Awesome series! Just watched the first through to this one :)
@VRwithAndrew
@VRwithAndrew 6 лет назад
Great as always!
@GodsatGaming
@GodsatGaming 6 лет назад
It could be that 5 input variables was enough to complete any one course but not the super position of all courses.
@GretgorPooper
@GretgorPooper 6 лет назад
Aw :( I'd really like to see this continue with all you've learned. Is there a possibility to add a "memory" to Forrest? Like, a memory input that gets changed when a new output gets triggered?
@MegaRomerox
@MegaRomerox 6 лет назад
I know I'm way to late for this but still I'm gonna say some things that i think might help. First, with just 5 directions taken into account for the inputs you're bound to have problems with complex shapes, hexagons in this case. I would add some more, maybe 4 or 6. Maybe it's overkill, but i think at least 2 should go to his back in order to help him reinforce faster the idea to not turn back, which takes me to the second point. You should do the map creation tool with something to signal the main direction you must go, Something like a line which goes from beginning to end. Would be easier to explain with some drawings but i hope you get what i say. I think it might be a good way to fix the fitness function because having the goal and the start be the same makes it a bit harder to fix. The other way is to add a punishment based on a past position. For example, if the next move gets you closer to where you were half a second before you should give it a punishment as it might mean he's turning around or going in circles. Also punish over time as to get a network that tries to get faster to the goal and doesn't stay running in circles. Also you should maybe give a try to different ways to make the neural network, or different ways to make it work. Backwards propagation and the other options. At least try, don't know which suits this case best. Apart from all that, i think you said mostly everything you should be taking into account for the future, and it's been very interesting seeing this, I think I've learned a lot, so thank you for this awesome idea. Also, love the way you present all of this, you make something really dense and complicated very entertaining to watch ^^
@electronresonator8882
@electronresonator8882 6 лет назад
in real world race, even tough racers run at their optimum speed, they slowdown on a turn so they won't jump into spectators arena, if they are racers who don't slow down, they compensate it with something called as drifting, or in motorbike race they lower their body position in a diagonal way but still they have to brake a little
@MaLuS25
@MaLuS25 6 лет назад
i would like to ask a couple of questions: 1) would a scale value offset to the lap complete multiplier to account for lap time, maybe it will pickup routes better? 2) is it possible to have a state machine choose the algorithms for training to switch depending on level of success vs low growth/variation over time? cool project thanks for the info!
@HaloWolf102
@HaloWolf102 4 года назад
Am I so arrogant to say that you didn't use long enough lines? Forest would go down a path he never knew was a dead end until it was too late. Stationary penalty, and backwards penalty. For stationary, draw a temporary trail behind him in the areas where circling can occur, and if he connects with the start of the invisible line, take away a portion of his reward, he loses when he hits 0. For Backwards, make directional boxes overlapping the area of a track where he could potentially go backwards, if he advances in the wrong direction, he loses. Speed, for an obstacle the AI doesn't know how to tackle, slowing down will make it easier to process. With the hexes, this makes it easy. Give a speed penalty with how close Forest is to the wall, by overlapping another invisible hex over the original giving it an area of slowness, this will also potentially solve the circling issue. The faster the AI is, the more reward he will get. Also give it a minimum it can't go under, making it try to not make as many mistakes as possible. I know nothing of AI,Neural Networking, or coding in general. So apologies for talking out my rear. If my thread can be dismantled, I will take a point down, and maybe the entire thing, if I am indeed wrong.
@teafollet5361
@teafollet5361 3 года назад
Maybe Forrest didn't have great enough "eyes" to adapt to a new race. An actual player have more info to adapt and finish the race I suppose.
@HammerAndGames
@HammerAndGames 6 лет назад
Don't forget the last possible reason. Not enough inputs. 5 lengths are really not many and could make it impossible to reach the goal. I don't think it's the only reason, but actually it could be.
@skylerdickson1411
@skylerdickson1411 2 года назад
Lol I’m actually watching this to try to create an AI for strategy games that can react more dynamically and make calculated decisions to achieve an end goal, while having some flexibility in how to achieve it. These videos showed me a lot of the problems I’m going to run into but I am working to implement this technology into gaming too.
@Gurman8r
@Gurman8r 6 лет назад
Loved this series. You got my sub. :)
@AyoubWellsten
@AyoubWellsten 6 лет назад
freaking amazing videos bro, subbed
@nicholaslatina4464
@nicholaslatina4464 6 лет назад
Your music taste is great. Fried neckbones and home fries last video and some Eco Virtual here? nice
@heidemannjo
@heidemannjo 6 лет назад
simple english incoming : you got 5 inputs which are the distance from forrest to the opposit wall. my thought is : forrest should try to alwys be at the centre, like being the same distance form the left wall as to the right wall ? It's 2 am soo don't expect perfect english :s
@raphaelfalque683
@raphaelfalque683 6 лет назад
Nice video, tho if you wanted to manage any situation you clearly need a larger feature space which would allow the bot to anticipate.
@mschnayd
@mschnayd 6 лет назад
Hello, I think that your videos are pretty amazing and difficult not to watch once you start. I wanted to see if you would not mind sharing what tools you use for developing these games as well as videos. Personally I am a software developer with decades of experience in building variety of apps, but never anything with significant amount of graphics or AI. I would really like to do some self-learning projects as well as interest my kiddos in programming. We have played with MIT Scratch in the past; however, I really enjoyed your style of learning as well as presenting. Great Job!
@sergarlantyrell7847
@sergarlantyrell7847 4 года назад
I notice that you didn't question the original 5 sight line average method of navigating, could the imputs to the learning process be at fault?
@CommanderXevon
@CommanderXevon 4 года назад
Dude this is really cool. I'm still just beginning to learn python but I wanna move into working with ai later on and I'll definitely be referencing your projects ^^ I like your style of video btw sick of most youtubers just screaming at my screen haha
@Flipster230
@Flipster230 6 лет назад
Instead of training gump on turning left and right, wouldn't it have been easier to have the ai learn to turn clockwise or anticlockwise, thus reducing the number of variables.
@xpifpouf
@xpifpouf 6 лет назад
Wow ! I wish i could do something of this the level 😅. I will try to do something like this but with a PID, its more in my range... Keep up the good work !
@jasondelong83
@jasondelong83 6 лет назад
Why not auto-tune the number of variables in the thought process to be equal to the number of variables it discovers while exploring each level, thus creating a network which can grow smart connections on the fly, increasing in complexity to keep pace with the more difficult levels. That way you can train it on easy circle level first for a bit, let it auto-tune the size of its network, use that as a baseline, then show it harder levels and it let it grow naturally.
@Ins4n1ty_
@Ins4n1ty_ 6 лет назад
As someone who made this exact thing before for my college conclusion project... You are going through the same problems I had to. Look, some of the problems I can see just by watching the videos, you were right in some problems and didnt mention others. The problems I see are: 1. Network Design, you were 100% correct on that one. Maybe some more nodes on the hidden layers could've helped. Maybe more inputs, instead of 1 input for each 45 degrees, 1 each 30 degrees wouldve made for better sensory input. 2. One thing that you didn't mention, you could increase the sensory length for the inputs. Some of the failures shown in the videos makes me think that Forrest didn't know what to do because he couldn't see far enough to find the walls and became loss in what could be described as open nothingness. There's not much of a way to know what to do in these situations because any input would be good. I'd say iterate a bit with the sensory length or allow the brain to decide to slow down forward movement so as to give it more time to turn with suddently facing a dead end he couldn't have predicted for lack of sensory data, remember we humans see VERY far away for a reason, we don't just see nothing about 2m in front of us. 3. More training. Mutation rates and random TP additions can help getting off the local minimum so if you feel like you're stuck just give it more time, maybe manually add a new TP to try leaping through the barrier. 4. Courses. Hex courses wasn't really the problem, you kind of mentioned it in the videos but I'll reiterate: You should really make only one training course, and that training course has to contain EVERY POSSIBLE OBSTACLE Forrest might face. The perfect course would have to have every possible curve, dead end, open zone, etc. This way it can train to respond to any thing. That is because artificial inteligence is only that, Artificial. What it's actually doing is recognizing patterns in its sensory data and responding accordingly. It cannot respond correctly to a pattern it's never been trained for, so the training course must have every possible pattern for it to recognize and respond well. [ 5. Penalties. You are absolutely correct, he needs a penalty if he goes the wrong way. A lot of stuff got fixed after I started subtracting points (with an *-2 multiplier on the distance ran the wrong way) from the fitness score on my project. That's what I can remember rn, but you did really good the way you did, so don't get frustrated about it!
@Brokenrocktail
@Brokenrocktail 6 лет назад
Hey, question. What would happen if you put logical bounds on the output of the neural network. Like if you're about to be too close to a wall to avoid a collision, override the output and turn to avoid the collision, then give control back to the ANN when you're out of harms way? A hybrid approach. Use the neural network for navigation, but have an emergency hard-logic fallback for imminent collisions? Let me know what you think. Overall, great series. I subbed. Well worth watching, will recommend to friends.
@kantnklaar
@kantnklaar 6 лет назад
First of all i have to say i have zero knowledge in ML. But watching the last runs it seemed like Forrest did not have a lengthy enough vision to anticipate the oncoming obstacles, it seems like he did not have anough time to calculate his route. Maybe that was because of the lag you mentioned. I feel like giving him a bigger amount of vision makes it more able to anticipate the route and also to implement code to remember the place he came from so he does not go back to where he came from.
@estebany.5394
@estebany.5394 4 года назад
Dude, you're awesome
@joobyzat1221
@joobyzat1221 6 лет назад
Loved the series, hoping you do more with games and AI. OTOH, I downloaded the game from gamejolt but could not get it to load Forrests.
@mighty2146
@mighty2146 4 года назад
why not use a threshold distance to tell him not to go too close to the walls if possible
@kevinbarajas8363
@kevinbarajas8363 5 лет назад
Couldn't he increase reward the closer he moves toward the other side of the course finish line along with what he currently put into place?
@TrentSterling
@TrentSterling 6 лет назад
Putting everything in FixedUpdate would avoid the issues related to lag and capture.... Of course, if you're seriously lagging, the game will run slower, instead of time skipping ahead and crashing Forest.
@BangaWangaTschanga
@BangaWangaTschanga 6 лет назад
It seems like they run straight whenever distances to all sides are the same (just as when x or y-angle are the same which is right) - wouldn't it be possible to train it in "trapped" situations to learn not touching walls or maybe measure the distances differently (something like EM-Algorithm to measure the incoming data in order to detect structures and encourage a different output if they detect similar values from all inputs?) Is a completely groundless suggestion though, i have never actually tried it
@wangarangmiao8888
@wangarangmiao8888 6 лет назад
Awesome! Keep up the good work
@asmeromfessehayehabteab5939
@asmeromfessehayehabteab5939 5 лет назад
That is a really good project Thank you Jabril. But I am unable to open the C# project in Visual Studio Ultimate. Please tell me which version of Visual Studio is needed. better send me link for installation. Thank you!!
@Jabrils
@Jabrils 5 лет назад
to run it you'll need Unity3D store.unity.com/download - Jabril
@almondpotato9483
@almondpotato9483 5 лет назад
5:25 When AI become too smart...
@RaduOleniuc
@RaduOleniuc 6 лет назад
You should revive Forest and train him on a proper course. Design one using good ontology. A track using hexagons is not the best approach as Forest searches the surroundings and is making decision using only 5 directional vectors. And when using those vectors, and hexagons, you have all the time at least one chance to encounter a perpendicular at 45 degree wall angle vs a left forward command (or right forward). If not two, at the same time. This means Forest will choose the weights in a pure random fashion, like in a lottery (because his interpretation on that particular direction is like hitting a wall at 90 degrees). Multiply this several time during the course of the game and you will see that he actually performed much better than expected. Seeing the algorithm choosing the strategy to run in circles made me laugh. :) It really outsmarted you, despite the fact you thrown at it the worst AI learning design possible (and here I am talking about hexagons, not the difficulty of the course). Don't be lazy, design one where the program could actually learn a real predictable strategy (this is not a lottery), and you will see different results.
@sammyfromsydney
@sammyfromsydney 5 лет назад
Have you considered that perhaps your 5 inputs don't provide enough information to complete the task. Would you be able to create a rules-based runner that only worked with those 5 inputs? Your bird's eye view provides you with data that "Forest" did not have.
@ZIT116rus
@ZIT116rus 6 лет назад
Can't figure out how neural network considers walls only having directions in the inputs?
@CoryMck
@CoryMck 5 лет назад
*Is that Blank Banshee at the end?*
@jimboandtheguitar
@jimboandtheguitar 6 лет назад
Hi Jabrils, I downloaded your official release of your game and was wanting to use your project for my deep learning class in college. Would you be able to post a video or documentation on how to use your interface. It looks like you need to upload "Forrests", a python neural network I suppose, into the Forrests directory but I'm not sure what format it should be in. It'd be great if you could provide a tutorial or documentation on how to interface with your game. Thanks!
@MiguelArconadaManteca
@MiguelArconadaManteca 6 лет назад
i have the same problem,and im really sad i cannot figure it out how to use it
@leoshevkun3645
@leoshevkun3645 6 лет назад
That was some smooth music at the end B) Where do you get the music that you use in your videos?
@PolishCooking
@PolishCooking 6 лет назад
Issue: when Forrest sees an obstacle that divides his path, he may come to situation of life and death. Without more knowledge he is doomed to choose based on his experiences, and if he can't, he'll do some random shit. Of course, it's random in our perspective, for Forrest it's perfectly fine choice based on his past experiences. In order for him to improve would be to: a) learn the course. Not what we want, but it'll solve the puzzle b) learn the way that the courses are built, so he can avoid such situations. It's impossible with such a small neural network, but technically he could overcome the challenge by learning the way you create the track to predict which crevice is going to lead him to certain death. Certainly more fun, but still not solving the main issue of the Forrest killer: his perception. Your project was not a failure at all. You've tried to guide a blind man through a maze telling him how far are obstacles in selected directions. Considering this, you bot was doing more than fine. He even had great successes.
@Warby579
@Warby579 6 лет назад
Seems to me it failed because Forest had no memory. Thus he couldn't determine specific features of a track - only what he can see right now, which is only part of a feature, leading to the running in circles etc. To illustrate let's say you had two forks: one lead to a dead end, and the other lead to the finish line. Even in the best case situation in which Forest turned around at the dead end, once he returned to the fork he would have no way to determine which road to go down again since he would not be able to remember that he just tried one of them, and so he could well get stuck in an infinite loop. A possible solution to this that would work in a neural network with no memory would be for Forest to follow the left/right wall all the time, but that's no fun. So if you did some sort of Neural Network which used past states (rather than just present) in its calculation of future states then you may get better results.
@shaneloretz5566
@shaneloretz5566 6 лет назад
The weights and bias on each node are his memory.
@Warby579
@Warby579 6 лет назад
They are effective memory of single instances of sets of inputs, I'm talking about memory of sequences of sets of inputs.
@brianmiller1077
@brianmiller1077 6 лет назад
Maybe it was a nod to the movie when Forrest just kept running? :)
@tornadofay
@tornadofay 6 лет назад
i wonder if game can be made which have AI that learn from player and increase difficulty by learning and counter the player
@BainesMkII
@BainesMkII 5 лет назад
I know this is old, but I'd strongly suspect that there is no thought process of an allowed design that can handle every possible valid course. For the hex map design, particularly when allowing for both large open areas and freestanding columns, only the five wall-distance inputs just might not be enough of an input. It feels like it wouldn't be too hard to deliberately design courses that would break any otherwise successful thought processes. Beyond that, the measure of success was poorly chosen. Wall distance aids in measuring survivability, but survivability doesn't measure course progress when Forrest can freely run backwards and run infinite loops. As for the lap multiplier, it takes too long for it to trigger, particularly for larger maps. You really need some way to reward getting closer to the goal, either by implementing a GPS-route-style distance to the goal or by having the map generator automatically generate multiple checkpoints that can be used to mark progress.
@oldbootz
@oldbootz 6 лет назад
Thanks for inspiring me.
@rayroshan
@rayroshan 6 лет назад
Dude!U r Damn good.Can you share your planning and approach to start and finish such project and the best part deploy them. Thanks .
Далее
🖥️ TRAINING MY FIRST MACHINE LEARNING GAME! (2/4)
17:02
Can You Beat Hitman 3 Without Breaking ANY Laws?
22:37
🖥️ FINISHING MY FIRST MACHINE LEARNING GAME! (3/4)
14:12
I Made My First Game in Godot in 3 Weeks...
26:21
Просмотров 369 тыс.
I Taught an A.I. Inspiration
16:15
Просмотров 76 тыс.
Videos I Could Not Upload...
13:32
Просмотров 164 млн
Minecraft's New Update is CRAZY
38:12
Просмотров 72 тыс.
The Legend of YouAreAnIdiot.org
18:01
Просмотров 10 млн
WRITING MY FIRST MACHINE LEARNING GAME!
10:02
Просмотров 1,9 млн
Earth has Terrible Worldbuilding
21:20
Просмотров 1,8 млн