Replies: 4 comments 10 replies
-
I believe that conditional action trees are much more elegant, scalable and human understandable. |
Beta Was this translation helpful? Give feedback.
-
Awesome stuff, I enjoyed the talk you gave on this a while back! I'll have to read the paper and think about this for a bit before I can form a strong opinion so I just have some high-level comments for now.
|
Beta Was this translation helpful? Give feedback.
-
I think that conditional action trees are the way to go. If we have the action space represented as a CAT, we can always go back and enumerate/quantize it later. As a guiding principle, I think we would want to express our action spaces in a compositional way. e.g. I would think about how someone else could could create a parallel implementation of conditional action trees, that would work the same as our implementation, and would allow mutual nesting. |
Beta Was this translation helpful? Give feedback.
-
For some CAT code for how I was doing exploration and masking pretty efficiently (batched inference over the tree structure): |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
At the moment I believe the API design covers 2-layer actions ... "select an entity and then perform an action" which i think is covered by the
SelectEntityActionSpace
.However in some more complicated games there may be an arbitrary number of action "factors" or "parts", where each action "part" is dependent on the selection of the previous part.
An example of this would be in Alpha Star, where the action might contain a sequence of smaller sub-actions: "select units" -> "select some action (move, attack, fly etc)" -> "select destination xy".
Each "part" of the action can also change the mask which is dependent on the previous selected "part".
I think the DoTa paper dealt with this by effectively quantizing all the possilble action combinations (yeilding a huge action space).
In my own work I've dealt with this by building a "conditional action tree", which effectively contains all the valid actions and masks for each part, and the actions are constructed by traversing this tree.
What do we think is the right method to persue for these kinds of action spaces?
Beta Was this translation helpful? Give feedback.
All reactions