Skip to content

Add routines for automatic transformation of parameters #908

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

Open
TorkelE opened this issue May 2, 2025 · 0 comments
Open

Add routines for automatic transformation of parameters #908

TorkelE opened this issue May 2, 2025 · 0 comments

Comments

@TorkelE
Copy link
Member

TorkelE commented May 2, 2025

In certain situations, you want to transform your optimisation space. E.g. when fitting rates for chemical reaction networks (a parameter fitting problem), you typically fir the log10 of the rates, not the rates (tow advantages: It naturally imposes non-negativity and also makes fitting easier as parameters typically varies naturally over orders of magnitude).

This obviously something that the user can encode in their cost function, and e.g. something PEtab can handle automatically (https://sebapersson.github.io/PEtab.jl/stable/API/#PEtab.PEtabParameter). However, if it is possible to encode transformed functions in Optimisation, this would make things way easier (it would also save the user from having to juggle different scales back and fourth, which is an utter mess).

It would be useful wth both ready made transforms, and the option for the user to designate their own (both across all optimisation variables, but also for individual ones). Some useful ones would be:

  • Log10 transform.
  • Sigmoidal transform (basically a way to turn a bounded value (u1 < u < u2) to become unbounded (for e.g. Adam optimisation).
  • Some kind of tanh transform (combining log10 transform and encoding of bounds into the optimisation variable).

Obviously this is no trivial undertaking, but it would definitely be very useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant