Neural network 编码神经网络误差不变

Neural network 编码神经网络误差不变,neural-network,encog,Neural Network,Encog,我正在创建一个处理彩色图像的神经网络。但当我训练它时,误差在某一点后永远不会改变。即使在一千次迭代之后。是什么原因造成的?或者我该怎么办?结构如下: BasicNetwork network = new BasicNetwork(); network.addLayer(new BasicLayer(null,true,16875)); network.addLayer(new BasicLayer(new ActivationSigmoid(),true,(50)

我正在创建一个处理彩色图像的神经网络。但当我训练它时,误差在某一点后永远不会改变。即使在一千次迭代之后。是什么原因造成的?或者我该怎么办?结构如下:

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。

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

这意味着它已经找到了迄今为止它认为最好的解决方案,如果偏离这一点,将导致更多的错误(即使它必须先上坡一点,然后才能下降到更低的错误率)。当数据中没有很强的模式/相关性时,这种情况很早就会发生。当结构不正常时,也可能发生这种情况

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

可能有助于it更好运行的示例:

  • 将图像从75*75向下采样到10*10。这取决于图片是什么
  • 从RGB转换为灰度
  • 了解特征提取-如果你能从图像中提取特征,如线条、边缘等,那么网络将有更多可供学习的内容。说真的,特征提取是让人工神经网络发挥作用的金票

祝你好运

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

这意味着它已经找到了迄今为止它认为最好的解决方案,如果偏离这一点,将导致更多的错误(即使它必须先上坡一点,然后才能下降到更低的错误率)。当数据中没有很强的模式/相关性时,这种情况很早就会发生。当结构不正常时,也可能发生这种情况

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

可能有助于it更好运行的示例:

  • 将图像从75*75向下采样到10*10。这取决于图片是什么
  • 从RGB转换为灰度
  • 了解特征提取-如果你能从图像中提取特征,如线条、边缘等,那么网络将有更多可供学习的内容。说真的,特征提取是让人工神经网络发挥作用的金票
祝你好运