Многобитовая нейронная сеть XOR - PullRequest
1 голос
/ 02 июня 2011

Я пытаюсь обучить 8-битную нейронную сеть для вывода XOR своих входов. Я использую библиотеку ffnet (http://ffnet.sourceforge.net/). Для небольшого количества входных битов (до 4) обратное распространение дает ожидаемые результаты. Для 8 битов NN, кажется, «сходится», то есть выводит одинаковое значение для любого входа. м с использованием многослойного NN: входы, скрытый слой, выход плюс узел смещения.

Я что-то не так делаю? Должен ли этот NN иметь определенную форму, чтобы научиться XOR?

Edit:

Это код, который я использую:

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 значений)

...