owned this note changed 4 days ago
Published Linked with GitHub

GSoC 2025 - DL Forecasting Balgopal

tags: aeon-gsoc

Contributor: Balgopal Moharana
GSoC page: https://summerofcode.withgoogle.com/organizations/numfocus/projects/details/arjEn266
Project: aeon - Deep Learning for Forecasting
Project length: 12 weeks
Mentors: Ali Ismail-Fawaz, Tony Bagnall, Matthew Middlehurst
Mid-project evaluation: July 14
Final evaluation: September 1
Blog link: https://medium.com/@lucifer4073/gsoc-25-journey-af8e3e0c2621
Regular meeting time: 15:00 Monday UTC
Meeting time availability: 14:00 - 18:00 UTC

Project Summary

Time series forecasting is paramount in many domains, including finance, healthcare, energy, and climate science. This project suggests incorporating deep learning-based forecasting models—Informer, TCN, and DeepAR—into the aeon/tookit. The objectives are to construct an efficient and scalable framework for forecasting that accommodates top-performing models, is compatible with Aeon’s data management, and provides stable training, evaluation, and documentation. Through simplifying the availability of advanced forecasting software, the project would make it easier to utilize the toolkit to assist researchers with streamlined time series analysis.

Wish list of algorithms

RNN (Windowed)
Informer
TCN
DeepAR

Project Timeline

(preliminary)

Issues:

Week 1-2

  • Start on basic BaseDeepForecaster in forecasting/deep_learning
  • Implement RecurrentNetwork in networks default to RNN, other possibilities: LSTM and GRU
  • Implement RecurrentRegressor using RecurrentNetwork and BaseDeepRegressor
  • Add testing for functionality and parameters of both and add to API webpage
  • Apply RecurrentRegressor for forecasting using the windower class in a test

RNN default link sktime-dl

Week 3-4

  • Finish preliminary BaseDeepForecaster based on feedback
  • Adding loading/saving functionalities for BaseDeepForecaster
  • Implement InformerNetwork in networks
  • Implement InformerForecaster in forecasting/deep_learning
  • Add testing functionality for InformerForecaster

paper: Informer: Beyond efficient transformer for long sequence time-series forecasting

Week 5-6

  • Add generic testing for BaseDeepForecaster in the testing module
  • Implement TCNNetwork in networks
  • Implement TCNNForecaster in forecasting/deep_learning
  • Add testing functionality for TCNNForecaster

paper: An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling

Mid-project Deliverables

  • Implementation of 1 Regression Forecaster: RecurrentRegressor
  • Implementaiton of 2 Deep learning Forecasters: InformerForecaster and TCNNForecaster
  • Implementaiton of testing for each of three networks in thenetworks module
  • Implementaiton of testing for each of the three forecasters

Week 7-8

  • Implement DeepARNetwork in networks without probabilistic output
  • Implement DeepARForecaster in forecasting/deep_learning with probabilistic output
  • Add testing functionality for DeepARForecaster

paper: DeepAR: Probabilistic forecasting with autoregressive recurrent networks

Week 9-10

  • Experiment on some datasets the implemented models and compare to the results in the original paper
  • Adding test for loading/saving mechanism
  • Adding test for random state handling

Week 11-12

  • Write example notebook for deep learning forecasting
  • Work out the documentation of the forecasting/deep_learning module
  • Implement RecurrentForecaster in forecasting/deep_learning uses RecurrentNetwork as long-term forecaster

Final Deliverables

  • A full implementation of 4 total networks RecurrentNetwork, InformerNetwork, TCNNNetwork and DeepARNetwork
  • A full implementation of 1 regression forecaster RecurrentRegressor and three forecasters InformerForecaster, TCNNForecaster and DeepARForecaster
  • A full testing framework for the new networks
  • A full testing framework for the forecasting/deep_learning module
  • A full documentation and example notebook of the forecasting/deep_learning module

Community Bonding Period

  • Introduce yourself in the community Slack channels.
  • Go through the contributor guide on the aeon website (https://www.aeon-toolkit.org/en/stable/contributing.html).
  • Set up a development environment, including pytest and pre-commit dependencies. This will make development a lot easier for you, as you must pass the PR tests to have your code merged (https://www.aeon-toolkit.org/en/stable/developer_guide/dev_installation.html).
  • Review some of the important dependencies for developing aeon at a basic level:
    • pytest for unit testing. Any code added will have to be covered by tests.
    • sphinx/myst for documentation. Adding new functions and classes will have to be added to the API docs.
    • tensorflow is the current package used for all of our deep learning algorithms.
  • Make some basic Pull Requests (PRs) to gain some experience with contributing to aeon through GitHub. Some suggestions:
  • Read up on the subject of your project (deep learning forecasters). We will provide some literature, but we encourage you to go beyond that and ask any questions you have.
  • Decide on a project length. 12 weeks is the default but can be extended if you will be unable to work for some periods during the summer.
  • Refine the project timeline and deliverables with the project mentors. Agree on some milestones for both mid-project and final evaluations.
  • Update the GSoC webpage project to better match any new directions after discussions with mentors.
  • Select a tracking/blogging medium to write down and track progress made on the project. Agree on a frequency of updates.
  • Set up regular meeting days and times to discuss the project and track progress.

Week 1:

Link to Blog:

Week 2:

Week 3:

Week 4:

Week 5:

Week 6:

Week 7:

Week 8:

Week 9:

Week 10:

Week 11:

Week 12:

Select a repo