首先......我不认为这是 ConvNetJs 的问题,我认为这是我对神经网络的理解的问题。
给定 2 个随机数,检测相加结果是否为偶数。
例子:
[4,6] = 真
[3,4] = 假
我的设置:
var layer_defs = [];
layer_defs.push({type:'input', out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:'fc', num_neurons:20, activation:'relu'});
layer_defs.push({type:'softmax', num_classes:2});
net = new convnetjs.Net();
net.makeLayers(layer_defs);
var trainer = new convnetjs.Trainer(net, {method: 'adadelta', l2_decay: 0.001,batch_size: 10}
然后我训练它(使用随机数)进行 10,000 次迭代。它永远不会靠近。准确率最高约为 56%。
使用相同的设置但不同的问题:
第一个数字是否大于第二个数字。它在 1,000 次以下迭代中达到 99% 的准确率。
我尝试过的事情:更多层更多神经元 svm vs softmax
我想知道这是否是一个“不可分类”的问题。