3 ms·
One really cool aspect of this: For the actual game state representation that the model would receive as input, we found that passing an "image" encoding to th
by sillysaurusx 6y ago
One really cool aspect of this:
For the actual game state representation that the model would receive as input, we found that passing an "image" encoding to the CNN resulted in the best performance, beating all benchmark procedural agents and other types of networks (e.g. fully connected).
It sounds like they literally decompose the game screen into inputs. E.g. in FPS games, your health is often displayed in the exact same spot; it passes a screenshot of that into the network.
Or maybe not. Maybe they decode the game state into an "image" in the sense that health is represented as a single pixel that ranges from RGB 0,0,0 to RGB 255,255,255. That would make more sense, but it's also slightly less exciting. Theoretically the model should be able to infer what health means simply by having enough experience, even if it's a more complex representation like Arabic numerals rather than a handcrafted input.
Anyone know if there are any other details, like model weights (ha ha, not likely), an architecture diagram, a paper, or some code snippet from some prototype that the researchers used for inspiration? The "image" representation is really quite interesting to me, since I hadn't thought about feeding data to networks that way. Theoretically a GAN could learn a thing or two about the world from having this sort of "image" input too.
- pedrosorio 6y ago> It sounds like they literally decompose the game screen into inputs (...) Or maybe not. Maybe they decode the game state into an "image" (...) The GIF above "An example game state representation used to train the neural network" makes it seem like it's the latter. Some of the variables have an unexpected representation. For example to represent "chimera health" with value H, it seems like they just use the 3 rows at the top, with the first H pixels "on" (green) and the remaining "off" (black). Same thing for "Chimera Power" and "Link Energy". I guess this might make sense since they are using a CNN, but I wonder why that works better than using a different architecture and passing each of these values as a single input.