Skip to content

[ENH] Adding Time Mixingup Contrastive Learning to Self Supervised module #3015

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Aug 22, 2025

Conversation

hadifawaz1999
Copy link
Member

@hadifawaz1999 hadifawaz1999 commented Aug 7, 2025

Adding a state of the art model TimeMCL [1] to populate the self supervised model, after this will probably add a base model to contain the load/save functions

The model takes as input 2 time series, with no informaiton on the labels, augments a third series by mixing up x1 and x2 as x3 = lamda.x1 + (1-lamda).x2 and the model uses a contrastive learning loss to match again the augmented x3 sample to x1 and x2 and discard the rest of the series in the batch

Original code is in torch i adapted it to tensorflow keras

[1] Wickstrøm, Kristoffer, Michael Kampffmeyer, Karl Øyvind Mikalsen, and Robert Jenssen. "Mixing up contrastive learning: Self-supervised representation learning for time series." Pattern Recognition Letters 155 (2022): 54-61.

@aeon-actions-bot aeon-actions-bot bot added enhancement New feature, improvement request or other non-bug code enhancement transformations Transformations package labels Aug 7, 2025
@aeon-actions-bot
Copy link
Contributor

Thank you for contributing to aeon

I have added the following labels to this PR based on the title: [ enhancement ].
I have added the following labels to this PR based on the changes made: [ transformations ]. Feel free to change these if they do not properly represent the PR.

The Checks tab will show the status of our automated tests. You can click on individual test runs in the tab or "Details" in the panel below to see more information if there is a failure.

If our pre-commit code quality check fails, any trivial fixes will automatically be pushed to your PR unless it is a draft.

Don't hesitate to ask questions on the aeon Slack channel if you have any.

PR CI actions

These checkboxes will add labels to enable/disable CI functionality for this PR. This may not take effect immediately, and a new commit may be required to run the new configuration.

  • Run pre-commit checks for all files
  • Run mypy typecheck tests
  • Run all pytest tests and configurations
  • Run all notebook example tests
  • Run numba-disabled codecov tests
  • Stop automatic pre-commit fixes (always disabled for drafts)
  • Disable numba cache loading
  • Push an empty commit to re-run CI checks

Copy link
Contributor

@chrisholder chrisholder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hadifawaz1999 hadifawaz1999 merged commit c0c6caf into main Aug 22, 2025
19 checks passed
@hadifawaz1999 hadifawaz1999 deleted the aif/ssl-mcl branch August 22, 2025 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature, improvement request or other non-bug code enhancement transformations Transformations package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants