ARCADES
Author: Alexis BRENON, Date: 2017-12-05
What is it?
ARCADES stands for Adaptive Reinforced Context-Aware Deep Decision System. It is, at the same time, a proof a concept of using Deep Q-Network for decision making in smart-home, and a library implementing deep reinforcement learning.
For more informations, let's refer to these publications:
- Brenon (2017). Modèle profond pour la prise de décision adaptative en habitat intelligent
- Mnih et al. (2015). Human-level control through deep reinforcement learning
How to use it?
This repository is composed of different branches.
The master
branch contains most of the source code:
- The
arcades
folder contains the code of the library. - The
assets
folder contains some binary files used by the code. - The
data
folder contains some real data. - The
public
folder contains the generated documentation (if any). - More folders will come with different tools like
tsne
ordeepdream
. - Many scripts, detailed below.
The xp/*
branches are related to an experiment.
Most of the time they are closed with a tag (and if not, they should) allowing reproducibility of the experiments.
At the root of the repository, you can find some scripts (shell or Lua ones). Here is a brief description of each:
install_dependencies.sh
try to install all dependencies (listed in Dependencies) requiredmain.lua
load ARCADES and launch an experiment given its arguments. ARCADES should be updated to rely on a configuration file (JSON or so) to avoid these tricky parsing and instantiations.run.lua
is a wrapper, which builds a well formed arguments list and finally callsmain.lua
.expe_template.lua
is a template file used to create experiments. It defines parameters and then callrun.lua
.debug.lua
is an instance of theexpe_template
, used to... Debug?test.lua
is an instance of theexpe_template
used to test code (short experiment).cross-val.sh
run multiple experiment and changing training and testing sets each time.cross-val-results.sh
looks for experiment results in a directory and build a resulting metrics file.
Finally, the config.ld
file is the configuration file of the LDoc utility used to build the documentation.
Dependencies
This project rely on dependencies installed by the install_dependencies.sh
script.
Some are Lua libraries, such as:
Others are C libraries that you have to install yourself:
- libglib2.0-0: GLib objects management.
- libcairo2: graphics rendering (using GLib objects).
- librsvg2-2: SVG rendering.