如何实现(如果可能)具有多种(>2)可能性输出的人工神经网络?



例如,假设我们可以将所有行星分类为水,地球和空气。这些中的每一个都可以通过许多定量特性(例如反照率,大小和温度)来识别,这些特性的值范围为1-10,并且每种类型的行星都不同。如果我有这些特征的输入,如何格式化神经网络的输出以输出作为水,地球或空气的结果?

从我的(有限的)知识中,我的经验告诉我,最大值的人工神经网络只有两个输出,最终只会导致true或false(或不确定)。在一个输出时,如果阈值交叉,则有一些步骤函数为1,如果未交叉阈值或线性/sigmoidal,则还可以确定不确定。使用两个输出,如果一个输出大于另一个输出,则总输出为1或0。

我将如何实现具有两个以上总输出的神经网络?我的范围只是一个真/错误的输出,尽管我觉得解决方案可能很简单(并且我忽略了)。此外,是否有资源可以帮助我?我做出的查询不是最成功的。

您不需要输出上的步骤函数;删除此消息后,您将拥有一个可以通过几种不同方式处理的实用值:

  • 设置值范围的值,这些值被解释为每个不同的输出。因此,0 ... 0.3是输出1,0.3 ... 0.6是输出2和0.6 ... 1.0是输出3。然后,您将为三个可能的输出训练输出0、0.5和1.0。

  • 使用三个独立的网络或三个输出节点来预测每个输出。然后,输出被认为是给出最高结果的网络。

人工神经网络(ANN)不限于一个或两个输出。输出数量仅受您可用的计算资源的限制。

具有多层概念的多级分类(超过两个类)的常用约定是具有与有类的输出一样多的,并且要使所需的网络输出为所有零,除了输出节点中的统一输出对应于目标类。例如,如果有5个类,则类别2的所需网络输出将为(0, 1, 0, 0, 0),5类的所需输出为(0, 0, 0, 0, 1)。这些类是相互排斥的情况。

但是您还可以定义目标输出以具有多个统一值。例如,如果输出1对应于"哺乳动物",并且输出4对应于"狗",则可以指定小猎犬(一种狗)的输出为(1, 0, 0, 1, 0)。如何将输出映射到目标类取决于您。诀窍是设置网络体系结构(层的数字尺寸),以便您的类可学习。

是分类的情况,因此使用三个离散输出单元(a,b,c)中的三个离散输出单元达到最佳性能,其中a,b和c可以具有值0或1的值。为具有三个输出单元的网络准备培训集并为每个记录设置正确的属性。

通常,它使用了"获胜者所有"规则(更高的价值获胜并为您提供最终类别),但我更喜欢使用ROC曲线来分析结果。

用一层隐藏的单元谨慎。多个输出无问题(不限于2),但更多的输出意味着更多的培训数据,固定数量的隐藏单元和中间层,以达到可接受的结果(维度问题的诅咒)。

假设您有 n 类。然后,您可以将输出层作为> n 单元而不是常规逻辑回归层的SoftMax回归层实现。

最新更新