Symmetry and Data Augmentation
Implements #621
New: A Symmetry class which is part of baybe Surrogates. Three distinct symmetries are included, for more info check the userguide and for a demonstration of the effect see the new example. The ability to perform data augmentation has been included for all symmetries.
I have left some initial comments on design questions that are still open or where I am kind of indifferent and just had to choose one. Feel free to leave an opinion there first so the large-scale design picture can be finalized independent of small comments.
TODO
- [ ] CHANGELOG (after architecture is logged in)
- [ ] Remember to compress finalized svg picture
Other Notes Symmetries and constraints are conceptually so similar that they should probably have the same interface. The design here has been done from scratch completely ignoring the constraint interface because it is already known to be not optimal and needs refactoring.
- There is no overarching shared attribute
parametersor similar because some symmetries allow single and some multiple such parameters. Instead the parameters are treated like the objectives treat target(s) - Contrary to dependency constraint, dependency symmetry can only hold 1 set of dependencies. The constraint should be refactored to look the same.
- There is one exception I made but I'm open to still changing it
@Scienfitz just to make sure - I guess since this is marked as a draft, you do not require a PR review for now, right? Is there anything else that we can assist with?
@AVHopp yes exactly and it will always be like that for PR's that I open in draft: Ignore until requested or asked in any other way
FYI I'm putting this back to draft as it makes sense to incorporate the symmetry concept already now. Things like the example will only minimally change though so that can already be looked at.
@Scienfitz I've opened a new pull request, #688, to work on those changes. Once the pull request is ready, I'll request review from you.