Skip to content

[ENH] Implement the N-BEATS network in aeon/networks #3056

@lucifer4073

Description

@lucifer4073

Describe the feature or idea you want to propose

The N-BEATS (Neural Basis Expansion Analysis for Interpretable Time Series Forecasting) network is a deep learning model for univariate time series forecasting.
It is based on backward and forward residual connections and consists of stacks of fully connected layers. Each stack is made up of multiple blocks, and each block generates both a backcast and a forecast. The forecasts are summed across blocks to produce the final prediction.

This issue proposes adding NBeatsNetwork under aeon/networks, enabling Aeon users to leverage this interpretable and high-performing model for time series forecasting tasks.

Reference:
Oreshkin, B. N., Carpov, D., Chapados, N., & Bengio, Y. (2019).
“N-BEATS: Neural basis expansion analysis for interpretable time series forecasting”.
arXiv preprint arXiv:1905.10437.

Describe your proposed solution

Following will be the structure of the NBeatsNetwork:

class NBeatsNetwork(BaseDeepLearningNetwork):
    def __init__(
        self,
        horizon,
        stacks=None,
        num_blocks_per_stack=2,
        units=30,
        num_trend_coefficients=3,
        num_seasonal_coefficients=5,
        num_generic_coefficients=7,
        share_weights=True,
        share_coefficients=True,
    ):
        ...

    def _trend_model(self, theta, t_, p):
        ...

    def _seasonality_model(self, theta, t_, p):
        ...

    def _trend_block(self, h, p, t_b, t_f):
        ...

    def _seasonality_block(self, h, p, t_b, t_f):
        ...

    def _generic_block(self, h, p, t_b, t_f):
        ...

    def _get_block_output(self, stack_type, h, t_b, t_f):
        ...

    def build_network(self, input_shape, **kwargs):
        ...

Describe alternatives you've considered, if relevant

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature, improvement request or other non-bug code enhancementnetworksNetworks package

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions