1

我编写了一个代码,用于使用 delta 规则训练单个神经元网络。另一个用于分类 2 类的感知器。我对他们进行了 2000 个样本的训练,他们工作得很好。

现在,我希望通过使用我在训练过程结束时获得的最后权重来测试它们(使用另外 2000 个样本),并在测试代码中使用它们,如下所示:

function accuracy = test( data,weight1,weight2 )

xZero=1;
wZero=0.1;
counter=0;

for(n=1:2000)
    x1=data(n,1);
    x2=data(n,2);
    desired=data(n,3);

    y=(xZero*wZero)+(x1*weight1)+(x2*weight2);
    if(y==desired)
        counter=counter+1;
    end

end

但我得到 counter=0 这意味着没有 y 值等于所需的值。这是我们测试网络的方式还是我错过了什么?我正在尝试在线或从有关如何测试的书籍中找到算法,但我不能。我们是否必须具有与所需输出相同的精确输出,还是应该使用阈值之类的东西?

4

1 回答 1

0

有不同类型的神经网络,但在这种情况下,您的网络中似乎应该有两个输出 y1 和 y2。训练神经网络后,您可以获得每个测试样本的 y1 和 y2 值,然后计算 y1 和 y2 的最大值。最大值决定了样本的类别。

于 2014-09-28T08:10:58.850 回答