Skip to content

Reinforcement Learning Agents in C# (Dynamic Programming, Temporal Difference, Deep Q-Learning, Stochastic/Deterministic Policy Gradients)

Notifications You must be signed in to change notification settings

play3577/RainForce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RainForce

Reinforcement Learning Agents in C# (Dynamic Programming, Temporal Difference, Deep Q-Learning, Stochastic/Deterministic Policy Gradients)

RainForce is the proper .Net port of reinforce.js In particular, the library currently includes:

  • Dynamic Programming methods FULLY PORTED
  • (Tabular) Temporal Difference Learning (SARSA/Q-Learning) <<<in progress>>>>
  • Deep Q-Learning for Q-Learning with function approximation with Neural Networks FULLY PORTED
  • Stochastic/Deterministic Policy Gradients <<<I woun't even touch this mess>>>>

Code Sketch

A typical usage might look something like:

var rnd = new Random();
var state = new [] {
 rnd.Next(min, max), rnd.Next(min, max), rnd.Next(min, max), rnd.Next(min, max)
};
var opt = new TrainingOptions {
 Alpha = 0.001,
  Epsilon = 0.5,
  ErrorClamp = 0.002,
  ExperienceAddEvery = 10,
  ExperienceSize = 500,
  ExperienceStart = 0,
  HiddenUnits = 5,
  LearningSteps = 100
};
//we take 4 states 
//we have 2 actions
var agent = new DQNAgent(opt, state.Length, 2);
//get action
var action = agent.Act(state);
//reward result
agent.Learn(1);

You can find out more about Reinforcement Learning Agents on karpathy's website.

License

MIT.

Notes

This might be the component you are looking for

About

Reinforcement Learning Agents in C# (Dynamic Programming, Temporal Difference, Deep Q-Learning, Stochastic/Deterministic Policy Gradients)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages