Wir arbeiten an einem Bayes'schen Modell für einen Raum-Zeit-Prozess und verwenden einen No-U-Turn-Sampler (NUTS), für den ein Modell für die Log-Wahrscheinlichkeit und den Gradienten in Bezug auf die Modellparameter erforderlich ist. Um es kurz zu machen, wir haben eine ziemlich komplizierte log-Wahrscheinlichkeitsfunktion , die statistische Verteilungen, kronecker-Produkte, Exponentiale, Verhältnisse, if-else-Aussagen usw. umfasst und die wir bereitstellen müssen und die Steigung zu NUTS hat. Einige Pakete ( Stan und Julias MCMC ) verwenden nach meinem besten Wissen das Überladen von Operatoren, um den Gradienten automatisch zu ermitteln.
Wenn wir in der Lage wären, eine eigene Verlaufsfunktion zu erstellen, möglicherweise mithilfe eines automatischen Diff-Tools für die Quellcodetransformation, würden wir eine bessere Leistung erzielen, oder wäre OO genauso gut oder besser?