【发布时间】:2015-02-23 17:45:27
【问题描述】:
我需要开发一个神经网络并将输入分为 3 类。其中一个类别是“不知道”
我应该使用将训练示例分类为 1、2 或 3 的单个输出感知器来训练网络吗?还是应该使用 2 输出感知器并使用二进制方案 (01, 10, 00/11) 对输入进行分类?
【问题讨论】:
标签: output neural-network
我需要开发一个神经网络并将输入分为 3 类。其中一个类别是“不知道”
我应该使用将训练示例分类为 1、2 或 3 的单个输出感知器来训练网络吗?还是应该使用 2 输出感知器并使用二进制方案 (01, 10, 00/11) 对输入进行分类?
【问题讨论】:
标签: output neural-network
您应该使用 3 个输出神经元(每个类别一个)。在训练阶段,将代表正确类的神经元的输出设置为 1,将所有其他神经元的输出设置为 0。具有 1 2 和 3 的单个输出不是最优的,因为它包含隐含假设,即类 2 和 3 在某种程度上彼此“更接近”然后 1和 3. 二进制编码的 2 个输出也不好,因为除了解决分类问题之外,您的 NN 还必须学习二进制编码。
此外,最好在输出层上使用带有交叉熵误差函数的 softmax 激活。 Softmax 将对输出进行归一化,因此每个神经元的值都可以解释为类概率。
请注意,“不知道”类仅在您将训练示例标记为“不知道”时才有用。否则,使用两个输出神经元。
【讨论】: