pytorch-es  by atgambardella

PyTorch implementation of Evolution Strategies for Markov Decision Processes

Created 8 years ago
355 stars

Top 78.5% on SourcePulse

GitHubView on GitHub
Project Summary

This repository provides a PyTorch implementation of Evolution Strategies (ES), a black-box optimization algorithm for training neural networks in reinforcement learning tasks. It is suitable for researchers and practitioners looking for an alternative to policy gradient methods, offering potential for efficient parallelization.

How It Works

The implementation leverages ES to optimize neural network parameters directly, bypassing traditional reinforcement learning techniques like policy gradients. It uses a population-based approach where multiple perturbed versions of a network are evaluated, and gradient updates are derived from the performance of these perturbations. The use of the SELU nonlinearity is noted as a computationally efficient alternative to virtual batch normalization.

Quick Start & Requirements

  • Install via pip install -r requirements.txt (after cloning).
  • Requires Python 3.5+, PyTorch >= 0.2.0, numpy, gym, universe, cv2.
  • Example usage: python3 main.py --small-net --env-name CartPole-v1
  • Official documentation or demo links are not explicitly provided in the README.

Highlighted Details

  • Implements both small networks for simple tasks and Convnet-LSTM for Atari games.
  • Offers options for testing restored checkpoints and rendering environments.
  • The author notes deviations from the original paper, including a different approach to reward passing between workers and not adaptively changing episode length.
  • Performance on Atari games reportedly increased with larger neural network sizes.

Maintenance & Community

  • Contributions via GitHub issues and pull requests are welcomed.
  • No specific community channels (Discord/Slack) or roadmap are mentioned.

Licensing & Compatibility

  • Licensed under the MIT License.
  • Permissive for commercial use and closed-source linking.

Limitations & Caveats

The implementation is based on PyTorch version 0.2.0, which is significantly outdated. The README also mentions an unsupported slow_version branch for managing threads, indicating potential stability or performance issues with certain configurations.

Health Check
Last Commit

8 years ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
1 stars in the last 30 days

Explore Similar Projects

Starred by Evan Hubinger Evan Hubinger(Head of Alignment Stress-Testing at Anthropic), Junxiao Song Junxiao Song(Research Scientist at DeepSeek), and
2 more.

AgentNet by yandexdataschool

0%
298
Deep reinforcement learning library
Created 9 years ago
Updated 8 years ago
Starred by Philipp Moritz Philipp Moritz(Cofounder of Anyscale), Jason Knight Jason Knight(Director AI Compilers at NVIDIA; Cofounder of OctoML), and
1 more.

ARS by modestyachts

0.2%
425
Reinforcement learning via augmented random search
Created 7 years ago
Updated 4 years ago
Feedback? Help us improve.