Encog Neural Network错误不变

时间:2013-11-12 15:00:03

标签: neural-network encog

我正在创建一个适用于彩色图像的神经网络。但是当我训练它时,错误永远不会改变。即使经过一千次迭代。是什么导致的?或者我该怎么办?这是结构:

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。

1 个答案:

答案 0 :(得分:4)

当错误停止变化时,您已达到最小值,可能是局部最小值。

这意味着它已经找到了它认为迄今为止最好的解决方案,并且远离这一点会导致更多错误(即使它必须先爬上山坡才能下降到一个均匀的位置较低的错误率)。当数据中没有强烈的模式/相关性时,就会发生这种情况。当结构不合时,它也可能发生。

看起来这肯定是你的问题之一。 ~17,000输入神经元是一吨。然后50个隐藏的神经元似乎与这么多输入不匹配。而不是提供如此多的数据,找到一种方法来提取功能,以减少输入大小,使其对网络更有意义。

可以帮助它更好地运行的示例:

  • 将图像从75 * 75下降到例如10 * 10。这取决于图片是什么。
  • 从RGB转换为灰度
  • 了解特征提取 - 如果您可以从图像中提取特征,例如线条,边缘等,那么网络将有更多需要学习的内容。说真的,特征提取是让人工神经网络有效的黄金票。
祝你好运!