How to train simple AIs

Поділитися
Вставка
  • Опубліковано 28 лис 2024

КОМЕНТАРІ • 270

  • @alexislouis2320
    @alexislouis2320 7 місяців тому +168

    Nice video my friend. I would stay around for the seconds parts guys, exciting things ahead ;)

    •  6 місяців тому

      fr

    • @mox189
      @mox189 6 місяців тому

      BASED

  • @GuildOfCalamity
    @GuildOfCalamity 6 місяців тому +217

    I could be insane, but I would swear that a rooster just taught me AI.

    • @bradley1995
      @bradley1995 6 місяців тому

      He did, and a cock a doodle too!

    • @sebastianpohl1268
      @sebastianpohl1268 5 місяців тому +1

      Twist at the end: The rooster was itself an AI ...🤔

    • @AA-cg1wm
      @AA-cg1wm 2 місяці тому +2

      plot twist: it's a hen

  • @CraftingCat_IX
    @CraftingCat_IX 7 місяців тому +252

    The talking chicken is *slightly* cursed. It’s probably because only the beak is moving and it’s opening a bit too wide for my taste.

    • @plaintext7288
      @plaintext7288 7 місяців тому +32

      + the balls like red things

    • @the-bgrspot6997
      @the-bgrspot6997 6 місяців тому +6

      hyper cursed tbh

    • @poultrypants
      @poultrypants 6 місяців тому +1

      and the balls 🤣🤣

    • @sumitbiswas164
      @sumitbiswas164 6 місяців тому +8

      Extremely distracting! I would prefer relevant scenes in a serious video.

    • @volbla
      @volbla 6 місяців тому +8

      I like the chicken. I find it charming :>

  • @grahamsnyder762
    @grahamsnyder762 7 місяців тому +71

    Since the controller can output an arbitrary cart speed every timestep, it is permitted more or less infinite acceleration. It would be interesting to see how they perform if the available acceleration, (or power, or whatever) is constrained to realistic bounds

    •  6 місяців тому +1

      That's actually pretty standard to alter into a categorical/discrete step.

  • @alliepiper4772
    @alliepiper4772 6 місяців тому +59

    I'm finally starting to recover from like 3 years of intense burnout as a software engineer, and watching your videos helps me remember why I got into this field in the first place. Looking forward to the next one!

  • @knitnatsnokprogramming
    @knitnatsnokprogramming 7 місяців тому +63

    He’s alive!

  • @thebetterbutter709
    @thebetterbutter709 6 місяців тому +18

    From a frenchmen to another, your accent has improved so much! Your videos are captivating as always.

    • @proyoloks1386
      @proyoloks1386 6 місяців тому +3

      yeah it's insane, I almost forgot that this is the same guy as 8 months ago...

  • @mr.ditkovich9983
    @mr.ditkovich9983 7 місяців тому +15

    Can't wait to see your next video 🙌🏾🙌🏾

  • @TheTechnopider
    @TheTechnopider 6 місяців тому +3

    Extremely excited for the next video! For some reason, AI training videos just scratch a certain itch so nicely

  • @Sakejo
    @Sakejo 6 місяців тому +2

    In the next videos I suggest including some articles, in the description, to delve deeper into the topics discussed. As I was searching for the sources for this project, I couldn't find them.

  • @notthetruedm
    @notthetruedm 6 місяців тому +1

    I love how you animated this! It looks so cool and made it easy to follow along

  • @teenspirit1
    @teenspirit1 6 місяців тому +3

    I do topological sorting, but then I cache all the pathways from input nodes to output nodes into lists. This way, instead of re-iterating the graph, I just do a for loop to iterate over lists of nodes instead of repeatedly recalculating paths. I haven't seen this technique used online but it makes training step much faster.

    • @Prism019
      @Prism019 5 місяців тому +2

      Yeah, that popped out to me as an immediate speedup opportunity. Just gotta make sure it's only valid while the topology of it doesn't change. (Maybe invalidate it in the "add node/connection" mutations)

  • @Oring17
    @Oring17 7 місяців тому +6

    Love your work Pezzza. You are a great inspiration.

  • @knitnatsnokprogramming
    @knitnatsnokprogramming 7 місяців тому +24

    I’ll binge-watch this rn

    • @ruolbu
      @ruolbu 6 місяців тому +5

      how do you binge a single 13 minute video?

    • @knitnatsnokprogramming
      @knitnatsnokprogramming 6 місяців тому +14

      @@ruolbu By rewatching it over and over again at 0.25x speed

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +7

      Amazing

    • @ruolbu
      @ruolbu 6 місяців тому +1

      dedication

  • @xernas7880
    @xernas7880 7 місяців тому +5

    Finally ! I just love your content, i'm happy to see you again, also on my favorite topic

  • @enderdodo9749
    @enderdodo9749 5 місяців тому +1

    Very interesting video! The editing and animations are so nice and makes it easy to understand, and I was wondering, what software did you use to make them?

  • @Dedelblute3
    @Dedelblute3 7 місяців тому +1

    I love this channel. It's enjoyable to just watch cool coding stuff.

  • @NickCombs
    @NickCombs 6 місяців тому +4

    The first steps are always the hardest, so it might be good to show some actual code examples for them.

    • @DNAmaster10
      @DNAmaster10 3 місяці тому +1

      For anyone struggling in the future, this playlist, and this video specifically, was of great help for me when writing the topological sort algorithm. To be honest, I'd actually say that topologically sorting the graph is one of the hardest steps. ua-cam.com/video/cIBFEhD77b4/v-deo.html

  • @khatharrmalkavian3306
    @khatharrmalkavian3306 7 місяців тому +8

    Double pendulum should be fun. I wonder how good a solution it will be able to find. As an aside, can't you just use the raw pendulum height (summed per frame) as a fitness function?

  • @noahwinslow3252
    @noahwinslow3252 6 місяців тому

    I'll admit I wasn't as interested in this one as your other work, but your animation quality is *chef's kiss* such a good presentation

  • @namdao2672
    @namdao2672 7 місяців тому +2

    im trying to learn ML and DL by myself and find this super helpful, waiting for your next masterpiece

  • @karlosfy
    @karlosfy 6 місяців тому

    Really inspiring. Will be waiting to see the code! Great content :)

  • @JayBenOh
    @JayBenOh 6 місяців тому

    Great video! It's a very nice visual representation ... that must have been a ton of work!

  • @issamoudriss6564
    @issamoudriss6564 6 місяців тому

    This video is super nice man, waitin for the second part!

  • @CyrilM68
    @CyrilM68 7 місяців тому +1

    I can't wait to see what happens next with the double pendulum !

  • @Hailfire08
    @Hailfire08 7 місяців тому +1

    Love your videos and can't wait for the next one!

  • @P4INKiller
    @P4INKiller 6 місяців тому +4

    This is an absolutely wonderful video.
    If I may provide some feedback;
    It would be great if you could visually show how these mutations (5:47) are applied using the network chart.
    When splitting an existing connection in two, do they share the same connections with their parents and children?
    Do new connections have random weights?
    Also, why does my hyperbolic tangent function provide values different from yours?

  • @srb2149
    @srb2149 6 місяців тому +1

    Your projects are amazing, and often very beautiful. I aspire to make software as good as this one day!

  • @quantumgaming9180
    @quantumgaming9180 6 місяців тому

    I did not expect you to say "double pendulum" and now you are leaving us on a cliff hanger like this :(
    Hope next episode appears soon

  • @gedaliakoehler6992
    @gedaliakoehler6992 7 місяців тому +1

    Very neat (haha)! Also great classical controls problem!

  • @preguica_net
    @preguica_net 2 місяці тому

    Very nice the visual explanation

  • @ZeroPlus707
    @ZeroPlus707 6 місяців тому

    Great video! Hyped for the double pendulum :)

  • @simon_aviation
    @simon_aviation 7 місяців тому +1

    Thank you SOOOO MUCH!!!! I always wanted to do something like this, this will really help!!!

  • @elex6934
    @elex6934 7 місяців тому

    I love your videos ❤ ai is such an interesting topic and I'll watch part2 as soon as possible

  • @sofia.eris.bauhaus
    @sofia.eris.bauhaus 6 місяців тому

    inverted double pendulum sounds intense! looking forward to it. :)

  • @mnajjar85
    @mnajjar85 5 місяців тому

    the visualizations are epic

  • @o1-preview
    @o1-preview 6 місяців тому

    such a crime that one of the best youtubers in the tech space only has 138k views and only 34k views on this video after 7 days

  • @rigbyb
    @rigbyb 7 місяців тому

    Great video! Glad to see you again

  • @midasscheffers7610
    @midasscheffers7610 6 місяців тому

    Awsom video, cant wait for the second part

  • @johnnicholas5458
    @johnnicholas5458 2 місяці тому

    your graphics are wonderful what are you using? (Also great video im going to go play with this stuff now lol)

  • @MysteryPancake
    @MysteryPancake 6 місяців тому +1

    nice! it reminds me of the MarI/O video, it uses this algorithm too

  • @brickstopforall
    @brickstopforall 7 місяців тому +1

    I was wanting a video on machine learning!! It's from you aswell!

  • @ErikBongers
    @ErikBongers 5 місяців тому +1

    Are the mutations equally distributed between those 4 possibilities?
    But some extra mutation decisions need to be made: where to insert a new node, which weight to change or where to add a new connection. Are these decisions also equally distributed?

  • @caiuschew5021
    @caiuschew5021 2 місяці тому

    Excellent content! Would love if you could compare a comparison between this and other RL algorithms like TD3, PPO, and SAC. Like how they would do solving the same problem

    • @PezzzasWork
      @PezzzasWork  2 місяці тому +1

      Thank you! I am actually working on this :)

  • @Antcode-wk7tu
    @Antcode-wk7tu 6 місяців тому +1

    Hi Pezzza. I have got a question for a physics rigid body particle simulation you made ages ago, and I am dying to know since you didn’t upload the source code and can’t find what I need anywhere else.
    You have the feature where you are able to draw your own rigid bodies with the mouse. I believe the objects are composed of particles which are interconnected by constraints (correct me if I am wrong). I know how to implement everything apart from the constraint connections. How do I connect the particles in a way that works for any drawing and keeps the object's rigidity. A naive approach be to connect every particle to every other particle but that would suffer from performance issues. How did you implement it?

  • @vertexforger
    @vertexforger 4 місяці тому

    Great video! How are you animating the cart + pendulum as well as the visualization of the neural network as well as the graph?

  • @allanburns1190
    @allanburns1190 7 місяців тому

    This will actually help me so much in my new project

  • @lefm_
    @lefm_ 7 місяців тому +2

    So few nodes! Unity's ML Agents default configuration is 2 layers of 128 nodes, I dont understand why it uses so much, maybe something related to reinforced learning?

  • @CraftingCat_IX
    @CraftingCat_IX 7 місяців тому +3

    The guy is back :D

  • @motbus3
    @motbus3 6 місяців тому

    Loved the UIs

  • @Ibloop
    @Ibloop 7 місяців тому +11

    I was literally about to work on a project of mine that requires AI, immaculate timing pezzza

  • @sourabhk2373
    @sourabhk2373 6 місяців тому

    Videos like these remind me why I got into this field. Man my job is sucking the soul out of me. Gotta do something about this.

  • @reactRiderDoughnut
    @reactRiderDoughnut 6 місяців тому

    soooo, now I want to watch the next video, it is so excited

  • @shadowcraftersr
    @shadowcraftersr 6 місяців тому +1

    That's an awesome video. Crazy good graphics! Mind giving us a hint on how you made them?

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +4

      Thank you! I am using C++ and SFML, I will probably make a series of small tutorial to explain how I do this

    • @TutosIngenieria
      @TutosIngenieria 4 місяці тому

      @@PezzzasWork I´m waiting for it everyday. Thank you.

    • @BrunexGamerYT
      @BrunexGamerYT 8 днів тому

      Could you just tell me how you manage to get smooth animations and beautiful styles in the game? Do you use any specific library to apply the styles?​@@PezzzasWork

  • @julianxe
    @julianxe 6 місяців тому

    Super insightful! What tool are you using for animations?

    • @PezzzasWork
      @PezzzasWork  6 місяців тому

      I did create my own tool using C++ and SFML

  • @Koroistro
    @Koroistro 5 місяців тому

    I always found these systems fascinating, adding noise made me wonder about one thing: what if there was noise on the neurons themselves? In the real world neurons live in a chaotic systems too, so it stands to reason that there'd be sources of noise there too.

  • @warrenhenning8064
    @warrenhenning8064 Місяць тому

    If you have the network exert a fixed amount of force or not in a bang-bang manner rather than getting to directly control speed (which is not very physically realistic) and don't expose the angular velocity, you'll have a harder task on your hands. In particular, without some kind of memory mechanism (recurrence, LSTMs, something like that), the network probably won't be able to solve the position-only input variant.

  • @FunkyTurtle
    @FunkyTurtle 6 місяців тому

    awesome video man, the graphics are super beautiful as always.
    you inspired me to make a network of my own, what sources did you use to learn the intricacies of the architecture? i understand the general flow but wouldn't know when at what rate should i add connections or nodes.
    thanks 😄

    • @PezzzasWork
      @PezzzasWork  6 місяців тому

      Thank you! I did use the original paper a lot and then tweaked things a bit to feet my needs. In the end these parameters have quite a lot of flexibility, there is a wide range of possible values that can lead to good results. In this case I used 5% chance to create a new node and 50% chance to create a new connection.

  • @moofin4170
    @moofin4170 6 місяців тому

    In theory I understand training AI, however what software do you use? Where do you write logic? How do you get an image output? How do you offload the work to a GPU for faster matrix processing? Interesting stuff, nonetheless. Great video!

  • @kinsondigital
    @kinsondigital 5 місяців тому

    What would be neat is to take an AI model that has been trained in realist physics and see if it can be applied to balance a real-world physical pendulum.
    There are forces and things in real-world physics that you cannot account for in a software simulation. For example, there are electrical forces, such as wire resistance, with the electric motor that drives the cart. The friction forces of the rail and the cartwheels, forces of wind if the balance operation occurred in an outside windy environment, and more.
    It would be fun to build something like this and train a model to control a real-world pendulum!!

  • @ardumaniak
    @ardumaniak 6 місяців тому

    Hurry up with the second part, I can't wait!

  • @PloverTechOfficial
    @PloverTechOfficial 6 місяців тому +2

    This is amazing! I can actually understand how to create my own system if I wanted. Unlike some videos which don’t succeed at telling us in an understandable way.

  • @jayearl3591
    @jayearl3591 6 місяців тому +1

    So after all these months in hiding, you've been secretly building Boston Dynamics Spot knock-offs 😂

  • @MiguelRodriguez-gs3pi
    @MiguelRodriguez-gs3pi 19 днів тому

    Hey, amazing video, I was wondering how did you manage to get all the pendulums moving. I'm trying to implement this myself and like 90% of the pendulums just go to a stop seconds after I run it

  • @Alexander20091988
    @Alexander20091988 6 місяців тому

    Really cool video, thank you! This is an really interesting sub topic of ML, especially with such simple networks. Im wondering how it would play out, to create some intermediate game ai, which handles some decisions with this sort of mechanisms instead of a huge load of switch/if/else shenanigans. Obviously not driven fully by it for performance reasons, but in an assisting way.
    Btw, can you add the used resources (wiki/paper links) to the description? I would appreciate it. Thank you!

  • @synterr
    @synterr 7 місяців тому

    So cool example! Can't wait to see how AI will handle chaotic pendulum ;)

  • @geobruce1995
    @geobruce1995 6 місяців тому

    This was again an awesome and beautifully visualised video, just like I'm used from this channel.
    I'd love to be able to program something like this. If you were to make a more detailed tutorial that we can follow along with the videos and description I believe many people might benefit from this.
    Is your code open source?
    Thanks a lot for your awesome content!

  • @Surfingnet
    @Surfingnet 6 місяців тому

    Encore une super vidéo. Tu l'as codé dans quel langage ce projet? C'est quoi le cpu de la machine sur laquelle tu fais tourner le processus de sélection?

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      Merci ! J’utilise le C++ pour tous mes projets et le CPU de mon pc c’est un I7-12700K

  • @i_do_stuff
    @i_do_stuff 6 місяців тому

    Waiting for the next one!

  • @thatprogramer
    @thatprogramer 6 місяців тому

    Very well explained! I wonder how the network would react to slight random fluctuations in the value of the nodes or just straight up removing nodes (How would it adapt?)

  • @Leonan-cx6dl
    @Leonan-cx6dl 7 місяців тому

    Waiting for the next video!

  • @bergolho
    @bergolho 6 місяців тому

    Congratulations for the video! Could you please tell me which software you use to build the animations ?

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      Thank you! I am using a C++ tool I wrote myself

  • @Top10-m7r2n
    @Top10-m7r2n 6 місяців тому +1

    Nice work! Is it possible that you publish this project would very interesting to read the code.

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      It is planned, I am currently cleaning the code

    • @Top10-m7r2n
      @Top10-m7r2n 6 місяців тому

      @@PezzzasWorkThanks

  • @tatomans1982
    @tatomans1982 5 місяців тому

    excelent video. I learn a lot. Do you have any video where you explain the code?

  • @Blooper1980
    @Blooper1980 6 місяців тому +1

    Very neat video

  • @BanD1t8
    @BanD1t8 6 місяців тому

    The pendulum visualization looks really nice and tactile. Is it custom made, or was there some library/framework involved?

    • @PezzzasWork
      @PezzzasWork  6 місяців тому

      It's all custom made using C++ and SFML

  • @jazzargamer3064
    @jazzargamer3064 5 місяців тому

    That's amazing. I really like what you have done here. Can you share some of the code used in this video? It would be appreciated.

  • @lennarth.6214
    @lennarth.6214 6 місяців тому

    I really like the NEAT-algorithm and its variations. I've used them to find shapes for the unsolved mathematical problem called moving sofa. I got something similar to the currently known best solution in just a few dozen iterations. I wonder how this algorithm scales with more complex task on just a few inputs.

  • @mystifoxtech
    @mystifoxtech 6 місяців тому

    the double pendulum balancing problem should allow 2d movement instead of 1d to balance it because controlling 5 parameters with one output is just not feasible

  • @ai_outline
    @ai_outline 6 місяців тому +1

    Hi, do you have a Computer Science background? Great video! :D

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      Thank you! Yes I have a master degree in computer science

    • @ai_outline
      @ai_outline 6 місяців тому

      @@PezzzasWork that’s amazing!!! Hope to see more great CS content like this. Keep it up 💪🏻

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      Thank you!

  • @gorlix
    @gorlix 6 місяців тому

    after this video you convinced me to play around with neutral networks.
    i quickly found my first goal - make MNIST number recognition network. its my second day trying and the network consistently gets 30% error rate which really pisses me off, this must be because i did not use any libraries and slapped it together on a Unity C# project with a help of chat gpt.
    im planning to run network on a separate thread so i could test more variety of settings for the neural network.
    anyways if you are reading this, what would you suggest for me?
    im using traditional neural network with
    inputs of 784
    hidden layer 128
    hidden layer 32
    output layer 10
    and learning rate of 0,0005
    in each epoch it eats 60k images
    after running first half of first learning epoch it shows 25-30% error rate,
    after second epoch error rate tends to move closer to 50% which is weird, i tried making learning rate smaller but that requires lots of time too

  • @manamimnm
    @manamimnm 6 місяців тому

    That trippy music!

  • @abdulrahmanelawady4501
    @abdulrahmanelawady4501 6 місяців тому

    Thank you for a great video

  • @Wolforce
    @Wolforce 7 місяців тому

    Great video! as always!

  • @g3itnal
    @g3itnal 7 місяців тому

    im excited for the next video

  • @Haapavuo
    @Haapavuo 6 місяців тому

    How did you implement the visualization? It looks very nice. Thanks!

    • @PezzzasWork
      @PezzzasWork  6 місяців тому

      I am using C++ and SFML, I will create a series of tutorials to explain how I did as I have quite a lot of questions about it.

  • @happycolours8551
    @happycolours8551 7 місяців тому +1

    Yay he's back

  • @squishyguns-1
    @squishyguns-1 6 місяців тому +1

    why is it that most youtubers that make "ai learns how to walk run..." using this method just feel like the ai makes every mistake possible to later avoid them, and if one very minor thing changes in the ai character (leg lenght, weight..) or in its environment, (stairs changing sides, extra cube..) they have to relearn every thing like a newborn instead of keeping the knowledge of how to walk

    • @Joorin4711
      @Joorin4711 6 місяців тому

      The domain is much bigger for "training an AI to walk" with many more inputs and outputs and, typically, an enormous amount of valid states for the network to learn.

  • @jmcglockYT
    @jmcglockYT 7 місяців тому +1

    yes he uploaded

  • @sergodobro2569
    @sergodobro2569 6 місяців тому

    Cool video!
    Btw, do you use Godot or some other engine? If though, how to calculate physical interactions in seconds? Because usually it is 1 scene with fixed speed of time, and to calculate all those ai decisions everything should be sped up and without graphics

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      Thanks! I am using my own simple engine :)

  • @loicsen8003
    @loicsen8003 6 місяців тому

    Very nice video, thanks for that

  • @LambOfDemyelination
    @LambOfDemyelination 6 місяців тому +1

    how does the NEAT method you use use the reward function to optimise the network? Is that is a feature inherent to the NEAR method, or is it relying on extra work?

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      My implementation is a simplification of neat but the global principle is the same and the reward function is just there to drive the random operations toward better solutions by introducing a biais for better agents, at the core of the algorithm there almost only random things happening.

  • @wjrasmussen666
    @wjrasmussen666 6 місяців тому

    That is fun! Good work

  • @BrunexGamerYT
    @BrunexGamerYT 16 днів тому

    Please reply to this comment, I would like to know if this game was created in C++ and sfml How did you make the game have this beautiful interface, with nice styles and smooth animations?

  • @azuky74
    @azuky74 6 місяців тому

    I wanted to do the same (create my own evolution neural network) for a long time and you gave me the motivation to ! Thank a lot
    Your video is really great ! Love it !
    I have one question, on my side I have one issue. Network are get over complexed really fast, creating many neurons in fact not necessary. How did you managed this ? Do you decrease the chance to create a new neuron depending on the current number ? Do you take the size of the network in account when scoring ?
    Or maybe you didn't have this issue !
    If anyone have an idea about it, I take it !
    (I resolved the issue by decrasing the score depending on the network size, but I'm not feeling this is a good way to solve it)

  • @codedeus
    @codedeus 6 місяців тому +1

    Great video as usual :D

  • @lexxynubbers
    @lexxynubbers 5 місяців тому

    By the metric of calculations/time, this may be less efficient than networks that can use matrix math. However, as you are achieving so much with much fewer nodes, I wonder if this will ultimately surpass the matrix math version.

  • @Gunnahan
    @Gunnahan 7 місяців тому +1

    cant wait for part 2 🙂

  • @FailRaceFan
    @FailRaceFan 6 місяців тому

    I feel like I've learned more in this video than in 5 hours of reading. Will you also talk about other learning algorithms?

    • @PezzzasWork
      @PezzzasWork  6 місяців тому +1

      Yes I will explore other methods!

  • @Stagnated541
    @Stagnated541 6 місяців тому

    What is the best compiler for a code made in Scratch?