Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matthieu637/smile
SeMi-supervIsed Learning agEnt
https://github.com/matthieu637/smile
Last synced: 24 days ago
JSON representation
SeMi-supervIsed Learning agEnt
- Host: GitHub
- URL: https://github.com/matthieu637/smile
- Owner: matthieu637
- Created: 2013-02-04T20:22:47.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-08-01T13:46:33.000Z (over 8 years ago)
- Last Synced: 2024-03-19T03:32:15.749Z (11 months ago)
- Language: C++
- Size: 40 MB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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 raceYou 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](https://matthieu-zimmer.net/publications/ARMS2014.pdf)
Zimmer, Matthieu; Viappiani, Paolo; Weng, Paul
AAMAS Workshop Autonomous Robots and Multirobot Systems 2014