【问题标题】:Does my Neural Net Vector Input Size Need to Match the Output Size?我的神经网络向量输入大小需要匹配输出大小吗?
【发布时间】:2019-01-17 14:23:38
【问题描述】:

我正在尝试使用神经网络进行二元分类。它由三层组成。第一层有 3 个输入神经元,隐藏层有 2 个神经元,输出层有 3 个输出二进制值 1 或 0 的神经元。实际上输出通常是浮点数,但通常会四舍五入为整数数字。

如果网络只输出 3 的向量,那么我的输入向量不应该是相同的大小吗?否则,对于分类,您如何将输出映射到输入?

我根据以下文章使用 VBA 在 Excel 中编写了神经网络:https://www.analyticsvidhya.com/blog/2017/05/neural-network-from-scratch-in-python-and-r/ 到目前为止,它的工作原理与文章中描述的完全一样。我目前无法访问机器学习库,所以我选择尝试一下。

例如:

如果网络的输出是 [n, n ,n],那是否意味着我的输入数据也必须是 [n, n, n]?

从我在这里读到的:Neural net input/output

看起来应该是这样的。不过我不完全确定。

【问题讨论】:

  • 我认为你有一个很大的误解,神经网络的输入和输出不必是相同的大小,例如,要将 32x32 图像分类为 10 类,你有一个输入32x32,输出 10 个元素。
  • 那么,如果你有一个 32x32 的输入和一个 10 个元素的输出,如何将输出映射到输入呢?我想这就是我不明白的。似乎如果输出与输入向量的大小不同,您将无法分类。
  • 将输出映射到输入是什么意思?通常的神经网络将输入映射到输出。
  • 我想我明白你的意思,网络内部将输入映射到输出。但在外部,我不明白的是这个;在我的特殊情况下,网络输出一个 1 x 3 的向量。我不知道这意味着什么?这如何告诉我它预测的是哪个类?
  • 嗯,你必须设计你的网络来适应你的数据,包括输入和输出的维度,所以对我来说 1x3 向量没有任何意义,因为我不知道你打算使用什么数据对于训练,您提到了二元分类,但这不是用 3 个输出神经元完成的。需要详细信息。

标签: neural-network data-science


【解决方案1】:

简单来说, 对于回归任务,您的输出通常具有维度 [1](如果您预测单个值)。

对于分类任务,您的输出应该具有与您拥有的类数相同的维度数(输出是概率,它们的总和 = 1)。

因此,输入和输出的维度没有必要相等。 NN 只是一个维度到另一个维度的投影。

例如,

  • 回归,我们预测房价:输入是[1, 10](到属性的特征),输出是[1] - 价格
  • 分类,我们预测类(将被出售或不出售):输入是[1, 11](相同的功能+上市价格),输出是[1, 2](类的概率0(不会出售)和@987654327 @(将被出售);例如[1; 0]、[0; 1]或[0.5; 0.5]等;是二分类)

此外,输入输出维度的相等性存在于更具体的任务中,例如自动编码器模型(当您需要在其他维度呈现数据,然后将其表示回原始维度时)。

同样,输出维度是 1 个批次的输出大小。只有一个,不是整个数据集。

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 2016-12-02
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多