L'implementazione più simile a Haskell che ho visto è la modalità di inoltro a http://hackage.haskell.org/packages/archive/fad/1.0/doc/html/Numeric-FAD.html.Esiste un'implementazione funzionante della differenziazione automatica in modalità inversa per Haskell?
La ricerca correlata più simile correlata sembra essere la modalità inversa per un altro linguaggio funzionale correlato a Schema a http://www.bcl.hamilton.ie/~qobi/stalingrad/.
Vedo la modalità inversa in Haskell come una sorta di Sacro Graal per molti compiti, con la speranza che possa usare il parallelismo dei dati nidificato di Haskell per ottenere una buona accelerazione con una pesante ottimizzazione numerica.
Una possibile alternativa: ho avuto un bel po 'di successo con l'ottimizzazione di sistemi di grandi dimensioni (ad esempio 10000 dimensionale) con forward AD. (Il codice era C++ ma in gran parte scritto in uno stile puramente funzionale.) Il trucco era quello di sfruttare la sparsità che il mio problema aveva in modo da poter usare un tipo sparse per rappresentare le derivate. Era più veloce della versione reverse AD per il mio problema (di nuovo scritto in C++, ma per niente puro). – sigfpe
Davvero? Mi sto chiedendo come realizzare una cosa del genere. Qualche vantaggio? –