Closed deontologician closed 7 years ago
Blah, I was excited for this one and it was a bit of a letdown. What they do is create an associative memory that is isomorphic to the actual playfield in the game. Then they let the agent store some arbitrary feature vector at a position the corresponds to the position of the agent. How do they get the position of the agent? Well they cheat and just take it out of the game engine and hand it to the agent architecture. They have a section at the end where they face this issue, but they solve it by changing it to be agent relative movements (so if the agent moves forward, you change the write location up by some delta).
It's neat in that it allows the agent to have some kind of spatial memory (think memory palace), but I'm skeptical it will do well on multitask or transfer since the maps that are created are very clearly tied to a specific game map. This might yield fruitful work eventually, but it's too raw to be useful in the near future. It's not a robust solution because you need an oracle to provide you with either the dimensions of the world you're in, or the exact coordinates you're at.
Recommendation: strong irrelevant
Well they cheat ... very clearly tied to a specific game map
I've been keenly observing anything which can be paired with RatSLAM for real-world applications.
The cheating doesn't matter so much, can get those x/y/z
from a RatSLAM Posecell
network. With GridCell
wrapping from one side to the other, size of environment matters less only the size of the network representing it.
or the exact coordinates you're at
Your max activation on any 3D vector is something, shouldn't really need to be exact if it helps solve the task, given that memory is read again when that cell activates most strongly as the target location.
edit: Just passing by and adding perspective, not overly interested in the benchmarking findings on these things only adhoc integration into hobby experiments. Was searching for code and ended up here.
https://arxiv.org/abs/1702.08360