• Stars
    star
    487
  • Rank 89,766 (Top 2 %)
  • Language
    Python
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Foundations of Reinforcement Learning

A textbook teaching foundational ideas in reinforcement learning with examples in finance. Written by Ashwin Rao and Tikhon Jelvis.

Reinforcement Learning (RL) is emerging as a viable and powerful technique for solving a variety of complex business problems across industries that involve Sequential Optimal Decisioning under Uncertainty. Although RL is classified as a branch of Machine Learning (ML), it tends to be viewed and treated quite differently from other branches of ML (Supervised and Unsupervised Learning). Indeed, RL seems to hold the key to unlocking the promise of AI – machines that adapt their decisions to vagaries in observed information, while continuously steering towards the optimal outcome. It’s penetration in high-profile problems like self-driving cars, robotics and strategy games points to a future where RL algorithms will have decisioning abilities far superior to humans.

Getting the Book

The first edition of the book is now available from Routledge. You can:

You can also download errata for the print version.

Getting the Code

The rl directory in this repo contains the code used in this book, with a simple framework for reinforcement learning as well as fleshed out examples for each chapter.

Working with Python and venv

The Python code for the book requires a few additional libraries. We can manage our Python dependencies with a venv.

First, create a venv:

> nix-shell
[nix-shell:~/Documents/RL-book]$ python -m venv .venv

Then, each time you're working on this project, make sure to activate the venv:

> source .venv/bin/activate

Once the venv is activated, you should see a (.venv) in your shell prompt:

(.venv) RL-book:RL-book>

Now you can use pip to install the needed dependencies inside the venv:

(.venv) RL-book:RL-book>pip install -r requirements.txt

If you want additional libraries, you can install them explicitly:

(.venv) RL-book:RL-book> pip install matplotlib

More Repositories

1

Simple-Prolog

A simple Prolog interpreter
Haskell
43
star
2

inductive-mazes

Code for my blog post "Generating Mazes with Inductive Graphs"
Haskell
37
star
3

Cow

Semantic Version Control mk II.
Haskell
37
star
4

modular-arithmetic

A useful type for working with integers modulo some constant.
Haskell
30
star
5

array-forth

A simple interpreter and superoptimizer for the F18A instruction set used by GreenArrays chips.
Haskell
26
star
6

Reactive-Life

A functional reactive GUI for John Conway's Game of Life.
Haskell
25
star
7

talks

Slides for my talks at various meetups.
JavaScript
21
star
8

dotfiles

Most of my system configuration files.
Emacs Lisp
20
star
9

imp

Some scripts for analyzing IMP programs with the Z3 automatic theorem prover, originally written for my Compose 2016 talk.
Haskell
17
star
10

maze

A simple JavaScript utility for drawing mazes as well as a program to find some statistics about them.
JavaScript
10
star
11

Semantic-Version-Control

A project for the 2011 Yahoo hackathon at Berkeley
JavaScript
9
star
12

TPL

A silly little programming language.
Haskell
9
star
13

javascript-card-games

Automatically exported from code.google.com/p/blarg
HTML
8
star
14

js-scheme

A Scheme interpreter written in JavaScript
JavaScript
6
star
15

reflex-ui

A rough draft of a higher-level UI framework Reflex FRP and Reflex DOM.
Haskell
5
star
16

website

My website.
HTML
4
star
17

array-forth-sketch

Some utilities for generating array-forth programs to run on the sketch synthesizer.
Haskell
4
star
18

Maptac-Chess

A JavaScript chess game written in high school
JavaScript
3
star
19

mote-el

An Emacs minor mode for interactive Haskell development with Mote
Emacs Lisp
3
star
20

simulation

A 2D polygon collision simulation originally written for A.S. physics in 2009.
Java
3
star
21

adaptive-radix-trees

A Haskell implementation of (persistent) adaptive radix trees.
Haskell
2
star
22

cs164-mode

A simple Emacs mode for the cs164 language
Emacs Lisp
2
star
23

array-forth-mode

An Emacs mode for editing arrayForth and colorForth.
Emacs Lisp
2
star
24

Gosu-Mode

A set of Emacs modes for the Gosu language.
Emacs Lisp
1
star
25

old-resume

The LaTeX files for my resume
TeX
1
star
26

Silly-Chat

A simple node js chat server and client using Comet; nothing special.
JavaScript
1
star
27

Random-JS

Just some random JavaScript utilities.
JavaScript
1
star
28

ProgViz

A visual debugger that helps you visualize algorithms as you're writing them
JavaScript
1
star
29

haskell-project-mode

A minor mode for managing multiple Haskell projects.
Emacs Lisp
1
star
30

resume

My resume
Nix
1
star
31

seven-guis-reflex

a small project to learn how to use Reflex FRP based on the "Seven Tasks" GUI benchmark
Haskell
1
star