hantek / baby-ai-game

Prototype of a game where a reinforcement learning agent is trained through natural language instructions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Baby AI Game

Prototype of a game where a reinforcement learning agent is trained through natural language instructions.

Installation

Requirements:

  • Python 3
  • OpenAI gym
  • numpy
  • PyQT5
  • PyTorch
  • matplotlib
  • nltk

Start by manually installing PyTorch.

Then, clone the repository and install the other dependencies with pip3:

git clone https://github.com/maximecb/baby-ai-game.git
cd baby-ai-game
pip3 install -e .

Usage

To run the interactive UI application:

./main.py

Offline training code implementing PPO can be run with:

python3 rl/main.py --env-name AI-Game-v0 --no-vis --num-processes 32 --algo ppo

About this Project

You can find here a presentation of the project : Baby AI Summary

The Baby AI Game is a game in which an agent existing in a simulated world will be trained to complete task through reinforcement learning as well as interactions from one or more human teachers. These interactions will take the form of natural language, and possibly other feedback, such as human teachers manually giving rewards to the agent, or pointing towards specific objects in the game using the mouse.

The goal of the project is to explore ways in which deep learning can take inspiration from nature (ie: how human babies learn), and to make contributions to the field of reinforcement learning. In particular, language learning, as well as teaching agents to complete actions spanning many (eg: hundreds) of time steps, or macro-actions composed of multiple micro-actions, are still open research problems.

Some possible approaches to be explored in this project include meta-Learning and curriculum learning, the use of intrinsic motivation (curiosity), and the use of pretraining to give agents a small core of built-in knowledge to allow them to learn from human agents. With respect to build-in knowledge, Yoshua Bengio believes that the ability for agents to understand pointing gestures in combination with language may be key.

TODO: find child development articles about pointing and naming if possible. If anyone can find this, please submit a PR.

Relevant Materials

Agents and Language

Zero-Shot Task Generalization with Multi-Task Deep Reinforcement Learning

Beating Atari with Natural Language Guided Reinforcement Learning

Deep Tamer

Agent-Agnostic Human-in-the-Loop Reinforcement Learning

Trial without Error: Towards Safe Reinforcement Learning via Human Intervention

Grounded Language Learning in a Simulated 3D World

Mastering the Dungeon: Grounded Language Learning by Mechanical Turker Descent

Programmable Agents and associated RLSS 2017 talk by Nando de Freitas

FiLM: Visual Reasoning with a General Conditioning Layer

Reinforcement Learning

Surprise-Based Intrinsic Motivation for Deep Reinforcement Learning

Count-Based Exploration with Neural Density Models

Deep RL Bootcamp lecture on Policy Gradients

Proximal Policy Optimization (PPO) Algorithms and blog post by OpenAI

Asynchronous Methods for Deep Reinforcement Learning (A3C)

Meta-Learning

HyperNetworks

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

Learning to learn by gradient descent by gradient descent

Games

Learning Language Games through Interaction

Nintendogs (Nintendo DS game)

Cognition, Infant Learning

A Roadmap for Cognitive Development in Humanoid Robots

Source Code

PyTorch Implementation of A2C, PPO and ACKTR

Deep NLP Models in PyTorch

About

Prototype of a game where a reinforcement learning agent is trained through natural language instructions

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 100.0%