Tengo entendido que programación diferenciable y por lo tanto las bibliotecas como TensorFlow (por ejemplo TFP ) y JAX pueden utilizarse para resolver problemas de teoría de la decisión bayesiana en los que, por ejemplo, tenemos un modelo probabilístico de la pérdida en la que podemos incurrir en función de una decisión que tenemos que tomar con la información disponible. Al fin y al cabo, estas bibliotecas deberían ser capaces de ayudarnos a optimizar problemas generales y potencialmente grandes no convexos.
En términos generales, me refiero a general problemas de la forma:
$\underset{d}{\operatorname{argmin}} \mathrm{E}^\pi\left[L\left(\theta,d\right)| \text{D}\right]$
donde tenemos la notación estándar:
- $L$ es la función de pérdida
- $\pi$ es nuestra prioridad sobre los parámetros del modelo
- $d$ es la decisión que estamos tratando de tomar
- $\text{D}$ son nuestros datos o conocimientos actuales
Sin embargo, todavía no he encontrado ningún ejemplo real que muestre esta conexión particular en la que se defina de forma flexible el Pérdida utilizando la función programación probabilística y optimizar el problema de decisión mediante programación diferenciable .
Esto puede deberse a que estas bibliotecas parecen estar orientadas principalmente a aprender de datos y inferencia de los parámetros del modelo. Esto contrasta con, por ejemplo, la optimización de los precios de los artículos en una tienda, de una cartera en finanzas o, digamos, de los tamaños de las muestras para una costosa prueba A/B/n que deben establecerse a priori.
Dicho esto, puede haber algo más en juego, tal vez la dificultad de resolver la ecuación anterior para las funciones de pérdida que pueden ser mucho más generales y complejas que, por ejemplo, NLL o pérdida 0/1 (MAP), se interpone en el camino.
En otras palabras, me pregunto sobre el uso de la programación dif. hoy en día para la optimización de la Bayesiana general Pérdida es decir, utilizarlo para problemas más amplios que, por ejemplo, el ajuste de un modelo o la ejecución de una PPL muestreador per se, como en, por ejemplo HMC para estimar los parámetros del modelo (a menudo una función de pérdida "estándar") o, obviamente, para calcular los posteriors.
¿Se puede realmente modelar y resolver completamente este tipo de problemas generales hoy en día con, por ejemplo TFP , JAX , PyTorch ¿ etc.? Si no es así (o no es tan fácil), ¿por qué?
Tal vez motivado por lo anterior, ¿qué tipo de software está disponible hoy en día para resolver problemas de la forma general anterior, donde el modelo y las variables aleatorias se pueden especificar de forma flexible a través de, por ejemplo, la programación probabilística?