BayesMaze -- Humans Teaching Language to Machines

A growing area of focus of my AI-related activities is how machines can learn directly from humans (rather than just from data), and conversely how we can better understand human behavior from AI behavior. I call this "human-machine learning". Such interactions will be a key part of the evolution from current (impressive but narrow) achievements of machine learning to artificial general intelligence.

This blog post is a call for collaboration on a demonstration project in this area.

OpenAI "Debate" Proposal

OpenAI has recently advanced the thinking in this area in a fascinating blog post AI Safety via Debate, which proposes using human evaluation of debates between AI agents to better understand the AIs' functions. After proposing this general model, the blog states that "today’s natural language modeling is insufficient for this task".

So to provide a concrete example, the blog describes a preliminary experiment involving guessing (by a machine classifier "judge", not a human) of which handwritten numeric digit (0 through 9, from the widely-used MNIST database) is depicted, based upon only six non-black pixels (out of 784 pixels in each image). The pixels are presented by two other machine agents -- one trying to convey the real digit to the human, and the other trying to convey a different digit to the human (but using only pixels from the real digit).

The result of this experiment was that the judge was able to guess the right digit 88.9% of the time (between the two choices), significantly better than the 59.4% success rate of the classifier from six pixels without the "debate" between the agents (although it's not entirely clear from the blog post whether the judge in the latter case was choosing among 10 or only 2 digits, or how the pixels were selected).

BayesMaze Idea

Reading about the OpenAI experiment prompted me to seek crowdsourced help for a different demonstration of human-machine learning that I have been developing for the past couple of months. I call the idea BayesMaze -- "Bayes" comes from my interest in Bayesian probabilistic methods for machine learning (including because human interactions inherently involve multiple dimensions of uncertainty); "Maze" will be self-evident.

The goal of the experiment is for humans to teach a machine agent (a) to understand natural language instructions on how to navigate a maze and (b) to be able to give such instructions to a human. The key constraints are:
1. The human and machine are working together in a defined environment with a defined goal.

2. At the start of the experiment, the machine agent (like a human baby) has no knowledge of human language, but would be able to react to sentiment in human language. (Without this constraint, the problem is trivial -- it would be easy to build a chatbot with knowledge of language that can explain or understand how to navigate a maze.)

This experiment avoids two of the constraints of the OpenAI "debate" experiment by (a) using natural language and (b) involving humans in the learning process.

I do not claim that this idea has any obvious immediate practical application. And I know there is plenty of ongoing work on how chatbots can learn from humans (for example, here and here). But I believe that substituting a machine agent into a (simple) model of the basic human language learning process may produce interesting insights about machine and human learning.

If you are interested in getting involved (or have any other comments), please reach out! The current version of the specification for the project is below.

BayesMaze Specification

BayesMaze will operate via a publicly-accessible website, on which users can choose either (1) to instruct a machine agent how to navigate a maze or (2) let the machine agent instruct them how to navigate a maze. The logical flow for each of these options is set out below (pseudocode is available upon request, and I am moving slowly towards implementation in Python.)

A. Human Instructs Machine
1. Generate random maze including start point and goal (free resources include Mazify and Maze Generator)
2. Set position to start
3. Human gives command C in natural language
4. Update training of word embeddings for C (likely using word2vec)
5. Generate computer move based upon maze position and structure (portion seen by computer), word2vec embeddings and human command (likely RNN with 4 element output layer for 4 possible directions)
6. Human evaluates move in natural language
7. Evaluate sentiment of human evaluation (likely using NLTK)
8. Update training of RNN move generator based upon command, move, sentiment and whether goal has been reached
9. If goal not reached, return to step 3
10. Output closing message (e.g. number of steps taken)

B. Machine Instructs Human
1. Generate random maze including start point and goal (show start point but not rest of maze)
2. Set position to start
3. Machine calculates optimum move toward goal, out of 4 directions (use free resources)
4. Machine chooses command from library of commands (gathered from human instructing machine above) based upon best sentiment association with chosen move (plus Gaussian noise)
5. (optional) Chosen command evaluated for abusiveness (to avoid human manipulation), likely using sentiment analysis or similar tool
6. Machine gives command in natural language
7. Human moves
8. Machine evaluates human move based upon responsiveness to machine command and progress towards goal
9. Output machine evaluation of move
10. If goal not reached, return to step 3
11. Output closing message
1 like ·   •  0 comments  •  flag
Share on Twitter
Published on May 08, 2018 05:02
No comments have been added yet.