JuliaMath / JuliaMath/FastChebInterp.jl

chainrules for chebpoly constructors

Aperta
#10 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Julia
Stelle
83
Fork
7
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

It would be nice, in principle, to define chainrules for the chebpoly constructors, so that we support computation of sensitivities of e.g. polynomial evaluations to the *data* used to construct the polynomial.

In principle Zygote can do this for us, but it seems to be incredibly slow. (Before we implemented the `rrule` in #9, it was taking over an hour to backpropagate through a `ChebPoly` evaluation.)

There are a couple of pieces to implement here. First, chain rules for `chebinterp` and `chebregression`, which should be very straightforward since they are linear operations. Second, we need to fix the `@notimplemented` in the `rrule` for `ChebPoly` evaluation (#9) to *optionally* compute the tangent for sensitivity to polynomial coefficients and bounds — this will need a "thunk" tangent of some sort in order to defer the computation until/unless it is actually needed, because the coefficient tangent is both large and expensive to compute.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start with the chain rules for `chebinterp` and `chebregression`, then inspect the `@notimplemented` tangent in the `ChebPoly` evaluation `rrule` from #9. The intended result is sensitivity support for constructor data and optional, deferred tangents for polynomial coefficients and bounds; no tests or file paths are identified in the issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
julia
Ambito
performance
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.