首页 > 解决方案 > 我的神经网络向量输入大小需要匹配输出大小吗?

问题描述

我正在尝试使用神经网络进行二元分类。它由三层组成。第一层有 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-networkdata-science

解决方案


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

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

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

例如,

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

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

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


推荐阅读