我的神经网络矢量输入大小是否需要与输出大小匹配?

时间:2019-01-17 14:23:39

标签: neural-network data-science

我正在尝试使用神经网络进行二进制分类。它由三层组成。第一层具有三个输入神经元,隐藏层具有两个神经元,输出层具有三个输出二进制值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

似乎应该是这样。我也不是很确定。

1 个答案:

答案 0 :(得分:0)

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

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

因此,无需具有相等的输入和输出尺寸。 NN只是一个维度到另一个维度的投影。

例如,

  • 回归,我们预测房价:输入为[1, 10](针对房地产特征),输出为[1]-价格
  • 分类,我们预测类别(是否出售):输入为[1, 11](相同的功能+列出的价格),输出为[1, 2](类别0的概率(将为未售出)和1(将被售出);例如[1; 0][0; 1][0.5; 0.5]等,这是二进制分类)

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

同样,输出尺寸是1批次的输出尺寸。只有一个,而不是整个数据集。