It's 4am and I'm watching genetic algorithms......
@monkeywrench6777 жыл бұрын
me too.
@soundx80157 жыл бұрын
Aaron Hinojosa 2.27 right now
@blub54947 жыл бұрын
They are actually quite interesting
@aspirine9997 жыл бұрын
Next step: minimize time to finish. If you use both time and distance and fitness, I wonder what combination of them would make a greater car evolve faster
@arthurgamespixelbr12776 жыл бұрын
Me is a 8 of am
@Trotom77 жыл бұрын
>Adds boxes so the cars can't flip. >Best AI proceeds to get rid of the boxes.
@sm4llbit7 жыл бұрын
The essence of evolution :)
@crazycoyote76587 жыл бұрын
It's like a pro version of Hill Climb Racing
@AC0KG7 жыл бұрын
It would be interesting to co-evolve the track using a fitness function that selects for tracks that are better at challenging cars. The fitness function for the track could reward tracks that create more complex 'interesting' car movements (flips, backtracks, variations in speed, etc).
@sm4llbit7 жыл бұрын
Yes, I thought would be very interesting to generate levels for a game using evolution as oppose to hand crafted designs. It would be very tricky to setup though, but very interesting idea.
@Kevinofrepublic7 жыл бұрын
The terrain needs to remain constant. The AI is learning yes but it is only learning for a specific track. Theres an example of why the track cant change and its from a MarIO video by SethBling. Idk how to spell his name but anyways he makes an AI that can beat a mario level but the AI despite learning enough to beat the first level cannot and will never beat the second level because the AI didnt learn it specifically.
@Kevinofrepublic7 жыл бұрын
I mean I assume. I have yet to see an AI that can adapt to new tracks, levels, terrains after successfully completing one.
@sm4llbit7 жыл бұрын
I think he meant, that the car is constant and the track structure is a genotype that evolves.
@AC0KG7 жыл бұрын
I'd like to see them co-evolving, responding to each other in a coevolutionary configuration. Cooperative coevolution might tend to lead to boring tracks unless the fitness functions were carefully tuned to select for 'interesting' behaviors. The track does not need to remain constant, in general. Most of the examples I've seen of evolving vehicles use randomly generated tracks. A specific implementation might be limited to exactly one terrain, but that is a feature of that specific implementation. My own dabbling in this is on the evolution of computer programs that navigate a maze (a very simple simulated stack machine CPU with port-based IO connected to sensors and actuators on a simulated vehicle in the maze, running assembly language programs that evolve). It does not co-evolve the maze, it just randomly generates them, new for every member of the population. That's an interesting idea though, now that I'm thinking about it. I wonder if I can come up with a way to generate the mazes using an evolvable script. I'll have to think about ways to encode a maze-generating routine in a way that can be evolved. wiki.ece.cmu.edu/ddl/index.php/Coevolutionary_algorithms
@vinzgilligan60857 жыл бұрын
Human music - I like it
@jdpg76147 жыл бұрын
Vinz Gilligan Only those with 900+ IQ will get this joke.
@140319935 жыл бұрын
JD PG I only have 899 IQ, what did he mean?
@dogeramsey91545 жыл бұрын
*Minimum simulation power
@theternal5 жыл бұрын
@@14031993 he mean that morty was just a simulation
@EngiNetion4 жыл бұрын
lmao
@superchet68977 жыл бұрын
That. Was. Intense. The music kept me watching like it was some kind of NASA milestone :P
@TheZiGSuN7 жыл бұрын
Очень ждал, что генетический алгоритм в конце концов сгенерирует жигули.
@OrxanMustafayev-d7q5 жыл бұрын
Ахах, убил
@SwegiBärlauch7 жыл бұрын
And thats how they created the bots in Hill Climb Racing :D
@dotdotdot11136 жыл бұрын
I like watching these because they demonstrate evolution pretty well
@willperplexed91997 жыл бұрын
one wheel is the best 😌
@truthsmiles7 жыл бұрын
Right. I was surprised that didn't appear.
@willperplexed91997 жыл бұрын
Maybe he set a minimum parts limitation.
@ardiawanbagusharisa70407 жыл бұрын
Of course, there will be some constraints
@truthsmiles7 жыл бұрын
Or maybe just that a wooden block is required.
@RRTVTAMIL6 жыл бұрын
李锦州 so
@Dylann82457 жыл бұрын
The music helps me appreciate it even more. Awesome.
@jkoolish7 жыл бұрын
Very cool! I wonder if you could add to the car algorithm a "passenger" object, and trigger a game over when the passenger "dies." How would the successful evolution look different, if it had to also take into account the "safety" of the "passenger"?
@hybby7 жыл бұрын
What would constitute a passenger death? A flip? Because none of the cars completed this track without at least 1 flip.
@botondbenyovszky66217 жыл бұрын
add a given size square component, and if that ever touches the ground, it's practically dead.
@botondbenyovszky66217 жыл бұрын
@Jack Kalish: You could also add "energy" usage (a component left out from these simulations too often), and also weight as "fitness", since if it can carry more, more effectively, then it's a good machine.
@abaundwal6 жыл бұрын
Basically you want to have an AI that plays the hill climb racing game.
@YashMRSawant4 жыл бұрын
One thing to note getting a convergence is very tricky.
@damienkillani61217 жыл бұрын
This guy and Carykh would have interesting conversations.
@cooldued117 жыл бұрын
to be honestly it seems randomly generated, it makes its changes so drastically. it had a mostly working formula in 10 then went back about 8 generations and re-cycled through without realizing the wheels being close to the ends makes it more stable
@sm4llbit7 жыл бұрын
cooldued11 well the initial population is indeed randomly (within bounds) generated.
@snehaedke35044 жыл бұрын
Thank u, this video cleared my confusions regarding genetic algorithm
@winnie33347 жыл бұрын
Hey there! Amazing video. I was wondering about a few things: Would it be possible to make the terrain randomly generated? Using some sort of noise, the terrain could be different for each genome. That way the cars will be able to drive in different circumstances. Also, is it theoretically possible to base the fitness on distance traveled in a certain time? Instead of only stopping when the car gets stuck, wait 20 seconds for each car and then go on to the next one. Would this work? Would they "learn" that speed is important as well? Thanks a lot for your time and this video :)
@sm4llbit7 жыл бұрын
winnie33 Hi. about this randomizing of the terrain, I dont really think this would work. The entire experiment is set to evolve the car to do this particular test (track). Any generation might be proven useless on newly randomly generated track because it was evolving to beat previous one. However due to nature of this experiment latest generations shouldnt have a problem to beat any randomized withing some limits track, but this is not what Genetic Algorithms are for. As for the second question It could work but than again from theoretical stand point the experiment is to evolve the car to beat the track. The track has variety of different obstacles, a successful car should be able to beat. Capping test run to 20 second would result in the cars never get to some parts of the track, hence it would (probably) never evolved to beat the track and be able to pass any obstacle from it.
@winnie33347 жыл бұрын
Thanks a lot for the quick and in-detail answer! About the random terrain, why aren't genetic algorithms fit for the job? Are there any other neural networks (if that's how it's called) that could do this? Anyway, your videos are really nice and informative. I wish you all the best with your channel and look forward to seeing more of these videos :)
@sm4llbit7 жыл бұрын
winnie33 Hi. first to be clear I am not any kind of expert of this matter just a hobbyist so I suggest you read some scientific literature about this topics. With that said, I dont use neural networks here my phenotype just performs a single action driving and fitness evaluates how it did. I am affraid if you want a arbitrary phenotype perform well in any random environment you better call SkyNet. But seriously a neutal net is what you need (I even did one experiment with it and uploaded video). But than agaim neural net is to solve a more complex problem with multiple inputs and outputs (i.e. driving car learns to complete the track). Again any neural net applicatios are very vulnerable to changing environment. There was one example in which net learned to pass level after 2x generation but next level had different kinds of obstacles so the nnet was useless and it needed to learn from start. Finally it all depends what exactly do you mean by random track. In this example as i sad phenotype is simple. Assuming your would have a more complex one with controlles speed breaking and balancing maybe. Than any new random piece of track you generate might constitute new type of obstacle your net is not ready for (but it all depends on how you define it). Than it will need some generations to learn it but it would forget the once you already had because its not testing against them anymore. Again this is just guessing, but I've seen few dozens of nnet examples and in none of them the problem to solve is changing during the experiment.
@sm4llbit7 жыл бұрын
?
@hamburgerfatso7 жыл бұрын
How about using something like distance squared or cubed divided by time for the fitness, so that it takes into account now fast it travels, but also favourably weights further distances with larger scores?
@DayaCIDfan4 жыл бұрын
woww this is great but it just shows how a machine can only ever be a tool -- what a human can solve with intution and design mindset will take a machine a ton of computing to arrive at by force. But that may not really be a problem with the evolution of computing resources. I don't know, I'm just a chemical engineer but this is real cool! :)
@bublebee76357 жыл бұрын
the music in this video is extremely calming haha
@sgt3913 жыл бұрын
A nice proof of Occam's Razor
@Prutswerk7 жыл бұрын
Sometimes I really feel the urge to help those little cars. "You go, little fellow, theeeeere you go!"
@thekittycats80617 жыл бұрын
This is amazing especially after seeing a carykh video where it too hundreds of generations to make "walking" creatures that kind of shuffled along the ground
@ssjakuma6 жыл бұрын
Why do I find this so adorable?
@Kenbomp5 жыл бұрын
This will probably bring back smalltalk and visual based languages back into the limelight. They should try that same model on different tracks see the results
@DannySullivanMusic7 жыл бұрын
Reminds me of that toy car I had when I was a kid that you could drive into walls and it flip upside down and keep driving.
@Krebzonide7 жыл бұрын
You should make it so that after like 50 generations you press a button to make it give a higher score to heavier cars or something like that just to see how they react. I'm sure after a while it would just make a really big car that flops one inch and gets a really high score but it would be fun to test.
@alphabetagamma41425 жыл бұрын
Great work!! Such kind of work is what pushes science forward... Kudos to you guys!!!
@acebeariously98567 жыл бұрын
its so relaxing to watch machines slowly becoming more and more intelligent than the human race
@fabhi5 жыл бұрын
So, you basically get a BatBike at the pinnacle of evolution!? DC got surprises!
@stimpytehrandomguy70416 жыл бұрын
Like the way generation 21 has a "stabilizer tail/front" Like it uses it to defect most of the flips by my calculations. Anyway great video.
@Firejaps7 жыл бұрын
Amazing ! Never saw this type of algorithms, iam very curious about this area now !
@rakdos917 жыл бұрын
you're in for a ride, there's quite some videos about this on youtube. try looking for genetic walking algorithms
@The76Malibu7 жыл бұрын
A youtuber named carykh makes some 'evolution simulator' videos you might like. A really cool type of simulation.
@toasterusedfly6 жыл бұрын
turn this into a game where you can build a kart, place wheels and make it heavier. there should be a guy on the car and if he falls off, it should be game over. polish up the textures, remove the statistics menu, and get it reviewed so it can be published to the app store or the google play store
@science.3 жыл бұрын
Where did the information about the shape of the wheel, the nature of going forward, and the frame of the wheel come from?
@JacobDavidCCunningham7 жыл бұрын
crazy to think what can be accomplished with brute force, but insight is nice to have
@biletv95656 жыл бұрын
and now - experiment 2, turn on eurobeat and look what will happen.
@InfallibleCode7 жыл бұрын
This is awesome! I've been wanting to get into genetic algorithms and machine learning code.
@aryamaansingh18947 жыл бұрын
Imagine tesla using the same code for self driving cars xD
@netcrns7 жыл бұрын
so the car changes appearance every time it gets stuck?
@Metallijosh1007 жыл бұрын
"After 300,000 crashes resulting in over a million deaths, our cars have finally learned how to drive on roads with an accident rate of less than 10%" *Audience cheers*
@cezarystasiak94986 жыл бұрын
Do you think they don't ? Self taught artificial neural networks are everywhere
@Flatron3037 жыл бұрын
What language you use for developing AI algorithms/models?
@sm4llbit7 жыл бұрын
Flatron303 it's c# in unity
@theukuleleist7 жыл бұрын
i used to have an app on android that did a similar thing can't remember the name but it helped me sleep
@jabborif5 жыл бұрын
Now I feel the urge to play Elastomania
@Layk357 жыл бұрын
This was cool. Did your algorithm eventually learn not to use non-drive wheels?
@aidenthompson76146 жыл бұрын
And that son, is how cars are made.
@rahulsolankib4 жыл бұрын
Wow yaar maza aa g aya
@ewliang7 жыл бұрын
Nice job!
@eliyazawa69217 жыл бұрын
The final design is the first design a toddler would create.
@Kabbinj7 жыл бұрын
Did you use an existing framework, or did you build your own genetic algorithm? Also, is the car built and controlled by a NN, or is it directly based on the genetics?
@sm4llbit7 жыл бұрын
Didn't use any frameworks, wrote the code myself. There is no neural network in this example.
@thankyouthankyou11724 жыл бұрын
well, love the music:)
@asdfasdfasdf3832 жыл бұрын
Very cool. Is the code Open Source available somewhere?
@secret4865 жыл бұрын
Did the program generate a unicycle with a center of mass inside the wheel?
@zarkork-12177 жыл бұрын
In the entire video I was like: "he's begining to believe"
@B3Band7 жыл бұрын
That AI be like, "Are you SURE one wheel in back and one in the middle won't work?"
@JonesCrimson7 жыл бұрын
I noticed you programmed a sort of "shocks and suspension" system, was that capable of changing as well?
@sm4llbit7 жыл бұрын
Jones Crimson that's correct
@maebbcow4 жыл бұрын
So satisfying
@ЕвгенийПоддубный-ю8о5 жыл бұрын
В итоге из сложной машинки должно остаться одно колесо, так как ему легче катиться без лишних деталей. То есть отбор ведёт к упрощению. Так же и бенгальскиз тигрон естественный отбор по своему определению должен упрощать и превращать в одноклеточных простейших самых идеальных по выживанию и размножению
@Alkanen7 жыл бұрын
This was quite interesting and entertaining. Do you share any of the code anywhere so others can build upon it?
@flyblu804 жыл бұрын
I study and apply this algorithms 10 years ago at university.
@Salara21307 жыл бұрын
Hey, im really intrigued by machine learing/AI. I think I already get the concept of machine learing, but dont understand the niddy griddy part of how you actually implement it. could you advise me some good starting point for getting into it? As a CS student i will have the posibility to get into it later down the line, but i really want to start doing some small projects in the near future.
@sm4llbit7 жыл бұрын
The coding train channel covers quite a lot of this, its very well explained too. Good starting point.
@The76Malibu7 жыл бұрын
KZbinr carykh has done some 'evolution simulator' videos and his code is open source. It's great fun messing with variables and seeing the effects.
@Jonaasti7 жыл бұрын
Can you Give it data for the distance traveled in the last 5 and 10 seconds(more is better). As well as give it the ability to change its speed at any time. Also, penalize it for flipping the car at any point. Then also give it cargo that it has to carry on the wood/body of the car. Once it is able to do all of that vary well, increase the weight and or size of the cargo. Though, can the AI even 'see' the track? Is it just "going forward" without the ability to sense the environment?
@gagadaddy87136 жыл бұрын
Would you please share what is the outputs in this algorithm?
@IsaGoodFriend7 жыл бұрын
I've always wanted to make one of these neural network/genetic algorithm programs, but I'm still unsure of how to get the actual code written. Are there any video tutorials that can help get me started?
@abhirajtrivedi16187 жыл бұрын
WillTheGameDesigner try deeplearning.tv
@carlclever75387 жыл бұрын
Tomek S Hi! I've been trying to learn how to do similar experiments for a while, but I've been failing to find the right tools to work with if you could give me any tips or guidance I'd be grateful.
@RaunySilva5 жыл бұрын
00:47 Probably a proto version of a future muscle car
@alpdrone4 жыл бұрын
Hi, would it bother you if I might use some 10 sec samples for a simple lecture of what could be achieved with AI ?
@sm4llbit4 жыл бұрын
Not at all, go ahead ♥️
@sm4llbit4 жыл бұрын
Feel free to use any of my ml videos
@AbhimanyuAryan7 жыл бұрын
where's the soure code? what library you used?
@DemetriosMPapadakes4 жыл бұрын
The biggest question is: would all AIs create similar or the same cars, or same final car, for this exact same track, or would there be variance and what would such valence depend on?
@好吧-h6k2 жыл бұрын
the outer shell
@TheEggroll43217 жыл бұрын
*leave it running while you get lunch* *comes back and computer steals your car*
@marcoiscoolies6 жыл бұрын
just wondering if you're still replying cause I'm interesting by this and might do a similar final project for university, how did you handle the car creation with your genetic algorithm in unity?
@phuturephunk7 жыл бұрын
I can't be the only one that got excited at 3:23 .
@cffex3858 Жыл бұрын
Hello, I am a beginner in genetic algorithm and recently created one of my first genetic algorithm. Sadly I encountered some problems: Each generations, the agents are supposed to get better and better, also to have a chance to get dumber because of the mutation function, to battle this, I implemented etilism (I believe that's the correct term) which selects the best agent from the previous generation and transfer it into the next generation so as to prevent from the algorithm getting 'dumber' agents than the previous agents. However, the fitness function increases a bit at the start and slowly decrease? For the output of the agents I implemented threshold, if the output is greater than the threshold, the boolean output will mark that as 'true' otherwise 'false'. For the mutation function I also mutated the threshold to be a random number between 0 - 1,
@sm4llbit Жыл бұрын
It's really hard to say whats the issue in your case, but decreasing fitness sounds like something is off. Usually one spends a lot of time tuning hyperparameters for the model to work. Try different inputs scaling. fitness calculation, mutation algo etc.
@aniketroy037 жыл бұрын
Computer Science and Biology :)
@willian56747 жыл бұрын
That is fucking awesome.
@deliciousnoodles55054 жыл бұрын
Up next, genetic algorithms - evolution of Happy Wheels
@drrrrockzo6 жыл бұрын
Hell Gen 37 drives better than at least half of the people on the street
@GalHorowitz7 жыл бұрын
Hi, I have a question. What did you use to make the fitness graph?
@sm4llbit7 жыл бұрын
Unity UI
@sajusathish16223 жыл бұрын
Do you have the unity files in public domain to explore..?
@JohnJohnson-qu2os4 жыл бұрын
There is no Creator who created this car, as it is improving and evolutionized itself.
@waku126 жыл бұрын
Very cool, is there a way to look at unity project ?
@l1046937 жыл бұрын
Could this be seen as a proof that for this specific example there are no viable cars that are not able to be turned over?
@liewon40064 жыл бұрын
I was really rooting for the car
@ZachariahZacXAbraham6 жыл бұрын
Did you constrain the number of wheels to two?
@josepha86574 жыл бұрын
What are the inputs of such an algorithm?
@bajingojangle62247 жыл бұрын
That last one looked like a set of glasses.
@killermouse0 Жыл бұрын
I'd be very curious to know how the phenotype is encoded into a genotype in this example... Does anyone know?
@jowenjv44635 жыл бұрын
What does ''generation'', ''fitness'', ''mutation rate'' and ''population'' means ? How many time it take to go from one generation to another in general ? I find all those ''genetic algorithms'' scary, but still interesting Thanks.
@marcosdanieltorres72537 жыл бұрын
Sounds like my alarm went off
@МихайлоСєльський5 жыл бұрын
Geniomes start different, end similar. Convergent evolution.
@SiaarZH7 жыл бұрын
Hey Tomek S. This is great stuff, I have just started learning about AI myself as a hobby. You got any tips on how I could fast track my progress? Maybe a good online resource of knowledge is out there that I haven't stumbled upon yet...
@CAMOBAP7955 жыл бұрын
@Tomek S Is it possible to find your code somewhere in public?
@fallout_chaos6 жыл бұрын
Was anyone else thinking about how the music sounded like Stranger Things?
@trynalive245 жыл бұрын
No i didnt
@shawnadler63307 жыл бұрын
Like the last ones wheelie bar
@TheWildSlayer7 жыл бұрын
Aww fuck the music sounds like my alarm this shit gives me ptsd
@Endomorphism7 жыл бұрын
beautiful!!!!
@EdViaja6 жыл бұрын
I'm a deep learning researcher, but I would like to learn Genetic Algorithm, do you know a framework that can support GPUs because I have some GPUs and I know GA is a slow (depending on the problem). Thank you in advanced and good video :)
@sm4llbit6 жыл бұрын
Edgar Medina I didn't use any framework. The code for GA it's really very basic in this example roughly few hundreds lines of code. Check coding train vids, he explains how it's done.
@PhillipAdolMacGregor6 жыл бұрын
Maybe the track should slowly change through time too
@NixDeam6 жыл бұрын
Can you upload the source to this program? I’m interested in how this works (Ive never made one and want to see how one works before i go in blind creating one)
@gen1577 жыл бұрын
Self-learning Incredibots. That's what I got from this. heh
@timorii5 жыл бұрын
Simple is the hardest!
@videomaker51677 жыл бұрын
How did you do this?? I wanted to make a genetic algorithm using unity, but never found it
@sm4llbit7 жыл бұрын
video maker never found what?
@vasugupta98247 жыл бұрын
Truly Awesome. Can you please tell me how to integrate AI into Unity and what is your GPU configuration?? Your help will be appreciated because I also want to work on a similar project.
@ellewearsch83295 жыл бұрын
how did you make this? could you make a video about that?