La implementación relacionada más cercana en Haskell que he visto es el modo de avance en http://hackage.haskell.org/packages/archive/fad/1.0/doc/html/Numeric-FAD.html.¿Hay alguna implementación en funcionamiento de diferenciación automática en modo inverso para Haskell?
La investigación relacionada relacionada más cercana parece ser el modo inverso para otro lenguaje funcional relacionado con Scheme en http://www.bcl.hamilton.ie/~qobi/stalingrad/.
Veo el modo inverso en Haskell como una especie de santo grial para muchas tareas, con la esperanza de que pueda usar el paralelismo de datos anidados de Haskell para obtener una aceleración agradable con una gran optimización numérica.
Una posible alternativa: he tenido bastante éxito con la optimización de sistemas grandes (por ejemplo, 10000 dimensiones) con AD avanzado. (El código era C++ pero escrito en gran parte en un estilo funcional puro.) El truco era explotar la escasez que tenía mi problema, así que podía usar un tipo disperso para representar las derivadas. Fue más rápido que la versión AD inversa para mi problema (otra vez escrito en C++, pero no del todo puro). – sigfpe
¿De verdad? Me pregunto cómo lograr tal cosa. ¿Alguna pista? –