SeMi-supervIsed Learning agEnt
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
document
driver
library
torcs
.gitignore
Doxyfile
INSTALL
README.md
clear
makeDriver

README.md

smile

SeMi-supervIsed Learning agEnt

keywords : reinforcement learning, learning from demonstration, TORCS


## How to build
Required packages :
  • plib
  • boost
  • gcc
  • cmake
  • torcs (version 1.3.4 recommanded - doesn't work with >= 1.3.6)

The following works for ArchLinux paths :

git clone https://github.com/matthieu637/smile

#build library
cd smile/library
mkdir build
cd build
cmake ..
make -j4

#build driver for torcs
cd ../../driver/
mkdir build
cd build
cmake ..
make -j4

#copy lib to torcs
sudo make install

How to run the driver

torcs

race -> quick race -> configure race -> accept -> add 33 smile_2 driver (with space) accept -> accept -> new race

You should also remove the other drivers.

How to learn (without display)

cp ~/.torcs/config/raceman/quickrace.xml ~/.torcs/config/dtmrace2.xml #copy config race
sudo chmod o+w /usr/share/games/torcs/ #allow to write the policy
cd ..
./learnIA 2 #wait at least 5 minutes than the perf is higher than 5000 several times

Test my driver after learning

cp ~/.torcs/config/dtmrace2.xml ~/.torcs/config/raceman/quickrace.xml #copy config race
torcs
#race -> quick race -> new race
#Press F2 for a better view and "+" to accelerate time
#For better results you might condiser disable learning & e-greedy policy in this phase
#to do so changes learn to false in smile/driver/include/QLearnGen.hpp:65 + recompile/reinstall driver

Troubleshooting

#you might need to remove some semaphores if you forced an exit
rm -rf /dev/shm/sem.*

Nous devrons développer une bibliothèque indépendante du domaine dans lequel l’agent évolue. Elle fournira plusieurs algorithmes de base de l’apprentissage par renforcement (Q-Learning, SARSA, . . .), plusieurs critères de performance, ainsi qu’une ouverture sur l’apprentissage semi-supervisé : c’est à dire avec les retours de l’expert pris en compte. Dans un premier temps, l’expert pourra simplement compenser la fonction de récompense en précisant si l’agent a bien ou mal agit. Dans un second temps, si le temps le permet, l’expert pourra également agir sur le choix de l’action à entreprendre lors de l’exploration de l’agent, ou encore dire à l’agent s’il est temps d’exploiter ou d’explorer. Parallèlement au développement de la bibliothèque, afin d’avoir une application pratique de la théorie, on utilisera TORCS qui simule des courses de voiture en 3D dans lequelles on intégrera nos propres conducteurs. Nous modifierons également l’interface TORCS pour intégrer les retours positifs ou négatifs de l’expert.

Démo : https://www.youtube.com/watch?v=MirqnEToUVg


Code in library/ have been used in

Teacher-Student Framework: A Reinforcement Learning Approach
Zimmer, Matthieu; Viappiani, Paolo; Weng, Paul
AAMAS Workshop Autonomous Robots and Multirobot Systems 2014