我有以下数据:
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
我需要将这些数据用作感知器的输入,例如:
实现一个两层感知器(一个输入层,一个输出层)。
感知器应具有N维二进制输入X,M维二进制输出Y,以及用于实现阈值的BIAS权重。
(N应小于101,M应小于30),所有权重应在−0.5 ≤ wn,m ≤ +0.5之间随机初始化
进一步实现使用从名为PA-A-train.dat的文件中读取的模式(pX, pY)训练感知器的可能性(P应小于200),以及从文件中读取权重wn,m的可能性。
问题是 – 我无法理解这些数据 – 看起来空格后的数字应该是标签,但如果是这样,为什么有两个标签?标签不应该只有一个吗?
或许有人能帮我理解这些数据。
回答:
神经网络可以有任意数量的输出神经元。特别是,当没有隐藏层时,训练M输出感知器相当于训练M个二进制感知器。所以你的数据很简单 – 你有M=2个输出变量,每个变量是特定输出神经元的预期值。