jankrepl / jankrepl/deepdow

Additional augmentations

Open
#48 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
1.2k
Forks
170
PR merge metrics
No merged PRs in 30d

Description

Rather than reinventing the wheel one could just use `torchvision` transforms https://pytorch.org/docs/stable/torchvision/transforms.html

- [x] `Compose` (already recreated in `deepdow`)
- [ ] `RandomApply` - apply all with some probability
- [ ] `RandomChoice` - apply exactly one but at random
- [ ] `RandomOrder` - apply all but in random order
- [ ] `1Dwarping` - Affine would be a special case, one could in theory have any increasing function (derivative > 0)
- [ ] `RandomAffine` - scaling and translation along the y axis (lookback) could be a brilliant augmentation for `deepdow` tensors
- [ ] `RandomHorizontalFlip` - flipping the time flow, probably super confusing if one wants to pic up mean reversion
- [x] `Normalize` - a must together with some helper function that computes means, stds in the training set. However, it still assumes that the time series is stationary.
- [ ] `RandomErasing` - (similar to the current `Dropout` however it is contiguous regions)

Additionally, torchvision might be also helpful in other tasks (see #39)

The clear downside is introducing yet another dependency. Additionally, one might argue that it is better to go all the way and use `imgaug`, `albumentation`,...

Other nonvision augmentations:
- https://arxiv.org/abs/2002.12478
- https://github.com/arundo/tsaug
- https://halshs.archives-ouvertes.fr/halshs-01357973/document

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the torchvision transforms documentation linked in the issue and review the checked and unchecked augmentation list. The issue needs a decided scope and dependency direction before implementation; done would mean an agreed subset of augmentations is implemented for deepdow tensors with appropriate training-set helpers where required.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.