Announcement

Collapse

Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.



In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.



All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

dota2_nn: Extremely WIP deep supervised learning full-takeover bots

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • TheP1anoDentist
    replied
    Ill try and run it today. Looks cool.

    Would be nice to see a sample data file. So I can see what the inputs are...and how determine output actions.

    i.e. I imagine you can get attacks from combatlog damage to other things.
    you could use spell usage in a similar way if thats the case, but working out where to target aoe spells would be do-able but not trivial.

    I was considering just starting out doing it with a 1v1 mid bot for simplicity, but one thing thats a big part of 1v1 is drawing creep aggro and I couldnt figure an easy way to extract that information from dota2 replay data.
    I think you could possibly track creep positions, see that theyve moved towards a hero despite having other enemy creeps in range...inferring they've been aggroed. but again its not simple

    I imagine there's going to be so many inputs for 'playing dota in general', will need a lot of nodes, and so you'll literally need >1million games to not overfit

    "you can only download 100 replays per 24 hours" dotabuff and opendota must get around this somehow. although they may have to use thousands of steam accounts to do it

    Leave a comment:


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

    https://github.com/axetion/dota2_nn

    This is the start of a crude deep learning bot using Torch I've been working on. Unlike most of the previous ML bots here, this is purely supervised learning, which means that a set of examples is constructed ahead of time for the models to learn from as opposed to slowly learning in-game (unsupervised). These examples are made by extracting basic information on actions made by the top 3 players on the winning team (currently measured by kills, I intend to use fantasy Dota points instead as soon as I figure out how to extract them) from replays using Dotabuff's excellent Manta replay parser (written in Go) along with some nasty data munging of the bowels of the Source engine.

    Currently installation is not very streamlined (I intend to package up the server that handles the Torch requests into a single executable as soon as the bots are ready for people to actually play against):

    - Install Torch
    - Install dependencies for the server:

    Code:
    luarocks install luajson
    luarocks install uuid
    
    luarocks install https://raw.githubusercontent.com/benglard/waffle/master/waffle-scm-1.rockspec
    - Extract repo to <steam path>/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/
    - Start the server with
    Code:
    th <steam path>/steamapps/common/dota\ 2\ beta/game/dota/scripts/vscripts/server/server.lua
    before starting a match

    I haven't included any pre-trained models with this, since currently only moving and attacking is working (no purchasing items yet) and I don't have the replays to make good models (I tried with 40 replays, which sounds like a lot until you realize that that accounts to 1-2 matches per hero at most which is very little to generalize from) -- the best way people can contribute is by getting me more replays, since you can only download 100 replays per 24 hours. To train your own models:

    - Get Go
    - Clone repo (if you're doing it from the command line, be sure to use the --recursive option)
    - If you're on Windows, run set "GOPATH=%cd%". Otherwise (OS X, Linux) run export GOPATH=`pwd`
    - Build the corpora from the replays:
    Code:
    go run corpus_builder.go <replay files...>
    - Train models:
    Code:
    th trainer.lua
    - Move ability_data.lua to <steam path>/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots
    - Move the data folder to <steam path>/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/server

    This is still very much a WIP, but I wanted to get it out a little early to demonstrate the concept and get some feedback
    Last edited by axetion; 01-21-2018, 07:18 PM.
Working...
X