多位神经异或网络

发布于 2024-11-11 03:20:20 字数 989 浏览 2 评论 0原文

我正在尝试训练一个 8 位神经网络来输出其输入的异或。我正在使用 ffnet 库(http://ffnet.sourceforge.net/)。对于少量输入位(最多 4 个),反向传播会产生预期结果。对于 8 位,NN 似乎“收敛”,这意味着它对任何输入都输出相同的值。我使用的是多层神经网络:输入、隐藏层、输出以及偏置节点。

我做错了什么吗?这个神经网络是否需要具有一定的形状才能学习异或?

编辑:

这是我正在使用的代码:

def experiment(bits, input, solution, iters):
    conec = mlgraph( (bits, bits, 1) )
    net = ffnet(conec)
    net.randomweights()
    net.train_momentum(input, solution, eta=0.5, momentum=0.0, maxiter=iters)
    net.test(input, solution, iprint=2)

我使用 momentum=0.0 来获得纯反向传播。

这是我得到的结果的一部分:

Testing results for 256 testing cases:
OUTPUT 1 (node nr 17):
Targets vs. outputs:
   1      1.000000      0.041238
   2      1.000000      0.041125
   3      1.000000      0.041124
   4      1.000000      0.041129
   5      1.000000      0.041076
   6      1.000000      0.041198
   7      0.000000      0.041121
   8      1.000000      0.041198

对于每个向量(256 个值)都是这样

I'm trying to train an 8-bit neural network to output XOR of its inputs. I'm using ffnet library (http://ffnet.sourceforge.net/). For low number of input bits (up to 4) backpropagation produces expected results. For 8 bits, NN seems to 'converge', meaning that it outputs the same value for any input. I'm using a multilayer NN: inputs, hidden layer, output, plus bias node.

Am I doing something wrong? Does this NN need to be of certain shape, to be able to learn to XOR?

Edit:

This is the code I'm using:

def experiment(bits, input, solution, iters):
    conec = mlgraph( (bits, bits, 1) )
    net = ffnet(conec)
    net.randomweights()
    net.train_momentum(input, solution, eta=0.5, momentum=0.0, maxiter=iters)
    net.test(input, solution, iprint=2)

I'm using momentum=0.0 to get pure back-propagation.

This is a part of the results I get:

Testing results for 256 testing cases:
OUTPUT 1 (node nr 17):
Targets vs. outputs:
   1      1.000000      0.041238
   2      1.000000      0.041125
   3      1.000000      0.041124
   4      1.000000      0.041129
   5      1.000000      0.041076
   6      1.000000      0.041198
   7      0.000000      0.041121
   8      1.000000      0.041198

It goes on like this for every vector (256 values)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文