【问题标题】:ANN multiple vs single outputsANN 多输出与单输出
【发布时间】:2013-11-04 18:42:34
【问题描述】:

我最近开始研究 ANN,我一直试图找出一些我似乎无法找到答案的东西(可能是因为它太琐碎或者因为我正在搜索错误的关键字。 .)。

您何时使用多个输出而不是单个输出?我猜在最简单的 1/0 分类情况下,它最容易使用“符号”作为输出激活函数。但是在哪种情况下你会使用多个输出?例如,如果您有一个多分类问题,那么您想将某物分类为例如 A、B 或 C,并且您为每个类选择 1 个输出神经元?你如何确定它属于哪个类?

【问题讨论】:

    标签: neural-network classification


    【解决方案1】:

    在分类上下文中,使用多个输出单元可能会有所帮助:多类分类和显式置信度估计。

    多类

    对于多类情况,正如您在问题中所写,对于您感兴趣的每一类数据,您的网络中通常都有一个输出单元。因此,如果您尝试将数据分类为 A、B 之一或 C,您可以在标记数据上训练您的网络,但将所有“A”标签转换为 [1 0 0],将所有“B”标签转换为 [0 1 0],将“C”标签转换为 [ 0 0 1]。 (这称为"one-hot" encoding。)您可能还想在输出单元上使用logistic activation,以将它们的激活值限制在区间 (0, 1)。

    然后,当您训练网络时,优化“交叉熵”损失(相对于更直观的欧几里德距离损失)通常很有用,因为您基本上是在尝试教您的网络输出给定输入的每个类别的概率。通常使用"softmax"(有时也称为玻尔兹曼)分布来定义这个概率。

    如需了解更多信息,请查看http://www.willamette.edu/~gorr/classes/cs449/classify.html(理论性稍强)和http://deeplearning.net/tutorial/logreg.html(更多针对代码方面)。

    置信度估计

    多输出的另一个很酷的用途是使用一个输出作为标准分类器(例如,只有一个输出单元生成 0 或 1),第二个输出表示该网络对其分类的置信度输入信号(例如,在 (0, 1) 区间内生成值的另一个输出单元)。

    如果您在每个 A、B 和 C 类数据上训练了一个单独的网络,但随后也将来自 D 类(或其他)的数据呈现给系统,这可能会很有用——在这个在这种情况下,您会希望每个网络都表明它们不确定输出,因为它们以前从未见过 D 类的东西。

    【讨论】:

      【解决方案2】:

      以 softmax 层为例。这一层的最大输出是你的班级。它有很好的理论依据。

      简而言之:您获取前一层的输出并将其解释为 m 维空间中的向量。之后,您将 K 高斯拟合到它,它们共享协方差矩阵。如果你对它建模并写出方程,它就相当于 softmax 层。有关详细信息,请参阅 Kevin Murphy 的“机器学习。概率视角”。

      这只是使用最后一层进行多类分类的一个例子。您也可以将多个输出用于其他用途。例如,您可以训练 ANN 来“压缩”您的数据,即计算一个从 N 维到 M 维空间的函数,以最大限度地减少信息丢失(这种模型称为自动编码器)

      【讨论】:

        猜你喜欢
        • 2020-11-18
        • 2015-01-13
        • 1970-01-01
        • 2013-12-07
        • 2013-05-27
        • 2011-01-11
        • 1970-01-01
        • 2021-04-14
        • 2015-08-31
        相关资源
        最近更新 更多