Program Guided Agent ICLR 2020 (Spotlight) Shao-Hua Sun Te-Lin Wu - - PowerPoint PPT Presentation

program guided agent
SMART_READER_LITE
LIVE PREVIEW

Program Guided Agent ICLR 2020 (Spotlight) Shao-Hua Sun Te-Lin Wu - - PowerPoint PPT Presentation

Program Guided Agent ICLR 2020 (Spotlight) Shao-Hua Sun Te-Lin Wu Joseph J. Lim Follow an Instruction to Solve a Complex Task Recipe: cooking fried rice Stir-fry the onions until tender, and repeat this for garlic and carrots, if you have


slide-1
SLIDE 1

Program Guided Agent

ICLR 2020 (Spotlight)

Shao-Hua Sun Te-Lin Wu Joseph J. Lim

slide-2
SLIDE 2

Follow an Instruction to Solve a Complex Task

Recipe: cooking fried rice

Stir-fry the onions until tender, and repeat this for garlic and carrots, if you have soy sauce, add some. Pour 2/3 cups the whisked eggs into the stir-fried and scramble.

slide-3
SLIDE 3

Natural Language Instruction

  • Scoping
  • Coreferences
  • Entities

Recipe: cooking fried rice

Stir-fry the onions until tender, and repeat this for garlic and carrots, if you have soy sauce, add some. Pour 2/3 cups the whisked eggs into the stir-fried and scramble.

Ambiguities in Language

Bandanau et al. in ICLR 2019 Misra et al. “Mapping Instructions to Actions in 3D Environments with Visual Goal Prediction” in EMNLP 2018 Anderson et al. “Vision-and-language navigation: Interpreting visually-grounded navigation instructions in real environments” in CVPR 2018 Misra et al. “Mapping Instructions and Visual Observations to Actions with Reinforcement Learning” in EMNLP 2017 Hermann et al. “Grounded Language Learning in a Simulated 3D World” in arXiv 2017

slide-4
SLIDE 4

Program

Function: cooking fried rice

for item in [onions, garlic, carrots]: if is_there(“soy sauce”): add(“soy sauce”, “pot”) while not tender(item): stir_fry(item) pour(whisked(“eggs”), “pot”, 0.66) scramble(“eggs”)

  • Explicit scoping
  • Resolved Coreferences
  • Resolved Entities

Advantages of Programs

slide-5
SLIDE 5

Problem Formulation

Program

slide-6
SLIDE 6

Problem Formulation

State Program

x3 x1 x0

slide-7
SLIDE 7

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-8
SLIDE 8

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-9
SLIDE 9

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-10
SLIDE 10

Problem Formulation

x4 x1 x0

State Program

x3 x1 x0

Execution

slide-11
SLIDE 11

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-12
SLIDE 12

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-13
SLIDE 13

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-14
SLIDE 14

Problem Formulation

x3 x2 x0

State Program

x3 x1 x0

Execution

slide-15
SLIDE 15

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-16
SLIDE 16

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-17
SLIDE 17

Problem Formulation

x3 x1 x0

State Program

x3 x1 x0

Execution

slide-18
SLIDE 18

Problem Formulation

x3 x1 x1

State Program

x3 x1 x0

Execution

slide-19
SLIDE 19

Exemplar Instructions

def Task(): if is_there[River]: mine(Wood) build_bridge() if agent[Iron] < 3: mine(Iron) place(Iron, 2, 3) else: goto(4, 2) while env[Gold] > 0 : mine(Gold)

def Task(): if is_there[River]: build_bridge() place(Gold, 3, 4) if agent[Gold] = = 1 3: while agent[Gold] <= 12: place(Gold, 8, 3) if agent[Iron] >= 8: place(Wood, 2, 4) elif env[Gold] <= 10: sell(Iron)

Programs Natural Language Instructions

slide-20
SLIDE 20

End-to-end Learning Baseline

Module Module Output Environment Action Policy Goal Program Interpreter Response Query Perception Module Program

def run(): while env[Gold] > 0: mine(Gold) if is_there[River]: build_bridge() place(Wood, 2, 3)

State

3 1

Program State NL Instruction

OR

slide-21
SLIDE 21

Program Guided Agent

Module Module Output Environment Action Policy Goal Program Interpreter Response Query Perception Module Program

def run(): while env[Gold] > 0: mine(Gold) if is_there[River]: build_bridge() place(Wood, 2, 3)

State

3 1

slide-22
SLIDE 22

Program Interpreter

  • Comprehend a given program to 3 categories:
  • Subtasks (actions): what agent should perform
  • Perception: information from the environment
  • Control flow: decide to call different subtasks according to perceived

information

Module Module Output Environment Action Policy Goal Program Interpreter Response Query Perception Module Program

def run(): while env[Gold] > 0: mine(Gold) if is_there[River]: build_bridge() place(Wood, 2, 3)

State

3 1

slide-23
SLIDE 23

Perception Module

  • Extract environmental information for choosing a path in a program
  • Input
  • Query: a symbolically represented query (e.g. is_there[River])
  • State s: environment map and agent inventory status
  • Output
  • Predicted answer to the query (e.g. True/False)

Module Module Output Environment Action Policy Goal Program Interpreter Response Query Perception Module Program

def run(): while env[Gold] > 0: mine(Gold) if is_there[River]: build_bridge() place(Wood, 2, 3)

State

3 1

slide-24
SLIDE 24

Policy

  • Take low-level actions an the environment for fulfilling a subtask
  • Input
  • Symbolically represented subtask (goal) g
  • State s
  • Output
  • Predicted action distribution

Module Module Output Environment Action Policy Goal Program Interpreter Response Query Perception Module Program

def run(): while env[Gold] > 0: mine(Gold) if is_there[River]: build_bridge() place(Wood, 2, 3)

State

3 1

slide-25
SLIDE 25

Result

slide-26
SLIDE 26

Conclusion

  • Specific tasks using programs
  • Leverage the structure of programs with a modular framework

def Task(): if is_there[River]: mine(Wood) build_bridge() if agent[Iron] < 3: mine(Iron) place(Iron, 2, 3) else: goto(4, 2) while env[Gold] > 0 : mine(Gold)

Program

Module Module Output Environment Action Policy Goal Program Interpreter Response Query Perception Module Program

def run(): while env[Gold] > 0: mine(Gold) if is_there[River]: build_bridge() place(Wood, 2, 3)

State

3 1
slide-27
SLIDE 27

Program Guided Agent

ICLR 2020 (Spotlight)

Shao-Hua Sun Te-Lin Wu Joseph J. Lim

Thank You for Your Attention