Keras中的多元泊松损失函数

时间:2018-10-16 19:41:35

标签: python keras

我想用Keras进行多元Poisson回归。换句话说,我想为输出向量(Product[P(y_true[i] | y_pred[i])])中的每个元素最大化i。在这种情况下,P将成为Poisson pmf。

我相信我可以使用自定义损失函数来做到这一点。然而,事实证明如何使用keras.backend中的可用函数来实现此损失函数是一个挑战。

尤其是,我无法找到在1D张量上实现元素阶乘的方法,这是计算Poisson pmf所必需的。

有人对如何做到这一点有任何指示吗?甚至可以做到吗?

1 个答案:

答案 0 :(得分:0)

Keras具有内置的Poisson loss function!如果您有多个结果,Keras会将损失函数应用于每个变量的预测,并对它们求和(如果您要权衡一个变量而不是另一个变量的损失,则必须创建自定义损失函数)。

顺便说一句,您不必担心在PMF中计算阶乘以使可能性最大化,因为factorial(y_true[i])不是模型参数的函数。在Poisson Regression wiki上可以快速推导目标函数(损失函数只是此函数的负数)。它是在线性模型的上下文中,但是只需将theta_prime * x[i]替换为y_pred[i],并在此处与上下文匹配即可。