理解令人困惑的感知器输入数据

making sense of confusing perceptron input data

我有以下数据:

 0 0 0 0 0  0 0
 0 0 0 0 1  0 0
 0 0 0 1 0  0 0
 0 0 0 1 1  0 0
 0 0 1 0 0  0 0
 0 0 1 0 1  0 0
 0 0 1 1 0  0 0
 0 0 1 1 1  1 0
 0 1 0 0 0  0 0
 0 1 0 0 1  0 1
 0 1 0 1 0  0 0
 0 1 0 1 1  1 1
 0 1 1 0 0  0 0
 0 1 1 0 1  1 1
 0 1 1 1 0  1 0
 0 1 1 1 1  1 1
 1 0 0 0 0  0 0
 1 0 0 0 1  0 0
 1 0 0 1 0  0 0
 1 0 0 1 1  1 0
 1 0 1 0 0  0 0
 1 0 1 0 1  1 0
 1 0 1 1 0  1 0
 1 0 1 1 1  1 0
 1 1 0 0 0  0 0
 1 1 0 0 1  1 1
 1 1 0 1 0  1 0
 1 1 0 1 1  1 1
 1 1 1 0 0  1 0
 1 1 1 0 1  1 1
 1 1 1 1 0  1 0
 1 1 1 1 1  1 1

我打算将其用作感知器的输入,即:

实现一个 2 层 Perzeptron(一个输入层,一个输出层)。

Perzeptron 应具有 N 维二进制输入 X、M 维二进制输出 Y 和用于实现阈值的 BIAS 权重。

(N小于101,M小于30),在-0.5≤wn,m≤+0.5

之间随机初始化所有权重

使用从名为 PA-A-train.dat (P应小于 200),并且可以从文件中读取权重 wn,m。

问题是 - 我不明白数据 - 看起来 space 后面的数字应该是一个标签,但是 - 如果是这样,为什么有两个?标签不应该只有一个吗?

也许有人可以帮助我理解这一点。

神经网络可以有任意数量的输出神经元。特别地,当一个人没有隐藏层时,训练 M 输出感知器相当于训练 M 个二进制感知器。所以你的数据很简单——你有 M=2 个输出变量,每个变量都是特定输出神经元的期望值。