I said some things wrong about my A.I.... Let's Fix That!

Поделиться
HTML-код
  • Опубликовано: 26 окт 2024

Комментарии • 312

  • @Sminelo
    @Sminelo 3 года назад +339

    I recently finished a Master's thesis on AI playing a game with a large amount of uncertainty, so I can give you some general tips:
    - You mention that the AI has a "choking problem", e.g. it throws away the game at the end because it makes a bad move. A far more likelier cause for this is that the AI is massively overvaluing it's position. Particularly in human-generated data, it's entirely possible that certain situations will on average appear more often than others, which can definitely mislead ML algorithms in various ways. For example, suppose there's a bunch of battles where the winning player never uses their sixth Pokémon; to the AI, not using that Pokémon will look great because that means it is winning, but in reality the relationship is inverted. Because the player was winning, they never needed to use their sixth Pokémon (this is just an example, but it shows off the idea I think). Creating an evaluation function using ML on human data can be quite difficult because of this. Ideally you would use the data from the human games as a "jump start", and move on to self-play, e.g. learning from games the AI plays against itself. That way the evaluation function can be considerably refined and the resulting AI will be more likely to exceed human players.
    - Uncertainty can cause poor performance in AIs that use very specific heuristics for evaluation. Because so much information is still unknown, doing a complicated evaluation is mostly pointless: reality is likely different, which can hugely impact a complex evaluation function. In many cases when working with uncertain information, a much simpler evaluation function often works much better, because it can provide a better "general direction" over all possible situations. You might find that something super simple, like cumulative party HP, might work out surprisingly well (though of course your mileage may vary).
    - Search tree culling is super-important. It allows you to search to greater depths (though you don't actually want to search too deep due to all the uncertainty involved). For example, you could assume that you are always playing against a max-level Pokémon and that EV/IVs are optimal unless you find evidence against this. Additionally, there are not that many different movesets per Pokémon that are commonly used; selecting just a few for use in the search tree may be enough.
    - There is the issue that within a search tree with hidden information, predicting what the opponent will do is difficult because your information is hidden from them as well. How to exactly solve that is a mostly undecided problem, but in my experience assuming that they already have perfect information tends to work well. This also culls the search tree considerably.

    • @Red17Panda
      @Red17Panda 3 года назад +4

      You gave some great ideas and advice.
      - your chicken vs egg example is interesting; however, I think if you are careful about how you encode your data and specify your target you can avoid this potential problem.
      -100% agree with your idea of refining the eval function using online or reinforcement learning
      -based on the performance of past AI that used simple eval functions, ML based approaches are much better for this game
      -100% agree that being smart about making assumptions and pruning/culling would benefit OP a lot. Especially if it allows OP to increase the number of turns he can look ahead to 2 or 3
      -With regards to your last comment, I'm not sure how much of an impact that has on OP. Since he's already using a brute force/shotgun approach, he's already considering those same options --the only thing that would change would potentially be the weight they are given when computing expectations. For this game at least, I think assuming your opponent has perfect information would actually be detrimental. For example, if you carry any unique techs such as coverage moves, items, or abilities assuming your opponent has perfect information will be further away from reality. I think just assuming your opponent assumes the average is the best way to go; however, I don't think OP is using this sort of tiered thinking set up in his design. Instead he's relying on the ML model to predict the distribution --which bakes in the average assumption through training.

    • @murtaza6464
      @murtaza6464 3 года назад +6

      As a person slightly experienced with AI, I was thinking about the tree culling point too-specifically that I wonder if you're already assuming your opponent is perfectly picking their best move, which will probably work well and seems to do so for many other games.
      Also, I wonder if a tiered approach for win percentage calculation would work, where the first few moves in the tree are calculated with the full win prediction algorithm, but deeper in the tree you start using a less precise heuristic that can work much faster but has a larger margin for error. I don't know how well it would work, but I played around with it for Othello/reversi and it had some promising results as a technique. Not sure if this technique has a name.

    • @jackwilliams2010
      @jackwilliams2010 2 года назад

      @Puppet that sounds like using the wrong tool for the job. Not so much doomed to fail as it is a waste of time and compute power. Now if you're trying to understand a complex system such as if game piece color chosen affects RNG, then ML could be used to guess if there is any correlation. But as Freek mentioned, sometimes ML incorrectly assumes there's a correlation based on the data it has to train with.
      Jordan Harrod covers a lot of these topics and more in her channel that you might be interested in.

    • @D3MONFIEND
      @D3MONFIEND 9 дней назад

      I wonder if it is possible to read your master thesis.

  • @ActiveXenon
    @ActiveXenon 3 года назад +545

    Finding this series is like finding the hidden gem of all hidden gems.
    Definitely going to subscribe, and I have no doubt these videos will blow up soon.

    • @anishadgaming
      @anishadgaming 3 года назад +4

      And we found the series so early so we get to watch these videos as soon as they come out. This is a first for me.

    • @alyssavidelock3416
      @alyssavidelock3416 3 года назад +1

      I think it's officially starting to blow up! It's really cool

    • @LightsOnTrees
      @LightsOnTrees 3 года назад +3

      Totally. And just think about the hellish Kaizo this will one day make.

  • @neverfail9432
    @neverfail9432 3 года назад +247

    When you have a model with a "choking" problem in a game with RNG, there's a good chance that it's overvaluing averages. Say for example that you have move "A" with 75% accuracy and deals 100 damage on hit. That's an average of 75 damage per use. If your other damaging move "B" deals 50 damage and always hits, what do you do when your opponent is at 50 health? Most of the game, I'd tell you to use move A, but the correct answer at the end is move B.

    • @bestaround3323
      @bestaround3323 3 года назад +43

      So basically it shoud add a clause where if a pokemon would faint from a move with 100% accuracy, use that over a move with lower accuracy but higher power.

    • @neverfail9432
      @neverfail9432 3 года назад +44

      @@bestaround3323 Pretty much, but not just 100% accuracy moves. If I use the same example, but move "B" actually has a 95% accuracy, I'd still want to use it because it gives me the highest probably of killing the opponent's current Pokemon.

    • @NolanJohnson423
      @NolanJohnson423 3 года назад +37

      @@neverfail9432 so more like, prioritizing securing the kill with the optimal move

    • @timschommer8548
      @timschommer8548 3 года назад +36

      In other words, the expected value calculation needs to cap the successful hit event with the maximum amount of damage the opponent can actually receive. In this case, A and B both do at most 50 damage, because that is all the opponent has left, which means that A only has an average damage of 37.5 in this situation.

    • @bestaround3323
      @bestaround3323 3 года назад +9

      @@timschommer8548 That reminds me of the stamp collecting AI. If you set the limit to say, buy only a 100 stamps, due to uncertainty it will still try and get more and more stamps just so it can be certain it get 100 stamps.

  • @thebestworst8002
    @thebestworst8002 3 года назад +260

    I really hope your videos blow up. These were hella interesting and the tools created could really help the community

    • @daeru0125
      @daeru0125 3 года назад +6

      im excited to see Wolfe testing the AI, and I know for sure it will happen

    • @envysins6411
      @envysins6411 3 года назад +1

      They definitely did

  • @AbsolBlogsPokemon
    @AbsolBlogsPokemon 3 года назад +177

    Would really love to see a video on the calculations that went into the total number of situations someday!

    • @fahkyew7776
      @fahkyew7776 3 года назад +2

      Ayyy, ur one of my favorite youtubers. Ur method of storytelling is top tier bro

    • @SD_Koy
      @SD_Koy 3 года назад

      What that guy said, this is definitely reaching the right community.

    • @xXJ4FARGAMERXx
      @xXJ4FARGAMERXx 3 года назад +2

      Here's my attempt at it:
      He said he first calculated all possibilities of a single pokemon, then calculated all possibilities of teams, then all possibilities of matches.
      So, for *one* pokemon:
      Levels: (assuming you could encounter it at every level) there are pokemon from level 1-100, so 100 possibilities.
      Happiness: 0-255, so there are 256 possibilities
      [So far 25,600 possibilities]
      EVs: (assuming you could have just 512 EVs on 1 stat, and that you always put 512 EVs) there are 512⁵ possibilities
      [So far 9.00719925×10¹⁷]
      Abilities:(assuming that for any given pokémon there are *always* possible 3 abilities)
      3 possibilities
      [So far 2.70215978×10¹⁸]
      Genders: (assuming that *every* pokémon *always* has 2 possible genders) 2 possibilities
      [So far 5.40431955×10¹⁸]
      Natures: (assuming that *every* pokémon has 25 possible natures)
      25 possibilities
      [So far 1.35107989×10²⁰]
      IVs: (assuming that *every* pokémon can have every possibility)
      Every IV can be from 0-31; 32 possibilities, and there are 6 stats which all have IVs, so 32⁶ possibilities
      [So far 4.53347182×10²⁷]
      Items: (assuming that there are 299 items, and that you can have pokémon holding no item) 300 possibilities
      [So far 1.36004155×10³⁰]
      Moves: (assuming that every pokémon *Always* has 4 moves, and that every pokémon has 50 possible moves)
      50⁴ possibilities
      [So far 8.50025967×10³⁶]
      Okay, right now there are 8.50025967×10³⁶ possibilities for *ONE* pokémon.
      Assuming there are 1000 Pokémon, that makes the number of possible different pokémon 8.50025967×10³⁹
      You can have 6 pokémon in one team, assuming you *Always* have a full team, then the number of possible different teams of pokémon is 3.77218651×10²³⁹
      Any team can go against any team, so the possibilities are team-number squared, so 1.4229391×10⁴⁷⁹
      My final number based on these *VERY ROUGH* Assumptions, is 1.4229391×10^479
      Do you want to see it in decimal-form?
      Well, it's:
      142293910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
      Shoutout to: miniwebtool.com/scientific-notation-to-decimal-converter
      Other websites just didn't accept numbers larger than 10¹⁰⁰ or gave the answer as "infinity"

  • @drmanowar899
    @drmanowar899 3 года назад +131

    First I just want to say that this is an incredible video series. Regarding the pokemon level thing, realistically 99.9% of your opponents will be using level 100 pokemon in a competitive setting so I think you can safely just calculate it only factoring in level 100 pokemon

    • @sealdoggy8785
      @sealdoggy8785 3 года назад +45

      actually, level 1 pokemon using gimmick strategies are more common than you might think. i'm sure the AI would figure out how to beat them even with the misunderstanding of them 'being' level 100 but still

    • @ericwindsor339
      @ericwindsor339 3 года назад +28

      It seems very likely that this guy wants to use this algorithm in even the cartridge games. Notice how in the previous video he mentioned the idea of using it in doubles/VGC, and also using it in the story mode as well for challenges. As for the the levels in competitive every pokemon is either level 100 (most of them) or level 1 (very small minority), but seems like he's trying to make the code 'complete' for future projects

    • @Lujeca
      @Lujeca 3 года назад +17

      Isn’t the level in vgc automatically set to 50?

    • @steegen101
      @steegen101 3 года назад +6

      or 50 in official competitive doubles

    • @Robin93k
      @Robin93k 3 года назад +6

      Pokèmon Showdown Random Battles literally features Pokémon anywhere between Level 70 to Level 90

  • @Keveloper
    @Keveloper 3 года назад +85

    If you get AI teambuilding running, I think an evolutionary algorithm where the bots develop their own meta would be really cool. Keep a set percentage of each generation performing at current meta and see if you can develop a new, undiscovered team comp 👀

    • @jumbopopcorn8979
      @jumbopopcorn8979 3 года назад +9

      Then we gotta make a meta that stops the bot meta!

    • @farenhite4329
      @farenhite4329 2 года назад +2

      Not sure about an evo algorithm, those are quite computationally costly compared to some other methods.

    • @revimfadli4666
      @revimfadli4666 2 года назад

      @@farenhite4329 what would be better?

  • @milessiegfield5323
    @milessiegfield5323 3 года назад +40

    The youtube algorithm looks like it's slowly starting to circulate this whole thing. Props for all the hard work!

  • @noanimationexpert3843
    @noanimationexpert3843 3 года назад +57

    2:26 Underleveled mons are actually way more common than you would think. It's happened over 50 times in the main series games, though this does count remakes such as HGSS as additional times

  • @uBreeze
    @uBreeze 3 года назад +16

    I am so glad you were put onto my recommendations. There’s a reason every comment is a compliment.

  • @federicorusso4368
    @federicorusso4368 3 года назад +55

    2:28
    *changes a number by 4 orders of magnitude*
    "oh... It hardly changed"
    (random comment to help with the algorithm HOW ARE THESE VIDEOS NOT BLOWING UP)

    • @anthonynorman7545
      @anthonynorman7545 3 года назад +2

      Yeah, but at that level 4 is insignificant lol

    • @xXJ4FARGAMERXx
      @xXJ4FARGAMERXx 3 года назад +3

      @@anthonynorman7545 it's basically like taking an infinite set and adding one to it, it's basically the same thing
      ♾️+1=♾️

    • @anthonynorman7545
      @anthonynorman7545 3 года назад

      @@xXJ4FARGAMERXx yes

  • @Shulk-dn9zx
    @Shulk-dn9zx 3 года назад +10

    This channel is really so amazing. I am so shocked to see how little recognition you get. I know that this doesn’t mean a lot to you in all likelyhood, but I think that you really have something going here, and that you shouldn’t give up. This is truly amazing content

  • @cubostar
    @cubostar 3 года назад +12

    As a CS/math major who recently got into Pokemon, this is such a cool series! Can't wait to see what comes next!

  • @GlichCentral
    @GlichCentral 3 года назад +1

    It is worth noting that, as some other have pointed out, there’s lots of weird obtainable stuff from a variety of places, like the level 1 legendaries from hg/ss, really low level evos from SOS chains or pokemon go, and I seem to remember being able to encounter level 2 dragonite while flying around in one of the games?
    Though if you really want to get into it, you could still reduce the number of possibilities in that case based on moveset, like how some moves are only by levelup, some from earlier games that don’t allow for weirdly low levels, or some only from events that start at a specific level.
    And actually, speaking of event mons, they might also have set abilities, natures, or other features as well, depending on the event.
    On an unrelated note, how would the AI even play the game? Would you do the non-battle parts and just have it battle, or would you try to have the code actually try to play the whole game? Because that sounds like a nightmare.

  • @ailst
    @ailst 3 года назад +20

    I just commented on your other video. Should read this reply first.
    This video here is a bit weird in the sense that it seems to focus on things that seem to be hugely irrelevant in regards to improving the playing-strength of your AI. :D
    The bugs that lead up to choking are what I consider the relevant part.
    You said that your code in that regard is highly complex and thus it is hard to find the bugs.
    My recommendation in my last comment was to calculate a score for each move and then pick the move that scores best with the algorithm you use to calculate it.
    By breaking down the steps of the algorithm and logging how they impact the score, it should be relatively easy to figure out what went wrong when reviewing that move.
    For doing so you need a way to rerun the AI's algorithms the same situation over and over, so you can reproduce the bug and see directly how tweaking the code affects them.
    I don't know how relevant that example snipped you showed was for when you used the self-buffing-move instead of an attack and gave the opponent the opportunity to kill you. This looks like your move-evaluation-method looks at total damage-output-potential rather than something like "turns until the end of the battle". If it did that, it should realize on its own that further buffing is pointless when you can already 1-hit-KO your opponent's pokémon.
    I think it would be highly instructive and helpful if you made a video showing when it makes something you consider a mistake and what it's debug-output and scoring for each of the moves looks like.

    • @seemlesslies
      @seemlesslies 3 года назад +3

      It seems like his code is to diverse he wants it to do everything all in one.
      The code would be better off with a static team. Rather than swapping the teams around.
      The code doesn't seem to be eliminating enough moves either. The whole point of using machine learning is to get rid of all the options that are unlikely or unhelpful.
      While he can brute force it. It is better to have specific data sets set up in advance for common plays and outcomes and let it use references. This is generally how higher tier video game AIs work.
      (Full disclaimer) I'm not a programmer nor have I made one of these AIs. I just studied AI theory in college, and watch Code Bullet a shitttt ton. And these are the same problems he ran into when he was making AIs vs simple video games. I am assuming it gets even worse in these settings.

  • @rabidrivas
    @rabidrivas 3 года назад +9

    I really hope that in the furture this can be used in fangames and even ofcial games. It would be awesome to have the champion of a region be so smart

    • @Beanskiiii
      @Beanskiiii Год назад

      Exactly it would be much harder but more rewarding than fighting the elite 4!

  • @Paradelton
    @Paradelton 3 года назад +11

    I bet it would be entertaining to watch some of your random ai ranking battles

  • @atalocke
    @atalocke 3 года назад +3

    I’ve just found your channel and have been really enjoying everything you’ve put out so far. There’s no such thing as too much fun dev tech content. Great stuff! 🎉

  • @owenmurphy924
    @owenmurphy924 3 года назад +4

    This is actually amazing. This needs to see a lot of attention.

  • @kittycatcrunchie
    @kittycatcrunchie 3 года назад +8

    This is a really cool series! Do you think it might be an option to let Showdown host your code to allow for permanent public battles? I know you were worried about people using the code for nefarious means, but surely since they were so helpful with handing over training data, they wouldn't mind hosting the AI battles? Especially since I think the community would really enjoy it!

  • @truth4831
    @truth4831 3 года назад +1

    Love your work! Thought I’d comment cause you deserve to ride the RUclips algorithm to the top. Keen to see what you come up with in the future :)

  • @DPowerOfRock
    @DPowerOfRock 2 года назад

    Dude, I haven't been interested in coding since half my lifetime ago, 15 years, and your content is still absolutely without a doubt top notch. You speak with a voice that makes me want to listen, your smile makes me feel welcome to learn, and your editing skills make this feel like something I could have watched on the wheel-in VHS tapes the teachers would bring in on the big black metal frames with a garbage TV (even for its time). You would have stood your own against greats like Bill Nye and David Attenborough. Thank you for your service.

  • @wadejohnson3051
    @wadejohnson3051 3 года назад

    Reflecting on your mistakes and reading corrections is awesome. You're a real scientist. Thanks for the video.

  • @BugTimez
    @BugTimez 3 года назад +2

    Great videos! Love this project. Updates on the best rank it reaches would be appreciated as I'm so interested to see if machine is the best trainer like no one ever was.

  • @VerbalLearning
    @VerbalLearning 3 года назад +1

    While i know essentially nothing about coding, the mention of your AI having a "choking problem" reminded me of the CPU's in Smash Ultimate often times struggling to hit their opponent after getting a shield break. Which is a scenario that is incredibly favourable for the person who broke the shield as the opponent is stunned and cant move or act for a significant amount of time. When you see it in actions it's a very clear example of an AI "choking" away a big advantage due to what i imagine is the AI getting confused in some way. Which is strange considering the answer should be pretty simple: When the opponent is shield broken, use your singular strongest move or begin your most damaging combo (roughly speaking).

  • @deido2567
    @deido2567 3 года назад

    I had this in my recommendeds and now that I see how elaborate this is, I had to subscribe! been here at 13600 Subs

  • @ericwynne8058
    @ericwynne8058 3 года назад +1

    Commenting to help boost you in the algorithm, I'm loving these videos and can't wait for more.

  • @joeropke7464
    @joeropke7464 3 года назад

    This project is gonna end up being far bigger than we realize and I’m just glad I get to witness it at the start , this has so much potential to be so many different things , I wanna know more on how it deals with rain teams , weather control and things like taunt and switch moves like u-turn and volt switch

  • @gustavocpii
    @gustavocpii 3 года назад

    I'm really impressed with your videos. You manage to show technical aspects of your work in a clear way and your animations are beautiful. They are really fun!
    One technical comment: the idea of approaching the battle in turns looks like a very good application for Reinforcement Learning. I could not guess from your videos if you use it already. Maybe you could consider something like this.
    Subscribed already. Looking forward for your next videos!

  • @StepBaum
    @StepBaum 3 года назад

    just as good of a quality, even for a follow up vid, would love to see more. you have a nice way of showing, and explaining. awesome job!

  • @speckledshroomz
    @speckledshroomz 3 года назад

    I don’t have any idea how any of this works, but I watched both videos and loved them. You are very charismatic and easy to listen to!

  • @mikeb.7211
    @mikeb.7211 3 года назад +5

    I would love to know how your AI would compare to in-game AI trying to use the same competitive team

  • @thisguyhandle
    @thisguyhandle 3 года назад

    I'm extremely excited to see where your projects go in the future

  • @demonstone677
    @demonstone677 3 года назад +1

    Yo so I gotta say this was awesome. Your incredibly smart and I hope you find success in your endeavors. Awesome content

  • @dave.004
    @dave.004 3 года назад +1

    This series is incredible man! I recently had to start a coding project for school and I wish I'd have thought of something like this.

  • @zerkvoltago
    @zerkvoltago 3 года назад

    You got my subscription from this. Can't wait to see what happens next m8. Keep up the good work and let us know when the AI is ready to battle Joey

  • @bengoodwin2141
    @bengoodwin2141 3 года назад

    Your previous video is the only time I've decided to subscribe to a channel on the first video I've seen from it. I hope this project goes well!

  • @bananagram8495
    @bananagram8495 3 года назад

    Good job pointing out your mistakes. That’s a difficult process but it 100% shows the dedication you have for this game. Maybe make sure that you advertise it better, idk what happened with the algorithm but i was suggested this after not looking at machine learning videos for a whole, but i’ve been missing out. Will look at channel closer

  • @mechtroidProductions
    @mechtroidProductions 3 года назад +1

    I can't be sure this is the problem, but the "choking" problem appears a lot in chess programs, even ones that don't use machine learning. In that case, it's because near the end, when you have an incredibly high chance of winning, the probability space becomes compressed, meaning the difference between a good move and a bad move can be around 3% instead of the shift of tens to twenties that a midgame move would predict. This allows random noise to overwhelm the estimation engine the chess program uses, leading to late game sloppy play. Perhaps that's something to look into yourself?
    Either way, really enjoyed the videos, I've done rocket science for a living and this project blew me away! Definitely subscribed, I look forward to your future with great interest.

    • @TheThirdBuild
      @TheThirdBuild  3 года назад +1

      That's a very interesting idea, and I'd think you're right if I didn't know that the AI very much shows differences between good and bad moves by larger numbers at the end of a battle. Frankly, it might be the fact those numbers are so large causing the issues. But this is something I'll certainly look into, thanks for the heads up!

  • @pioneerprophet2085
    @pioneerprophet2085 3 года назад

    Bro! I watched your video last night before I went to bed, like 10 hours ago. And since then, you’ve increased like 1,500 subs!! That’s awesome.

  • @cmndrkool321
    @cmndrkool321 Год назад

    For the number of ways a battle can start, did you include abilities like Drought and Drizzle that can summon weather on the first turn? Also abilities like Intimidate, but can also but negated by abilities like Clear Body or Hyper Cutter? Sometimes, abilities will clash or prevent each other from working. Then we got Mold Breaker; but that’s another story for another day.

  • @jamesehlenfeldt7132
    @jamesehlenfeldt7132 3 года назад

    This is super cool! Can't wait to hear more!

  • @brickland8765
    @brickland8765 3 года назад

    so happy you exist bro. you will go on to do amazing things in life i'm certain.

  • @pedroh.pereira8292
    @pedroh.pereira8292 3 года назад +4

    Your work is really impressive, congrats! Is the an specific way the AI tackle EV training for their teams?
    It would be great if you upload some the AI's games. Keep up the great work!

  • @Blazercraft100
    @Blazercraft100 3 года назад

    Definitely going to blow up soon bro! The RUclips algorithm recommend your videos and god I'm glad it did. This is so interesting!

  • @katiegrayx3637
    @katiegrayx3637 3 года назад

    Just found these 2 videos today. I don't even play pokemon, but this is cool as hell. Subbed & turned on notifications, looking forward to whenever we get blessed with another update

  • @Enthos2
    @Enthos2 2 года назад

    Most underrated aspect of this is how well it's explained

  • @michaeltate6367
    @michaeltate6367 3 года назад

    Just got these videos recommended today, and I'm pretty sure they're gonna explode

  • @johnnygodoy8329
    @johnnygodoy8329 2 года назад

    Amazing work! Also a big lover of pokemon and AI, and I've had this idea in mind for a while, great to see it in the works.
    I do wonder, are you using more complex techniques for the AI that don't go mentioned on the videos? Because if this is the case, I think I speak for a lot of us nerds in saying that a video on those technical details would be very appreciated.
    I mention this because of the comments with suggestions for improved performance, if you've already implemented some of them or are considering implementing them, it would be good to know.

  • @TopOfAllWorlds
    @TopOfAllWorlds 3 года назад +3

    are there vods of the ai battles?

  • @oxstr8upgreekxo730
    @oxstr8upgreekxo730 3 года назад

    Both these videos are really cool. I'm glad you found the thing at the end because from watching chess engines evolve, and even briefly that Dota2 AI. AI seems to learn better if it can learn the game on its own against itself rather than giving it information on what we deem is "OU" or "UU" or whatever. Just giving your AI the rules of the format and making it play itself trillions of times is probably and oversimplification though.

  • @cmdrolfg8663
    @cmdrolfg8663 3 года назад

    Can't wait to see the next part to this series ! Amazing content my dude :))

  • @jeremygijsman
    @jeremygijsman 3 года назад

    It's criminal how little subscribers you have. Hoping you'll blow up soon!

  • @MudakTheMultiplier
    @MudakTheMultiplier 3 года назад +1

    Yo this is an insane project and I'm super excited to see more of your work (even if it's not pokemon, not that I would be upset with more pokemon)

  • @Unknownsoldier740
    @Unknownsoldier740 3 года назад +2

    Good job! I know I want to program my own showdown bot one day. Bit busy making mods for showdown, work, and school though. Keep up the good work!

  • @AsafB1992
    @AsafB1992 3 года назад

    This series is amazing and you are doing awesome work.
    happy to see that you are teaching us aout the mistakes you made and how to fix,can't wait to see more of this!

  • @samuelturner6076
    @samuelturner6076 3 года назад

    I’m so excited for future videos in this series and the growth of Future Sight A.I.. Seriously this is so interesting and amazing and it’s brilliant.

  • @kannonnelms5151
    @kannonnelms5151 3 года назад +5

    Leaving a cliffhanger not saying what the other edge case was with Lance's Dragonite?

    • @TheThirdBuild
      @TheThirdBuild  3 года назад +10

      That's actually a mistake within a mistake! The Pokemon I showed right after is the other exception, and I meant to put text on screen to indicate that but I forgot ¯\_(ツ)_/¯

    • @rubentadeogarcia5424
      @rubentadeogarcia5424 3 года назад +3

      Falkner's Pidgeotto

    • @iuricunhamurakami8261
      @iuricunhamurakami8261 3 года назад

      Ghetsis Hydreigon

    • @R8Spike
      @R8Spike 3 года назад

      A certain pokemon in OR AS That you cach by flying

  • @haikumagician4363
    @haikumagician4363 3 года назад

    @The Third build
    Have you thought of having Future Sight run through a game. Maybe in a randomizer or nuzlocke? Maybe have you run it for movement and stuff so you can get items. Have it be aware of the items it has. Inpokeball number of pokeballs.
    Then when you get into a wild Pokemon battle have Future Sight decide how important that Pokemon is for your team. Then maybe even how many pokeballs and which to use.
    This AI is a phenomenal thing and I love learning about it

  • @eulefranz944
    @eulefranz944 3 года назад

    Great suggestions/ comments and good video addressing them :)

  • @BasementMinions
    @BasementMinions 3 года назад

    Really appreciate this clarification. Such impressive work, I hope your future endeavors are even more successful. :)

  • @reverb2516
    @reverb2516 3 года назад

    so excited to see follow ups to this, you should do a video on some amazing plays the AI has done, or some of it's unusual team choices etc. Thank you for the vids

  • @wizardsknowledge1138
    @wizardsknowledge1138 3 года назад

    This is so much fun and so cool! This is probably the most interesting stuff I've ever seen

  • @xcheesyxbaconx
    @xcheesyxbaconx 3 года назад

    It's crazy to believe how successful you were with this challenge. Congrats on all the hard work.

  • @sagacious03
    @sagacious03 3 года назад

    Interesting analysis! Thanks for uploading!

  • @AndrewBlechinger
    @AndrewBlechinger 3 года назад

    Technical Machine vs. Future Sight. This has to fucking happen.

  • @samk8353
    @samk8353 3 года назад

    You're insanely smart. You will be quite successful in your endeavors

  • @bakecake2583
    @bakecake2583 3 года назад +1

    These videos are super interesting and I hope you keep up the project.

  • @SphealTV
    @SphealTV 3 года назад

    Awesome project man hope you continue to find success

  • @andrewdorsey1237
    @andrewdorsey1237 3 года назад

    I may have moved on from Compsci personally, but man this is still cool as hell. 100% subbed

  • @dandogamer
    @dandogamer 3 года назад

    As a software engineer and a fan of the pokemon games this is super cool. Would love to see you implement something similar in other games

  • @Sbreddragon
    @Sbreddragon 3 года назад +1

    Hope the the website to watch it battle comes back up in the future! You could probably make a twitch plays pokemon esq channel out of it tbh

  • @BunniBuu
    @BunniBuu 3 года назад +1

    I'm more interested in the teambuilding aspect than anything.. I spent so many hours planning the perfect EV values so that I could outspeed the threats in the current meta of the time back when I played gen 6 smogon. I'd love more information about what it takes into consideration with teambuilding... does it look at popular choices / what is even legal for them to play? I'd also love to see a teambuilding AI that doesn't build towards the meta, but rather just to play inside of it.

  • @firelitzephyr
    @firelitzephyr 3 года назад +8

    Dude these are fucking hype. PLEASE keep working on these, I absolutely cannot wait to see further developments!!

  • @lonelyPorterCH
    @lonelyPorterCH 2 года назад

    Interesting followup :D

  • @LeonRayLivingston
    @LeonRayLivingston 3 года назад

    I'd love to see you collaborate on this with a Kaizo ROM creator like SinisterHoodedFigure. He's already got a pretty solid grasp of what is possible within a mainline Pokemon game that could be of assistance to you.

  • @galelululu
    @galelululu 3 года назад

    One problem with earlier chess bots is that they would learn from high level games that sacrificing one’s queen near the end of a game would often result in a victory. The AI would then try to sacrifice its queen as quickly as possible.
    This might be the reason for your choking situation, since those sacrifices are super important near the end of the game. Just a theory!

  • @finnche9555
    @finnche9555 3 года назад

    This is going to be hype. What would be interesting si to see how the AI would learn or reach new data if it fought itself.

  • @inactivechristine
    @inactivechristine 3 года назад

    you definitely started something huge, in a couple years I can see pokemon AI becoming way stronger and more commonly used just like how stockfish and alphazero were for chess

  • @baddragonite
    @baddragonite 3 года назад

    There are actually more than 2 cases.
    For example, in gen 7 you can catch a low level salamence very very early on in the game. It just has an extremely low encounter chance. Pretty close though :p

  • @JonnyCrawford
    @JonnyCrawford 3 года назад

    Really hope the YT algorithm picks this up more, this is a really cool project

  • @KingRevvi
    @KingRevvi 2 года назад

    This project is amazing. Would love to see more!!
    (Nearly) Any Pokémon can be any level thanks to Pokémon GO. :)

  • @freethought23
    @freethought23 Год назад +1

    Dude you're a genius. Why did you stop uploading?

  • @pig6593
    @pig6593 3 года назад

    You are doing a great job, keep at it!

  • @ShawnPattonC
    @ShawnPattonC 3 года назад

    I agree with others that you definitely need to get this thing training on some self-play. Especially because you can start running some proper Iterated Distillation and Amplification. Without the site enforcing a time limit, you can have the AI fight itself while taking way more time to look ahead, and then that refines the initial estimations that the model makes.

  • @GrapeJuiceIII
    @GrapeJuiceIII 3 года назад

    leaving out everyone rated 1000 was definitely a smart decision that made a lot of sense as soon as I saw it (and I haven't used showdown since 2014)

  • @SendFoodz
    @SendFoodz 3 года назад +1

    this is the first channel I have EVER hit the bell icon for.

  • @whitefox411-gamer7
    @whitefox411-gamer7 2 года назад

    There are modes in Pokemon like The Battle Frontier or online mode in newer games that changes a Pokemon's level to 50 regardless of what its real level is.

  • @Soulthief-rw9fj
    @Soulthief-rw9fj 3 года назад

    did you use the pokomon showdown damage calculator for your ai, it lets u pretty much pin point the opponents evs by looking at the damage there move did?

  • @omg2manyusers
    @omg2manyusers 3 года назад

    I’ve often mentally designed games with a "bot league" - cheaters or bots, once detected, are forced into what's essentially a unique server. People can opt in too (and are rewarded for their honesty by being allowed to leave again) to test their bots. An obvious downside is that this could help perfect more insidious bots and cheats that can avoid the detection system, which has bad implications for other games…

  • @potatoaddict8192
    @potatoaddict8192 3 года назад +1

    Hey great video but I have a question about the sample size
    If you used all the battles in a period of time then most of these battles would be played by players on low elo which might make the ai play worse woudnt it be better if the ai trained on tournament matches instead of over 2 million battles which consists of mostly bad players? I just want to say that I have no experience in AI so if I'm wrong i would appreciate if you would correct me. Again thanks for the great content you made my day

    • @TheThirdBuild
      @TheThirdBuild  3 года назад +1

      You're right, but sadly I don't have access to tournament data like that. I also completely understand why because, at the end of the day, I'm some random guy to the people running Showdown and they shouldn't give that out to just anyone. I do, however, make sure to only train on battles where players have a decent rank, so although I have 2 million battle, not all of them are used.

  • @gustavo6649
    @gustavo6649 3 года назад +1

    this project is amazinf, you derve more views!

  • @jackcogswell7800
    @jackcogswell7800 3 года назад

    Hey, "pro data scientist" here. I was just taking notes during the video for some questions I had. My preemptive apologies if these answers are given elsewhere, either in the video or somewhere else:
    1. How did you identify the attributes listed at 5:45 in the previous vid? Were these based on data or selected based on a priori knowledge of competitive meta? Did you weigh these factors, or are you just calculating what action increases "chance to win" the most? Does the AI track current metas and update its predictions based on when the game was played, or does it treat every game as equal?
    2. Shame you can't post this on GIT. Maybe consider writing an article on this for another site or something. If you wanted to expand on this project, you could look at this as "TAPVP" similar to "TAS". I'm not sure if there are any scholarly articles on that or not. What do you think about using your method for other turn-based videogames like Civilization?
    3. Since this is a multi-phase script, are the portions of the party creation and move selection separate from the battling phase? Is your program identifying capabilities of the opponent's team and probabilistically determining unknown capabilities like likely movesets? How is your program's determination of win conditions different from what World Champion caliber players determinations?
    4. Pokemon look super different from when I used to play it lol
    5. You made the right decision at 4:30 re selecting your data intelligently for sure. Don't let anyone tell you differently.

  • @MilichOppenheimer
    @MilichOppenheimer 3 года назад +1

    Nice stuff man!

  • @leglockcontrol
    @leglockcontrol 3 года назад +2

    I hope showdown will include a captcha in the future, because now I want to make a bot for it :/
    Pokémon aside, I love this content. I hope your channel goes brrrrrr.

    • @TheThirdBuild
      @TheThirdBuild  3 года назад +2

      Oh no, please don't give them that idea; that would be the end of this bot as we know it 😂! But go for it, try to make your own bot. The more people looking to push the field the better!

    • @leglockcontrol
      @leglockcontrol 3 года назад

      @@TheThirdBuild the thing is that developing an AI takes times but it shows a lot of benefits. People is not always well intended and they will try to capitalize on that. Take the NFT games like an example: people use bots to farm cryptos, making the value drop.
      I love to see (and trying to make one myself) how far a bot can go for... But the implications are always tempting. I liked when you said that you won't release the code. But there are waaaaay more people outside dying for a chance like this (today for pokemon, tomorrow for something serious)

    • @TheThirdBuild
      @TheThirdBuild  3 года назад +2

      I could not agree with you more on potential poor use cases of AI. I tend to get excited when other people say they want to try something new in CS ¯\_(ツ)_/¯

  • @timschommer8548
    @timschommer8548 3 года назад

    As a question, are you currently extracting battle text to help further improve estimations for things like item, ability, etc? For instance, if someone is running leftovers, you know it from the battle text the first turn that it gets used. Are you currently extracting that, or are you leaving the ai to continue guessing on that one?

  • @alolanrachu
    @alolanrachu 3 года назад

    This is really amazing! Definitely one of the most impressive projects I've seen.
    I just have one question: if you're not using machine learning at all, how do you determine which move is the best to use? From what I understood, you iterated through each action, applying them to the current state, and passing the current state through the model to find a chance of success, so you could pick the action with the highest chance. Without a ML model, how do you do this process?
    Also, I completely agree with your decision to not just share the code to anyone, but it might be a good idea to find a small community of people who'd want to help improve the code (yes, I'm volunteering LOL). Maybe give some thought to making something like a Discord server for people interested in working on it?
    In any case, I'm excited to see how this progresses! Amazing work!

    • @TheThirdBuild
      @TheThirdBuild  3 года назад

      The discord route is quite likely, I've just never been a server mod and trying to learn how. I've heard it can be like drinking from a fire hose.

    • @alolanrachu
      @alolanrachu 3 года назад

      @@TheThirdBuild yeah, it can be pretty overwhelming modding a discord server. If you ever try it, probably best to start with something pretty small. If you ever decide to do it, I'll definitely try to join and help out (doing my postgrad in data science, so I might be able to).

  • @JCKingTAW
    @JCKingTAW 3 года назад +1

    Hello, I was wondering if you knew that the website you posted in the description isnt working. Is there anyway to get it back up? Im curious about seeing this AI play full matches.

    • @TheThirdBuild
      @TheThirdBuild  3 года назад +2

      Yes, I'm aware. The AI was only going to run for the week the video was uploaded. I may run it again soon, but between switching between computers and on boarding new team members, it might be a while. Glad you want to see it in action!

  • @KLightning18
    @KLightning18 2 года назад +1

    I really want to battle this.

  • @Mahgnum
    @Mahgnum 3 года назад +1

    God imagine this in a pre gen5 format without team preview