【发布时间】:2016-07-19 22:09:05
【问题描述】:
在 FANN 中进行“不相交”分类(输出互斥,即真实概率总和为 1)的正确方法是什么,因为它似乎没有 softmax 输出的选项?
我的理解是,使用 sigmoid 输出,就像做“标签”一样,我不会得到分类问题的正确结果。
【问题讨论】:
标签: neural-network fann
在 FANN 中进行“不相交”分类(输出互斥,即真实概率总和为 1)的正确方法是什么,因为它似乎没有 softmax 输出的选项?
我的理解是,使用 sigmoid 输出,就像做“标签”一样,我不会得到分类问题的正确结果。
【问题讨论】:
标签: neural-network fann
FANN 仅支持 tanh 和 linear 错误函数。这意味着,正如您所说,神经网络输出的概率之和不会为 1。实现softmax 输出没有简单的解决方案,因为这将意味着更改成本函数,从而更改在反向传播例程。由于 FANN 是开源的,你可以看看自己实现它。 Cross Validated 上的一个问题似乎给出了您必须implement 的方程式。
虽然不是您正在寻找的数学上优雅的解决方案,但在处理 softmax 成本函数的实现之前,我会尝试使用一些更粗略的方法 - 因为其中一种可能足以满足您的目的。例如,您可以使用tanh 错误函数,然后将所有输出重新归一化,使其总和为 1。或者,如果您实际上只对最可能的分类感兴趣,您可以只取最高分的输出。
FANN 背后的人 Steffen Nissen 提供了一个示例 here,他尝试根据字母频率对文本的书写语言进行分类。我认为他使用了tanh 错误函数(默认)并且只选择了得分最高的课程,但他表示它运行良好。
【讨论】: