Welcome to PyNOL!

PyNOL is a Python package for Non-stationary Online Learning.

The purpose of this package is to provide a general framework to implement various algorithms designed for online learning in non-stationary environments. In particular, we pay special attention to those online algorithms that provably optimize the dynamic regret or adaptive regret, two widely used performance metrics for non-stationary online learning.

There are various algorithms devised to optimize the measures (dynamic regret or adaptive regret) during the decades [DGSS15, HS07, ZLZ19, ZLZ18, ZWZZ21, ZZZZ21, Zin03]. By providing a unified view to understand many algorithms proposed in the literature, we argue that there are three critical algorithmic components: base-learner, meta-learner, and schedule. With such a perspective, we present systematic and modular Python implementations for many online algorithms, packed in PyNOL. The package is highly flexible and extensible, based on which one can define and implement her own algorithms flexibly and conveniently. For example, we also implement some classical algorithms for online MDPs based on this package [CLW21a, RM21, ZLZ22, ZN13].

Installation

PyNOL is currently hosted on PyPI. It requires Python >= 3.8. You can simply install PyNOL from PyPI with the following command:

$ pip install pynol

To use PyNOL by source code, download this repository and run the following command:

$ python setup.py build
$ python setup.py install

Community