keras - softmax top N - 损失函数

时间:2017-08-09 03:07:21

标签: machine-learning keras keras-layer

我无法使用keras来适应我的场景。在我的输出图层中,它将输出每个项目的概率。我想采取前N个项目(即概率最高)并查看它们是否是事实的一个子集(具有一组项目)。我必须编译此方案的负对数可能性。我可以问我该怎么做呢?

非常感谢您的帮助。

`

nn = Sequential()
 nn.add(Dense(self.num_hidden_units, input_dim = input_num, init="uniform"))
 nn.add(Activation('tanh'))
 nn.add(Dense(self.num_items, init="uniform"))
 nn.add(Activation('softmax'))

`

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你就属于multi-label classification政权。在这种情况下,共同目标函数是二元交叉熵损失,高于sigmoid的激活。

请注意,您应该用sigmoid替换softmax激活,因为在您的情况下,概率不必总和为1

在keras中应用损失的使用示例:

model.compile(loss='binary_crossentropy', optimizer='sgd')