safemutations
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE.md
README.md Initial commit Jan 16, 2018
SConstruct Initial commit Jan 16, 2018
colors.py Initial commit Jan 16, 2018
experiment_runner.py
hard_maze.txt
hard_maze.txt.npy
maze.cpp Initial commit Jan 16, 2018
maze.h
maze_domain.py
maze_env.py
mazesim.i
mazesim.py
mazesim_wrap.cxx
pytorch_helpers.py
recurrent.py
recurrent_domain.py
requirements.txt Initial commit Jan 16, 2018
sm_simple.py

README.md

Safe Mutations for Deep and Recurrent Neural Networks through Output Gradients

Code for a pytorch implementation of the mutation operators from the paper.

This repository contains code for the illustrative experiments, the recurrent parity task, and the breadcrumb hard maze task.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • PyTorch -- version 0.2.0_2 was what was used in the experiment
  • Python -- version 2.7
  • PyGame -- only relevant for visualization
  • SCons -- to build the hard maze domain

Building

If you want to run the breadcrumb hard maze experiment, you will need to install SCons and run the command scons in the working directory, which should build from source the python module. Note that the current release requires python 2.7 (although it is likely possible to port it to python 3).

Running the Illustrative Experiments

sm_simple.py contains code to recreate the illustrative experiments, and can be invoked in the following way:

python sm_simple.py --domain [domain] --mutation [method] --mutation_mag [float]

The parameter domain can be one of: easy, medium, or washout (for the gradient-washout task).

The parameter mutation can be one of: control, SM-G-SUM, SM-G-SO, SM-G-ABS, or SM-R.

The parameter mutation_mag can be set to an arbitrary float value. Parameter values used in the paper's experiments can be found in the appendix.

Running Other Experiments

experiment_runner.py contains code to run experiments in the recurrent parity task and the breadcrumb hard maze. It can be invoked in the following way:

``python experiment_runner.py --domain [domain] --mutation [method] --mutation_mag [float]```

The parameter domain can be one of: classification (for the recurrent parity task) or breadcrumb_maze (for the breadcrumb_hard_maze).

The parameter mutation can be one of: control, SM-G-SUM, SM-G-SO, SM-G-ABS, or SM-R.

The parameter mutation_mag can be set to an arbitrary float value. Parameter values used in the paper's experiments can be found in the appendix.

License

This project is licensed under the MIT License - see the LICENSE.md file for details