I'm new to machine learning and reinforcement learning, and I'm attempting to create an AI agent that learns to play Snake. I am having trouble choosing / developing a neural network architecture that can work with the shape of my input / output vectors.
My input is a 3x10x10 tensor, basically 3 layers of a 10x10 grid the snake moves on (I only use 0s and 1s throughout the tensor, mark the position of the snake's body parts in the first layer, mark the apple's position on the second layer, and the snake's head position on the 3rd).
For my output, I'm looking for a vector of 4 values, corresponding to the 4 possible moves a player has available (change direction to up / down / left / right).
I would appreciate any recommendations on how to go about choosing an architecture in this case, as well as any thoughts regarding the way I chose to encode my game state into an input vector for the agent to train.