When agents in a multi-robot system move, they need to adapt their paths to account for potential collisions with other agents and with static obstacles. Existing distributed navigation methods compute motions that are optimal locally but do not account for the aggregate motions of all the agents. When there are many agents that move in a crowded space, the result is an inefficient global behavior. To address this issue, we propose a new approach which leverages techniques from machine learning and game theory. Agents using our approach dynamically adapt their motion depending on local conditions in their current environment. We validate our approach experimentally in a variety of scenarios and with different numbers of agents. When compared to other machine learning techniques, our approach produces motions that are more efficient and make better use of the space, allowing agents to reach their destinations faster.