5

在 FANN 中进行“不相交”分类(输出互斥,即真实概率总和为 1)的正确方法是什么,因为它似乎没有 softmax 输出的选项?

我的理解是,使用 sigmoid 输出,就像做“标签”一样,我不会得到分类问题的正确结果。

4

1 回答 1

2

FANN 只支持tanhlinear错误函数。正如您所说,这意味着神经网络输出的概率之和不会为 1。实现输出没有简单的解决方案softmax,因为这将意味着改变成本函数,从而改变反向传播例程中使用的误差函数。由于 FANN 是开源的,你可以看看自己实现它。Cross Validated 上的一个问题似乎给出了您必须实施的方程式。

虽然不是您正在寻找的数学上优雅的解决方案,但在解决softmax成本函数的实现之前,我会尝试使用一些更粗略的方法 - 因为其中一种方法可能足以满足您的目的。例如,您可以使用tanh错误函数,然后将所有输出重新归一化,使其总和为 1。或者,如果您实际上只对最可能的分类感兴趣,您可以只获取得分最高的输出。

FANN 背后的人 Steffen Nissen 在这里展示了一个示例,他尝试根据字母频率对文本的书写语言进行分类。我认为他使用了tanh错误函数(默认)并且只选择了得分最高的课程,但他表示它运行良好。

于 2016-04-03T14:49:53.953 回答