Arcade-learning-environment
L'Arcade Learning Environment (ALE) est un cadre simple qui permet aux chercheurs et aux amateurs de développer des agents d'IA pour les jeux Atari 2600. Il...
Choisir une liste...
L'environnement d'apprentissage Arcade
L'Arcade Learning Environment (ALE) est un cadre simple qui permet aux chercheurs et aux amateurs de développer des agents d'IA pour les jeux Atari 2600.Il est construit sur l'émulateur Atari 2600Stellaet sépare les détails de l'émulation de la conception de l'agent. Cettevideoreprésente plus de 50 jeux actuellement pris en charge dans l'ALE.
Pour un aperçu de nos objectifs pour l'ALE lireThe Arcade Learning Environment: An Evaluation Platform for General Agents. Si vous utilisez ALE dans votre recherche, nous vous demandons de citer ce document en référence à l'environnement. VoirCitingsection pour les entrées BibTeX.
Caractéristiques
- Cadre orienté objet avec support pour ajouter des agents et des jeux.
- Noyau d'émulation non couplé des modules de rendu et de génération de sons pour une émulation rapide avec des dépendances de bibliothèque minimales.
- Extraction automatique du score et du signal de fin de partie pour plus de 100 jeux Atari 2600.
- Code multiplateforme (compilé et testé sous macOS, Windows et plusieurs distributions Linux).
- Les liaisons Python à traversnanobind.
- Aide aux autochtonesGymnasium, une fourche maintenue de Gym OpenAI.
- Atari roms sont emballés dans l'emballage pip.
- Vectorisateur à base de C++ pour agir simultanément en plusieurs ROM.
- Support de l'assemblage Web pour exécuter ALE dans le navigateur
Démarrer rapidement
L'ALE prend actuellement en charge trois interfaces différentes : C++, Python, Gymnasium et WASM.
Python
Vous devez simplement installer leale-pypaquet distribué via PyPI:
pip install ale-py
Remarque : Assurez-vous d'utiliser une version à jour depipou l'installation peut échouer.
Vous pouvez maintenant importer l'ALE dans vos projets Python en fournissant une interface directe à Stella pour interagir avec les jeux
from ale_py import ALEInterface, roms
ale = ALEInterface()
ale.loadROM(roms.get_rom_path("breakout"))
ale.reset_game()
reward = ale.act(0) # noop
screen_obs = ale.getScreenRGB()
Gymnasium
Pour plus de simplicité pour installer ale-py avec Gymnasium,pip install "gymnasium[atari]"doit installer tous les modules et ROM nécessaires. Voir Gymnasiumintroductory pagepour la description de l'API à l'interface avec l'environnement.
import gymnasium as gym
import ale_py
gym.register_envs(ale_py) # unnecessary but helpful for IDEs
env = gym.make('ALE/Breakout-v5', render_mode="human") # remove render_mode in training
obs, info = env.reset()
episode_over = False
while not episode_over:
action = policy(obs) # to implement - use `env.action_space.sample()` for a random policy
obs, reward, terminated, truncated, info = env.step(action)
episode_over = terminated or truncated
env.close()
Pour exécuter avec des actions continues, vous pouvez simplement modifier l'appel àgym.makeci-dessus avec:
env = gym.make('ALE/Breakout-v5', continuous=True, render_mode="human")
Pour tous les environnements disponibles et leur description, voirgymnasium atari page.
Un environnement vectorisé avec prétraitement, écrit en C++, est également disponible avecgym.make_vec("ALE/Breakout-v5", num_envs=10).
Voirvector-environmentpour plus d'informations.
C++
Les instructions suivantes supposent que vous avez un compilateur C++17 valide etvcpkginstallé.
Nous utilisons CMake comme citoyen de première classe, et vous pouvez utiliser l'ALE directement avec n'importe quel projet CMake. Pour compiler et installer l'ALE, vous pouvez exécuter
mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --target install
Il y a des drapeaux optionnels-DSDL_SUPPORT=ON/OFFpour basculer le support SDL (c.-à-d,display_screenetsoundsoutien;OFFpar défaut),-DBUILD_CPP_LIB=ON/OFFpour construire
desale-libObjectif C++ (ONpar défaut), et-DBUILD_PYTHON_LIB=ON/OFFpour construire l'emballage pybind11 (ONpar défaut).
Enfin, vous pouvez lier contre l'ALE dans votre propre projet CMake comme suit
find_package(ale REQUIRED)
target_link_libraries(YourTarget ale::ale-lib)
Assemblée Web
L'ALE peut être compilé sur WebAssembly pour être utilisé directement dans les navigateurs Web, permettant des démos interactives, des outils éducatifs et des expériences RL basées sur navigateur sans aucune installation.
Ceci doit être utilisé par l'intermédiaire de NPM (> npm install @farama/ale-wasm) ou par un zip compilé autonome (voir les artefacts de sortie).
Exemple d'utilisation de NPM:
import createALEModule from './ale.js';
const ALE = await createALEModule();
const ale = new ALE.ALEInterface();
await ale.loadROM('roms/breakout.bin');
ale.resetGame();
while (!ale.gameOver()) {
const actions = ale.getMinimalActionSet();
const action = actions[Math.floor(Math.random() * actions.length)];
const reward = ale.act(action);
}
Pour plus d'exemples de NPM et d'installation autonome, voirdocs/wasm/.
Citation
Si vous utilisez l'ALE dans votre recherche, nous vous demandons de citer ce qui suit.
M. G. Bellemare, Y. Naddaf, J. Veness et M. Bowling. The Arcade Learning Environment: An Evaluation Platform for General Agents, Journal of Artificial Intelligence Research, Volume 47, pages 253-279, 2013.
Au format BibTeX:
@Article{bellemare13arcade,
author = {{Bellemare}, M.~G. and {Naddaf}, Y. and {Veness}, J. and {Bowling}, M.},
title = {The Arcade Learning Environment: An Evaluation Platform for General Agents},
journal = {Journal of Artificial Intelligence Research},
year = "2013",
month = "jun",
volume = "47",
pages = "253--279",
}
Si vous utilisez l'ALE avec des actions collantes (flagrepeat_action_probability) ou si
vous utilisez les différentes saveurs du jeu (mode et interrupteurs de difficulté), nous vous demandons
que vous citez également:
M. C. Machado, M. G. Bellemare, E. Talvitie, J. Veness, M. J. Hausknecht, M. Bowling. Revisiter l'environnement d'apprentissage Arcade : Protocoles d'évaluation et problèmes ouverts pour les agents généraux, Journal of Artificial Intelligence Research, Volume 61, pages 523-562, 2018.
En format BibTex:
@Article{machado18arcade,
author = {Marlos C. Machado and Marc G. Bellemare and Erik Talvitie and Joel Veness and Matthew J. Hausknecht and Michael Bowling},
title = {Revisiting the Arcade Learning Environment: Evaluation Protocols and Open Problems for General Agents},
journal = {Journal of Artificial Intelligence Research},
volume = {61},
pages = {523--562},
year = {2018}
}
Si vous utilisez le CALE (Continuous ALE), nous vous demandons de citer également ce qui suit :
Jesse Farebrother et Pablo Samuel Castro. Cale: Environnement d'apprentissage en arcade continue. Progrès dans les systèmes de traitement de l'information neuronale, 2024.
En format BibTex:
@article{farebrother2024cale,
title={C{ALE}: Continuous Arcade Learning Environment},
author={Jesse Farebrother and Pablo Samuel Castro},
journal={Advances in Neural Information Processing Systems},
year={2024}
}