据我了解,可微编程以及TensorFlow(例如TFP)和JAX等库可用于解决贝叶斯决策理论问题,例如,我们有一个基于我们需要使用信息做出的决策的损失概率模型可用的。毕竟,这些库应该能够帮助我们优化一般的和潜在的大型非凸问题。
从广义上讲,我指的是形式的一般问题:
我们有标准符号:
- 是损失函数
- 是我们先验的模型参数
- 是我们试图做出的决定
- 是我们的数据或当前知识
但是,我还没有遇到任何实际示例来显示这种特定连接,其中使用概率编程灵活定义损失函数并通过可微编程优化决策问题。
这可能是因为这些库似乎主要面向从数据 中学习和模型参数的推断。这与例如优化商店中商品的价格、金融中的投资组合或例如需要先验设置的昂贵的 A/B/n 测试的样本量形成对比。
也就是说,可能还有其他因素在起作用,也许解决上述等式以获得比 NLL 或 0/1 损失 (MAP) 更通用和复杂的损失函数的难度阻碍了。
换句话说,我想知道 diff 的使用。今天的编程用于优化一般贝叶斯损失函数,即使用它来解决更广泛的问题,而不仅仅是拟合模型或运行 PPL采样器本身,例如在HMC中用于估计模型参数(通常是“标准”损失函数),或者显然计算后验。
今天真的可以用TFP、JAX、PyTorch等完全建模和解决这些类型的一般问题吗?如果不是(或不那么容易),为什么?
也许受上述启发,今天有什么类型的软件可以解决上述一般形式的问题,其中模型和随机变量可以通过例如概率编程灵活指定?