Skip to content

InsaneMonster/pasqualini2019prngrl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pseudo Random Number Generation: a Reinforcement Learning Approach

Luca Pasqualini, Maurizio Parton

GitHub for a reinforcement learning research project consisting in simulating a novel Random Number Generator (RNG) by Deep Reinforcement Learning.

A RNG is an algorithm generating pseudo-random numbers and in this research project it is approximated by a Deep Neural Network using Reinforcement Learning. The network is trained to "randomly" generate a novel algorithm by Reinforcement Learning, using a deep agent to solve a navigation problem. This navigation task is defined by an N-dimensional environment in which said agent can "move". Starting from a seed state the agent learns how to "move" in the N-dimensional environment in order to reach state with high rewards. The reward is given by the result of the NIST test battery on the sequence at each time step or only at the last time step.

Additional information are given in the related arXiv article.

Link to the published article.

The algorithms used are:
  • Dueling Double DQN (DDDQN) with Prioritized Experience Replay and Gradient-Clipping by using Huber loss
  • Vanilla Policy Gradient (VPG) with rewards-to-go and Generalized Advantage Estimation (GAE-Lambda) buffer
  • Proximal Policy Optimization (PPO) with rewards-to-go and Generalized Advantage Estimation (GAE-Lambda) buffer

License

The same of the article.

Framework used

Compatible with Usienarl v0.5.0

Backend

  • Python 3.6
  • Tensorflow 1.10

About

GitHub for the article Pseudo Random Number Generation: a Reinforcement Learning approach (Luca Pasqualini and Maurizio Parton)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages