我正在创建一个适用于彩色图像的神经网络。但是当我训练它时,错误永远不会改变。即使经过一千次迭代。是什么导致的?或者我该怎么办?这是结构:
BasicNetwork network = new BasicNetwork();
network.addLayer(new BasicLayer(null,true,16875));
network.addLayer(new BasicLayer(new ActivationSigmoid(),true,(50)));
network.addLayer(new BasicLayer(new ActivationSigmoid(),true,setUniqueNumbers.size()));
network.getStructure().finalizeStructure();
network.reset();
输入图层实际上是75 * 75(75x75像素)* 3(红色,绿色,蓝色),所以我想出了16875。
答案 0 :(得分:4)
当错误停止变化时,您已达到最小值,可能是局部最小值。
这意味着它已经找到了它认为迄今为止最好的解决方案,并且远离这一点会导致更多错误(即使它必须先爬上山坡才能下降到一个均匀的位置较低的错误率)。当数据中没有强烈的模式/相关性时,就会发生这种情况。当结构不合时,它也可能发生。
看起来这肯定是你的问题之一。 ~17,000输入神经元是一吨。然后50个隐藏的神经元似乎与这么多输入不匹配。而不是提供如此多的数据,找到一种方法来提取功能,以减少输入大小,使其对网络更有意义。
可以帮助它更好地运行的示例: