Page 2 of 5 FirstFirst 1 2 3 4 ... LastLast
Results 11 to 20 of 45

Thread: dota2_nn: Extremely WIP deep supervised learning full-takeover bots

  1. #11
    Basic Member axetion's Avatar
    Join Date
    Jan 2017
    Posts
    38
    Quote Originally Posted by nostrademous View Post
    What has been your result thus far?
    The models trained with 40 random replays (which again amounts to only 1 replay per hero usually) moved around (spotted them standing in ward spots and following the creep front) and knew when to run away but didn't really use abilities. I've weighted the training towards learning abilities appropriately so I'm pretty sure I need more examples for it to infer when to use them. (Another possibility is that it might just be thrown off by the fact that doesn't have any items.)
    Last edited by axetion; 06-02-2017 at 06:30 AM.

  2. #12
    Basic Member
    Join Date
    Dec 2016
    Posts
    689
    A better installation approach would be really useful. I just tried to install it (per directions) and ended up getting a critical error when doing the "luarocks install json".

    It's kind of strange though, b/c I install torch (Windows 10) per their instructions (with Anaconda3) first in order to get luarocks in the first place, but the message I got is:
    Code:
    json 1.0-0 depends on torch >= 7.0 (not installed)
    So it's probably a PATH env issue.

  3. #13
    Basic Member
    Join Date
    Dec 2016
    Posts
    689
    Quote Originally Posted by axetion View Post
    (Another possibility is that it might just be thrown off by the fact that doesn't have any items.)
    Easy way to test this... don't gut the item_purchase_generic

  4. #14
    Basic Member axetion's Avatar
    Join Date
    Jan 2017
    Posts
    38
    Quote Originally Posted by nostrademous View Post
    A better installation approach would be really useful. I just tried to install it (per directions) and ended up getting a critical error when doing the "luarocks install json".

    It's kind of strange though, b/c I install torch (Windows 10) per their instructions (with Anaconda3) first in order to get luarocks in the first place, but the message I got is:
    Code:
    json 1.0-0 depends on torch >= 7.0 (not installed)
    So it's probably a PATH env issue.
    Actually that was my fault -- I gave the wrong package name. The correct one is luajson and I've updated the post.

    (Although I would recommend checking to see if the luarocks you're using corresponds to Torch's luajit not whatever other Lua install you might have)
    Last edited by axetion; 06-02-2017 at 07:10 AM.

  5. #15
    Basic Member
    Join Date
    Dec 2016
    Posts
    689
    Quote Originally Posted by axetion View Post
    Actually that was my fault -- I gave the wrong package name. The correct one is luajson and I've updated the post.

    (Although I would recommend checking to see if the luarocks you're using corresponds to Torch's luajit not whatever other Lua install you might have)
    I'm running it out of the torch\install directory in an Anaconda shell.

    installing luajson works no problem now.

    installing pegasus throws an error (seems lzlib dependency fails):
    Code:
    (C:\Users\nostr\Anaconda3) C:\torch\distro-master\install>luarocks install pegasus
    Installing https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/pegasus-0.9.2-1.src.rock
    Missing dependencies for pegasus 0.9.2-1:
       lzlib >= 0.4.1.53-1 (not installed)
    
    pegasus 0.9.2-1 depends on lzlib >= 0.4.1.53-1 (not installed)
    Installing https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lzlib-0.4.1.53-1.src.rock
    
    Error: Failed installing dependency: https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lzlib-0.4.1.53-1.src.rock - Could not find header file for ZLIB
      No file zlib.h in c:/external/include
    You may have to install ZLIB in your system and/or pass ZLIB_DIR or ZLIB_INCDIR to the luarocks command.
    Example: luarocks install lzlib ZLIB_DIR=/usr/local
    Digging some more, looks like lzlib expects you to pull down the zlib source and build it first and just point the luarocks include location at it (not sure why it doesn't just do it for you...)
    Last edited by nostrademous; 06-02-2017 at 07:55 AM.

  6. #16
    Basic Member axetion's Avatar
    Join Date
    Jan 2017
    Posts
    38
    Oh woops sorry, I'm on Linux so I already had zlib... didn't think that it wouldn't be there on Windows :P

    Definitely motivation to figure out luastatic and get it all bundled up though.

  7. #17
    Quote Originally Posted by axetion View Post
    I intend to make the server just a prebuilt statically-linked binary (so no Torch or dependencies needed) once I figure out how this works: https://github.com/ers35/luastatic. (I'd much rather not have to use the server at all and just use Torch in Dota 2 directly though...)


    They actually have a docker image so I could do that, however you need multiple steam accounts to be able to process the amount of replays they/Dotabuff get.



    I think restricting the hero pool would be a good idea for starting out, especially considering right now heroes like Doom and Rubick that steal spells screw up the corpus builder anyways.... :PP




    Ooh, this looks nice. Will look into.



    I have more things to add on my checklist (status modifiers and number of nearby summoned units are the biggest ones), but the limiting factor is really retrieving them from the replays. Very undocumented spooky magic going on there.



    I think you might have just missed it: here's where coordinates are scaled for instance. I am using rectified linear units though so scaling matters a little less.



    Absolutely -- pull requests welcome too! Once I get a little more organized I'll make a GH project board that I can add tasks and issues too so that people can see progress on things.

    Yeah, SecondPass is nasty (understandbly though, it's the meat and potatoes of it). I'll split it up into SecondPass and ConstructFeatureVector when I get a chance.
    Like I say, hopefully someone will do a video of this working, since it'll be interesting to see this in action (at least for me).

  8. #18
    I checked out the code. It indeed is very cool.

    I'm gonna tell you what I told Lenlrx when he wanted to use machine learning for bots: I don't think it can be done (i.e. the results won't be good) at least not with the current algorithms. The reason I was saying this is because either you will have to use a huge feature vector to cover the things that the algorithm should consider, in which case the learning process becomes impractically long, or you have to use a small one in which case the end results won't be good. Eventually, he deviated to what I was thinking and I deviated to what he was thinking . Right now I think this can be done, but you have to be careful with what you want to do. Do I think you can write any machine learning algorithm that learns dota and plays it (which is almost what you are trying to do) ? No! Can machine learning be used to improve hard coded bots? Yes (at least I think so)! I think you have to use a hybrid system that relies on hard coded scripts for basic tasks (similar to think functions of modes, but smaller) and uses machine learning for your high-level behavior (similar to what desires are doing right now for default bots, but more advanced). This is why I was trying to push ChrisC to make basic tasks modular so people focus more on high-level things.

    I strongly suggest that you should switch to a hybrid system before getting bad results from what you are currently doing and getting coldhearted (unless you are just experimenting or/and do not have high expectations).

    BTW another thing I think ML can be used for is creating tools that can be used in hard coded scripts, like predicting enemy's movement patterns or how much damage/heal/disable a hero can deal/provide given its level in a teamfight again n heroes etc.

  9. #19
    Basic Member
    Join Date
    Dec 2016
    Posts
    689
    Quote Originally Posted by Platinum_dota2 View Post
    ! I think you have to use a hybrid system that relies on hard coded scripts for basic tasks (similar to think functions of modes, but smaller) and uses machine learning for your high-level behavior (similar to what desires are doing right now for default bots, but more advanced). This is why I was trying to push ChrisC to make basic tasks modular so people focus more on high-level things.
    I had the same conclusion and that was the reason for me starting: https://github.com/Nostrademous/Dota2-WebAI

    The readme.md summarizes it.

  10. #20
    Quote Originally Posted by Platinum_dota2 View Post
    I checked out the code. It indeed is very cool.

    I'm gonna tell you what I told Lenlrx when he wanted to use machine learning for bots: I don't think it can be done (i.e. the results won't be good) at least not with the current algorithms. The reason I was saying this is because either you will have to use a huge feature vector to cover the things that the algorithm should consider, in which case the learning process becomes impractically long, or you have to use a small one in which case the end results won't be good. Eventually, he deviated to what I was thinking and I deviated to what he was thinking . Right now I think this can be done, but you have to be careful with what you want to do. Do I think you can write any machine learning algorithm that learns dota and plays it (which is almost what you are trying to do) ? No! Can machine learning be used to improve hard coded bots? Yes (at least I think so)! I think you have to use a hybrid system that relies on hard coded scripts for basic tasks (similar to think functions of modes, but smaller) and uses machine learning for your high-level behavior (similar to what desires are doing right now for default bots, but more advanced). This is why I was trying to push ChrisC to make basic tasks modular so people focus more on high-level things.

    I strongly suggest that you should switch to a hybrid system before getting bad results from what you are currently doing and getting coldhearted (unless you are just experimenting or/and do not have high expectations).

    BTW another thing I think ML can be used for is creating tools that can be used in hard coded scripts, like predicting enemy's movement patterns or how much damage/heal/disable a hero can deal/provide given its level in a teamfight again n heroes etc.
    yeah Im going to be surprised if it works. to be honest, a self-driving car is a piece of piss in comparison to playing dota. but the bigger the challenge, the more fun to try

    I think though even with a hybrid system you dont necessarily need scripting. You do machine-learning on all the different modes, to learn how to effectively lane, how to effectively teamfight etc.
    then you have a higher level machine learning applied to just the decision system, choosing which mode to engage in.

    I always thought the biggest hurdles initially were going to be translating replay variables into inputs/outputs that the bots can train on....and this project has already made a really solid start on that.

    So im very optimistic
    https://github.com/ThePianoDentist/t...dentistdotabot Lina bot which pulls small camp when 'laning' (Aim to work on pulling and stacking bots initially)
    https://github.com/ThePianoDentist/dotabots-ml-tools Parsing data from bot games

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •