2024-06-17 13:33:21 发布
网友
我想用Keras进行多元泊松回归。换句话说,我想最大化输出向量(i)中每个元素的Product[P(y_true[i] | y_pred[i])]。在这种情况下,P是泊松pmf。在
i
Product[P(y_true[i] | y_pred[i])]
我相信我可以用一个自定义的损失函数来实现。然而,如何使用keras.backend中的可用函数来实现这个丢失函数是一个挑战。在
keras.backend
特别是,我无法找到一种方法来实现一维张量的元素阶乘,这是计算泊松pmf所必需的。在
有人能告诉我怎么做吗?或者即使可以做到?在
Keras有一个内置的Poisson loss function!如果你有多个结果,Keras只会将损失函数应用于每个变量的预测,并将它们相加(如果你想对一个变量的损失比另一个变量的损失更重,则必须创建一个自定义的损失函数)。在
顺便说一句,您不需要为计算PMF中的阶乘而担心,因为factorial(y_true[i])不是模型参数的函数。在Poisson Regression wiki上有一个目标函数的快速推导(损失函数就是它的负数)。它是在一个线性模型的上下文中,但是只要将theta_prime * x[i]替换为y_pred[i],它就会与这里的上下文相匹配。在
factorial(y_true[i])
theta_prime * x[i]
y_pred[i]
Keras有一个内置的Poisson loss function!如果你有多个结果,Keras只会将损失函数应用于每个变量的预测,并将它们相加(如果你想对一个变量的损失比另一个变量的损失更重,则必须创建一个自定义的损失函数)。在
顺便说一句,您不需要为计算PMF中的阶乘而担心,因为
factorial(y_true[i])
不是模型参数的函数。在Poisson Regression wiki上有一个目标函数的快速推导(损失函数就是它的负数)。它是在一个线性模型的上下文中,但是只要将theta_prime * x[i]
替换为y_pred[i]
,它就会与这里的上下文相匹配。在相关问题 更多 >
编程相关推荐