I went from "Only a fool thinks he can balance a double pendulum" to "Praise the lord, he walked on water!"
@extremechimpout8 ай бұрын
irl it's impossible so you were right
@MrHardzio4Fun8 ай бұрын
@@extremechimpoutSo your claim is that all YT videos with robots doing that are fake? Even with triple ones. In real life it does not wobble as much, everything has friction. It's actually easier irl.
@extremechimpout8 ай бұрын
@@MrHardzio4Fun I looked there are no such videos
@mapron18 ай бұрын
@@extremechimpout I looked there are many of those video, even quadruple.
@MrHardzio4Fun8 ай бұрын
@@extremechimpoutLook harder.
@HolySerega8 ай бұрын
Imagine training for 46 years and the god says, "naaaah, you wiggle too much"
@maxim_ml8 ай бұрын
i know RIGHT
@Nzargnalphabet8 ай бұрын
I feel like the evolution of quick oscillations was frankly quite cool and made sense with such a chaotic system
@AA-cg1wm8 ай бұрын
"but, but i did the task sir!" *nope echoes in distance*
@Itsameloki7 ай бұрын
😂😂😂😂😂😂
@Warzak775 ай бұрын
*send an asteroid*
@msx808 ай бұрын
The idea of starting with lower gravity and higher friction is simply genius
@ryan417488 ай бұрын
Yeah he immediately solved a problem that even that professional research paper struggled with, and it intuitively makes perfect sense how the learning can transfer over from the simpler problem to the more complex problem. Goes to show that sometimes all you need is to just reframe the problem.
@CliffHanger-fg6uy7 ай бұрын
@@ryan41748If you google it, you’ll find that it was a project report from an undergraduate machine learning course… It’s still a cool approach, though.
@reyariass7 ай бұрын
For real, when I saw the research paper I thought Pezzz was going to show something else because the “professionals” said it was not possible. It’s amazing how it just took a small change to make it work. Great work pezzz
@joaosousapinto36147 ай бұрын
It’s common in the field of reinforcement learning. It’s called curriculum learning.
@Kabirr6 ай бұрын
@@joaosousapinto3614 transfer learning?
@Geosquare81288 ай бұрын
the agent UI/visualization, the training graph hyper parameter view, the movitated loss function explanations.. all so well done wow
@PezzzasWork8 ай бұрын
Thank you!
@gus26037 ай бұрын
@@PezzzasWorkcan you make a video doing those?
@yalnisinfo7 ай бұрын
@@gus2603absolutely support this 🎉, i want to avoid looking at numbers as much as possible.
@soumyodiptanath29177 ай бұрын
Is it made using Python?
@PezzzasWork7 ай бұрын
Everything is made using C++
@CriticalMonkey6238 ай бұрын
My toxic trait is believing that I would be extremely good at balancing a double pendulum with zero practice.
@PezzzasWork8 ай бұрын
That would be very impressive :D
@CriticalMonkey6238 ай бұрын
@@PezzzasWork Your videos are always so clean and well put together. I've finished the video now and the final solution you came up with is great. The idea to incrementally ramp up the difficulty was a stroke of genius that felt so obvious after you said it. Great work showing that paper what's possible!
@smileyp45358 ай бұрын
@@CriticalMonkey623 yeah maybe if you could somehow do that irl you'd actually be able to do a double pendulum balance
@anonanon65968 ай бұрын
If single pendulum is like balancing a broomstick on your finger, then double is like balancing a broom stick on top of another broomstick, on top of your finger. Suddenly it does not seem so easy.
@adora_was_taken7 ай бұрын
@@anonanon6596 nah i could do it
@jonathanhelgesen88008 ай бұрын
The idea of gradually increasing gravity and reducing friction is just genius! Would be interesting to see if this method also would work for a triple pendulum 🤔
@andrewferguson69018 ай бұрын
boyo do i have some news for you "World's first video of 56 transition controls for a triple inverted pendulum : 3-body problem"
@ThePyrosirys8 ай бұрын
@@andrewferguson6901 That video is not using an AI controller, it's a controller calculated from methods found in control theory.
@Pockeywn8 ай бұрын
@@andrewferguson6901lmao i found the video and apparently i already started it at some point
@Gwarks3377 ай бұрын
Seems like engineers doing that for years kzbin.info/www/bejne/maqxXnaIg9eVaac this one some years
@Conceptofcandid40435 ай бұрын
Nah lets skip straight to 50 pivot points
@o-..-8 ай бұрын
I didnt even think that it would be possible, wow, also nice editing and everything is just put in a way that makes the video really enjoyable 🎉
@PezzzasWork8 ай бұрын
Thank you very much!
@mage36908 ай бұрын
All AI are essentially just function emulators.
@CliffHanger-fg6uy7 ай бұрын
@@PezzzasWorkDefinitely a cool video. If you end up doing a follow-up, here are a couple of things I would like to see (as a control theorist): - test with random disturbances that also take place during the swing-up control. You could also think of this as adding a little noise to the inputs of the NN. I think you would have to include this in the training as the swing-up didn’t look like it would tolerate any sort of disturbance. - It would be nice if you gave the audience the ratio between maximum acceleration and gravity used. - I definitely agree that it makes more sense to use acceleration as the control input.
@CliffHanger-fg6uy7 ай бұрын
@@PezzzasWorkalso, I think that “article” you mention on NN-based control of a double pendulum is just a project report from an undergraduate ML course. Finally, if you’re unable to make your NN solution robust to disturbances or noise during the swing-up, you could use the ML approach for the “feed-forward” control, basically as a planned trajectory and add conventional control theory on top to stabilize the trajectory w.r.t. noise/disturbances.
@amzogm87498 ай бұрын
The next step is teaching an AI to balance a million pendulums. Keep up the great work, it's both educational and entertaining!
@saferugdev89758 ай бұрын
we just need a million dyson spheres so the model training doesnt take 100 years
@wanfuse8 ай бұрын
nah dont need a million just the magic number 7
@strecher7778 ай бұрын
Do you mean balancing a rope? 😂
@wanfuse8 ай бұрын
@@strecher777 no but I will share it when the time is best!
@caballeronocturno1248 ай бұрын
We need to balance the n-pendulum
@xwxwvyz18 ай бұрын
it was both surprising and entertaining to see the AI doing the blender move whenever the pendulum drops like a kid throwing tantrums
@daniel.watching8 ай бұрын
It's less "doing a move" and more potential energy being converted into kinetic. If the pendulum falls from its highest position it will be moving fast without a correction. Since it is more stable lower down, it will tend to spend more time rapidly spinning below the axis that slowly spinning above it, unless intervened. And finally, the AI, like any control system has a maximum frequency/speed it can manage, above which it breaks down and essentially become random input. So while the AI might be able to take the slow pendulum and balance it up high, if it then falls, it might not have the skill needed to recover. So every failure mode leads to a rapidly spinning "blender".
@xwxwvyz18 ай бұрын
@@daniel.watching i know how the doube pendulum works and i also know the situation is either what you said or the AI gaining reward through some loophole in the reward system since its technically over the parameters once every loop (thought this because blenders became less of a problem with each added condition) But i just wanted to make a visual comparison between malfunctions of AI and toddler brains where they start giving seemingly nonsensical inputs to solve their impossible problems (which is your statement anyways)
@daniel.watching8 ай бұрын
@@xwxwvyz1 Yeah sorry I didn't mean to imply you didn't understand it. I think I was just looking for an excuse to explain why the blender thing happens.
@banaankiamanesh5 ай бұрын
I'm a control engineer myself and I absolutely enjoyed your way of solving the problem. Well done man :)
@lake50448 ай бұрын
I don't think you know this but in the real world, if you attach a double pendulum to a vibration source with the right frequency, like a motor oscillating back and forth, the double pendulum balances without any adaptive balancing mechanism. (That's why I think the high jitter solutions of the AI are actually valid in this scenario.)
@kuhljager24295 ай бұрын
Interesting. The things you learn
@makebreakrepeat8 ай бұрын
Your videos are always a delightful blend of programming, puzzles, science and philosophy. Thank you for making YT a better place
@PezzzasWork8 ай бұрын
Thank you very much!
@isaacbutler42628 ай бұрын
Very nice!, I really enjoyed the first video, it helped me create my own NN. Keep up the good work
@PezzzasWork8 ай бұрын
Thank you!
@gm49848 ай бұрын
Love this approach of setting up an easier environment, for the ai to learn from and slowly increasing the difficulty. I would also love to see how you are going to explore this aspect in the future :D
@EchoPrograms8 ай бұрын
Just finished my first implementation of a standard nn with back propagation. I'm 16, so it took a bit, but I'm proud of it. Right now i have it fitting a given function, but it is pretty versatile.
@vibaj168 ай бұрын
It's amazing how you go above and beyond. After that first working solution, I would've been really proud of myself and be done with it, but you just make it better and better.
@alxklgn3648 ай бұрын
The editing and the feedback UI are brilliant. Cheers, Pez.
@kevintrigg37078 ай бұрын
the progressive difficulty was an amazing training tool! very well put together video
@pcgamerforthewin8 ай бұрын
Beautifully mesmerizing! Thank you for this amazing piece of art. Every aspect of this video is so well done. Kept me engrossed until the very end. It was very satisfying to see how you solved each problem with seemingly simple solutions. The progressive training scratched the itch I've always had every time I'd see a machine learning project. The UI was also fantastic, amazing work! One question if you don't mind. What was the song at 3:51? Thank you!
@PezzzasWork8 ай бұрын
Thank you very much for your support! The music used is Empyrean by Dear Gravity :)
@pcgamerforthewin8 ай бұрын
@@PezzzasWork Thank you!
@lyuboslavilov7 ай бұрын
Starting from easy conditions and gradually making them complex is simply a stroke of genius! I bet this will be a thing in the near future. You should write a paper
@richardcoppin53328 ай бұрын
👌🏼 Magnificent. It was really great idea to use air friction as the simplifying factor. I world love to see the cost of work in the evaluation function.
@janmuntsiglesias5778 ай бұрын
keep up making this content!
@PezzzasWork8 ай бұрын
I will try :)
@davidamatolondriz85127 ай бұрын
Congrats on the video man! Literally the best 20min in KZbin since many time ago!
@naijii8 ай бұрын
The UI is incredible and everything is very well presented!
@kellymoses85668 ай бұрын
starting easy and gradually increasing the difficulty is a very clever idea.
@leggyjorington39608 ай бұрын
The UI and graphs for this video look amazing! Keep up the good work!
@TeamDman7 ай бұрын
I'm in love with the interface you designed!
@raghavrokr5 ай бұрын
It is absolutely genius to play with the physics to find a solution. Also, amazing visualizations! Such a treat to watch this video.
@eelcohoogendoorn80448 ай бұрын
Really nice! I liked the velocity-commanded version better than the acceleration commanded one. In many practical cases that is also found to matter; 'in theory' equivalent neural networks should exist but controlling acceleration does bias towards smooth accelerations indeed. In practice a motor controller often has an internal PID control loop; so commanding a velocity (and having that quickly realized, up to physical constraints on acceleration; something like min(max_motor_accel, velocity_error/dt)) isnt necessarily an unnatural choice. It still allows for spiky torques to be learned where they are required in a natural manner.
@stoobidthing8 ай бұрын
Amazing video as always, I love the visuals on this one! Greetings from Paraguay 🇵🇾
@AA-cg1wm8 ай бұрын
I'm currently making my own neural network and your videos really helped me understand the concepts and mechanisms of this project
@AE_Sub8 ай бұрын
This is the kind of top tier content youtube was made for!
@lanha33858 ай бұрын
You made it absolutely wonderous and intrigued interest to the notion of chaos. Well done
@mzg1478 ай бұрын
love the visuals, the clean colored borders... perfect!
@ivocanevo7 ай бұрын
Great video. I love watching the refinements. Human and AI learning together.
@ivovelo4 ай бұрын
This was fantastic, thank you! One more thing that would be amazing to teach your network: to bring a double-pendulum from any state into a balanced state. I'd love to see that.
@brambleumink69286 ай бұрын
This was a really awesome video, I enjoyed watching it very much. Thank you for creating this, the visuals were really nice to watch and the explanations were easy to follow. The idea of starting with low gravity and high friction was amazing, great job!!!!
@ghomeyshi78 ай бұрын
give this man a Nobel prize! respect!
@DjDoGGoD8 ай бұрын
Really amazing implementation! The first moment I saw the jerk movements I immediately blamed floats. I was very satisfied when you confirmed it, and decided to switch to doubles, as I was screaming at my monitor. :D
@rewolfer7 ай бұрын
The idea to increase difficulty was so good. Loved watching it go through periods of great success and fast difficulty increasing.
@kaylor877 ай бұрын
I've been obsessed with double pendulums for a long time now, I absolutely loved this video. I honestly started the video thinking it would be impossible to balance.
@Paplu-i5t7 ай бұрын
Genius. A perfect use case to illustrate what is the special ability of a neural network.
@raiden6315 ай бұрын
Real nice video! Loved it :) Love the aesthetics for explaining. This makes it very easy to follow, with nice colors and distinct UI elements. Keep it up !
@99totof997 ай бұрын
Wonderful, you have mastered the art of getting what you want from a neural network!
@SiddhantSharma1817 ай бұрын
I like your idea of starting with a simpler problem and gradually increasing the difficulty
@liamseanalbarel-hepburn64368 ай бұрын
I haven't worked with neural networks before, but you definitely inspired me to start looking into it and giving it a shot. Well done with your solution, and good work for not giving up!
@chrizzzly_hh8 ай бұрын
Really great video and visualisation. Please add some tests next for pendulum setups that are already in motion to see if it can also stabilize these and not only from resting position. This will be fun!
@K0rck8 ай бұрын
Amazing work. It was _really_ engenius the way you break up the problem for the evolution algorithm! And the interface you put together to demonstrate the work just adds the cherry on top of it. Keep up the great work, I'm looking forward for the next one!
@wanfuse8 ай бұрын
fantastic! this has so many uses! hope you publish code soon! I have a few ideas what to use it for! I worked for a brief time on this exact problem!
@ChristofFritz8 ай бұрын
Ok, that's hella impressive. I fondly remember visiting "Hannover Messe" with my parents. A convention with a lot of technical stuff. There was a booth where they had a pendulum with a flywheel on the end that automatically uprighted itself and balanced after that. It's stuff like that and what you do here that inspires young people to make stuff like that. Thank you! (And now build a machine IRL that replicates the double pendulum simulation and is controlled by the neural net you trained in the simulation :D)
@XiaoMingXing5 ай бұрын
Anyone else feel like the little animation at 3:15 would make an incredible screensaver?
@amzogm87498 ай бұрын
This video is simply fascinating! Seeing how an AI can learn to balance a double pendulum is truly impressive. The explanations are clear, and the visuals are very well done, making the subject both understandable and captivating. I especially enjoyed the demonstration with different weights, and it made me want to try creating my own AI to tackle this challenge. Keep producing such inspiring and educational content, it's a real pleasure to watch!
@M_10248 ай бұрын
Increasing the difficulty is a cery good approach, if I ever make a neural network I will probably try it.
@phoenixxofficial8 ай бұрын
Your work never ceases to amaze me
@VivienLEGER8 ай бұрын
as AI most generaly does not impress me, your work and dedication does. also i love the attention to details like graphics, that s truly amazing!
@triplezgames38828 ай бұрын
It's so interesting how friction and low gravity helped the AI learn. It's like humans practicing something complex in simpler variant, because trying to do something like balancing a double pendulum would completely overwhelm us too having no idea about how you would even start counteracting the imbalances
@sebastiangudino93776 ай бұрын
Yup! AI shows us mathematically something very true about learning. You should always try hard problems (An always positive score function leads to no improvement and over-fitting), but if the problem is too hard, you won't learn anything (An always off score function will also lead to now improvements) This is the principle behind human learning techniques like language immersion. Once you understand about 50% of a language the best way to learn is to just jump in, that's the point where your score function leads to the fastest learning
@triplezgames38826 ай бұрын
@@sebastiangudino9377 Damn, really well said.
@olliecook19828 ай бұрын
Awesome video! Really shows the complexity in tasks like this, and brings into light the massive challenge of doing this in real life with double and tripple pendulums. I wonder how they managed to get such good control! I also find it very interesting how it hits a wall every once in a while than makes 1 small change and just doubles it performance. Thats really interesting!
@srijanraghavula7 ай бұрын
Loved the video, the visualizations, the breakdown and the thought of using not python for everything is whats impressive, immediate sub, hope ill learn how to do this stuff
@poketopa12347 ай бұрын
Seriously such a great video. I love the curriculum learning approach!
@bmdsch13208 ай бұрын
This is amazing! I have been waiting for this second part and its finally here! Its amazing that you can produce a video with such a good quality and informative in such short time!
@purrzival8 ай бұрын
This video is so beautiful, great work!
@martinfisker74388 ай бұрын
That pendulum rainbow animation is straight art
@BrunexGamerYT8 ай бұрын
One of the best videos I've ever watched about artificial intelligence, please make more videos like this, this was incredible!
@Pockeywn8 ай бұрын
its interesting that in the final result you can so clearly see oscillation at two different frequencies in the output velocity thats cool
@BendoubaAbdessalem8 ай бұрын
you should've add to the score function how are the three points are aligned to avoid exploids such ase the last solution you showed us, also i think that we would like to see the result of the training method of controling the acceleration using the last score function when you was still giving the ai control over speed of the cart not the acceleration, and in the end it was a good video, and it was pretty informative and entertaining in the same time!
@mathewgriffiths18708 ай бұрын
This is incredible, such amazing work
@renakunisaki5 ай бұрын
The last one didn't even seem like an exploit. It wasn't smooth or perfectly straight, but it kept the pendulum upright enough by compensating for its motion. Also you made a groovy screen saver!
@sbstndbs8 ай бұрын
That's very great ! Even if the numerical scheme can hide some dissipation, it is the same for a near-perfect physical system.
@alexanderterry1878 ай бұрын
This is very well put together! At the start I thought there was absolutely no way you'd be able to balance a double pendulum (having learnt all about the dynamics of the system in my maths course earlier this year), but the idea to start on the simpler problem was awesome!
@shadowcraftersr8 ай бұрын
Awesome! I've been looking forward to this video since I saw the first one. Did not disappoint
@BORCHLEO8 ай бұрын
this is such an amazing visualization and intersection between so many beautiful forms of mathematics. thank you for this @Pezzza's Work
@Radu8 ай бұрын
Amazing work :-) I will send this to my students in a couple of years when I'll teach intelligent automation.
@bdcoller7 ай бұрын
Technically fascinating, and aesthetically beautiful. Thanks.
@PezzzasWork6 ай бұрын
Thank you!
@SuperElephant8 ай бұрын
Amazing content would be an extreme understatement.
@iainmackenzieUK7 ай бұрын
I laughed at the end when you said "rudimentary" algorithm :) Anyhow - Loved this journey with you. Really fascinating. Thanks for sharing (Seems like you have over-come Loki...)
@simplyD117 ай бұрын
Thanks!
@PezzzasWork7 ай бұрын
Thank you very much for your support!
@Soulergonote8 ай бұрын
Honestly I thought it would be impossible, you're a real beast !
@NaviaryMusic8 ай бұрын
Or perhaps, the next step would be to balance the double pendulum in 3D space? Each joint can rotate freely in any direction. That, or balancing a triple pendulum in 2D, I couldn't miss!! Anyway this was extremely enjoyable and a wonderful achievement! My favorite video of yours!
@sanderbos42438 ай бұрын
The exploit solution at the end is amazing
@NaviaryMusic8 ай бұрын
To give it a greater intuition for how to recover the pendulums from any chaotic state, you could start each simulation with some applied random motion, instead of hanging dead center.
@aw_dev8 ай бұрын
Watched the first video, was amazing. Watching this. Hopefully it's even better
@TheMiczu8 ай бұрын
Amazing video, gives great insight how to make AI tackle seemingly impossible task.
@maxim_ml8 ай бұрын
Oooh, you're real good I would've thought it was good enough as soon as it was able to balance at all
@Alayric8 ай бұрын
Love your ideas and visuals! 🥰
@BCannTV8 ай бұрын
Buddy graduated with a phd at 17. Subbed earned.
@Maxime2bleau7 ай бұрын
I love the interface, great video!!
@kaseftamjid58546 ай бұрын
I want you to understand how underrated you are
@geromiuiboxz7657 ай бұрын
🇨🇱 Well, everybody already praised your genius. It is so satisfying to encounter people so smart as you, who sort of neutralize the not so smart, like me 😀. Not fully understand the process, it is double satisfying, to watch you slowly approaching a solution to a seemingly impossible problem. Congratulations and THANKS you ‼️ Saludos de k🇨🇱
@MarkHivosk6 ай бұрын
Amazing you were able to figure it out! I think there is even another solution but it seems a lot less likely to stumble on
@waiitwhaat8 ай бұрын
I beg you to release an hour long visualization of that chaotic nature of the double pendulum. I can LITERALLY watch it for hours. Side note: it can also be made into a screen saver ;)
@brandoncanfield17257 ай бұрын
Beautiful visualizations!
@Syntax7537 ай бұрын
First time I stumbled across one of your videos and this is fantastic work! Loved it. Channel subscribed!
@PrasantCroissant6 ай бұрын
SUCH ELEGANT SOLUTION
@8ightfold6 ай бұрын
My dad did a single pendulum in the 90s with fuzzy logic... it's cool to see how far things have come
@sayethwe86838 ай бұрын
I'm at 15:33, and my first thought for reducing the rapid oscillation of the controller is to do the equivalent of adding a Plant term to the control loop - likely by giving the cart some inertia and/or the actuator a limited amount of power such that higher frequency inputs are demped out.
@nyhrocx8 ай бұрын
Man I love this content, I am young and want to know more about this, thank you!
@puzzLEGO7 ай бұрын
9:03 "its a little better" AI: starts swinging the pendulum around like crazy
@Cenodis3 ай бұрын
Regarding the "none of the solutions can recover after collapsing". I imagine this could be because the AI never encountered such a scenario during training. Now I have never trained my own AI but I am reminded of a video about the training of a Trackmania AI where something similar happened. The problem was that the AI got really good at solving the one specific portion of track it was trained on but failed to generalize for the entire track. The solution in that case was to always spawn the AI on a random portion of track. That way any specific solution would fail on the next run and be eliminated which helps avoid overfitting. I think the same might happen here where the AI essentially only ever encounters two states: Pendulum hanging straight down with no velocity and pendulum near equilibrium. Here too it might be possible to "force" the AI to generalize by setting the initial angles and velocities to random values. That way the AI has to learn to recover from any possible state instead of just optimizing for the "straight down" case that can't really happen naturally.
@DavidTriphon8 ай бұрын
That final solution made me laugh out loud! I love it!
@anstropleuton27 ай бұрын
i CAN spend hours watching 4000 pendulum trajectories that form moving geometry. It's just amazing!