pgeon / pgeon-xai
Tormos, A., Abalos, V., Gnatyshak, D., & Alvarez-Napagao, S. (2023, October). Policy graphs in action: explaining single- and multi-agent behaviour using predicates. In XAI in Action: Past, Present, and Future Applications.
pgeon (pgeon-xai) is a Python package that produces explanations for opaque agents using Policy Graphs (PGs).
A Policy Graph is a means to obtain a representation of the behavior of an opaque agent, in the form of a directed graph. Discrete states are mapped to nodes and actions to edges.
Getting started
- Install pgeon with pip:
pip install pgeon-xai
or:
- Download the
pgeon/folder and move it into the root directory of your project. - Install pgeon's requirements with
pip install -r PATH_TO_PGEON_REQUIREMENTS.
Example usage
Generating a Policy Graph
Given a Gymnasium environment and a discretizer, you can generate a PG to describe an opaque agent's behavior with fit().
from pgeon import PolicyGraph
pg = PolicyGraph(environment, discretizer)
pg = pg.fit(agent, num_episodes=1000)
Creating and using a PG-based policy
There exist two PG-based policies. You can select one or the other with PGBasedPolicyMode.
from pgeon import PGBasedPolicy, PGBasedPolicyMode
greedy_policy = PGBasedPolicy(pg, mode=PGBasedPolicyMode.GREEDY)
stochastic_policy = PGBasedPolicy(pg, mode=PGBasedPolicyMode.STOCHASTIC)
# Passing the policy an observation to get an action
obs, _ = environment.reset()
action = greedy_policy.act(obs)
More examples
You can check examples/cartpole/demo.ipynb for a complete breakdown of pgeon's features.
To run the notebook yourself:
- Download the entire repository.
- Install pgeon's requirements with
pip install -r requirements.txt. - Install an extra dependency, rllib, with
pip install "ray[rllib]". - Open and execute
examples/cartpole/demo.ipynb.
Citation
If you use the pgeon library, please cite:
@inproceedings{tormos2023policy,
title={Policy graphs in action: explaining single-and multi-agent behaviour using predicates},
author={Tormos, Adrian and Abalos, Victor and Gnatyshak, Dmitry and Alvarez-Napagao, Sergio},
booktitle={XAI in Action: Past, Present, and Future Applications},
year={2023},
url={https://openreview.net/forum?id=QPqL9xsYOf}
}
Release files for pgeon-xai 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pgeon_xai-1.0.1.tar.gz | 3.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pgeon_xai-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.5 MB
Release files / pgeon_xai-1.0.1.tar.gz
| Download URL | pgeon_xai-1.0.1.tar.gz |
|---|---|
| Size | 3.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7c8d675f0ee264143740a434ea6c0e072ad1b4f607e6fd51f02ceab6442dd3c9
|
|
BLAKE2b-256 checksum How to use checksums |
3cbab0b5cd960494d91396fe711bab4b4447b21733526f3ffcaa7849a8be81a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.7
|
Release files / pgeon_xai-1.0.1-py3-none-any.whl
| Download URL | pgeon_xai-1.0.1-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3c8bfdb12920ef26a76fa20a622a697b1f393170db851cfafb611b7e27b69a46
|
|
BLAKE2b-256 checksum How to use checksums |
e51f7bd9c95163b1edca1fb61ec8d3d3db334daf70ad5e889deb6fa044b682d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.7
|