Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带Encog库的遗传算法需要数小时的训练,而且不准确?_Java_Eclipse_Ocr_Encog - Fatal编程技术网

Java 带Encog库的遗传算法需要数小时的训练,而且不准确?

Java 带Encog库的遗传算法需要数小时的训练,而且不准确?,java,eclipse,ocr,encog,Java,Eclipse,Ocr,Encog,在我的研究中,我使用Encog2.4.0和Java来评估字体数字(0-9)识别中的反向传播和遗传算法。我使用JavaCV将我的数字(图像)处理为0和1的文本文件,每行代表一个字体图像。每个字体(行)有256个属性(0或1)。 我的网络输入节点号是256,输出节点号是10(类),我在我的网络中使用sigmoid激活功能。我的输出也被标准化为0和1(例如100000000表示0,0100000000表示1,依此类推到9)。 使用不同的训练集(100到700个样本)进行11次试运行,使用不同的学习率和

在我的研究中,我使用Encog2.4.0和Java来评估字体数字(0-9)识别中的反向传播和遗传算法。我使用JavaCV将我的数字(图像)处理为0和1的文本文件,每行代表一个字体图像。每个字体(行)有256个属性(0或1)。 我的网络输入节点号是256,输出节点号是10(类),我在我的网络中使用sigmoid激活功能。我的输出也被标准化为0和1(例如100000000表示0,0100000000表示1,依此类推到9)。 使用不同的训练集(100到700个样本)进行11次试运行,使用不同的学习率和动量参数进行测试集(50到300),我非常满意反向传播性能的准确性和速度(10秒到<4分钟)。但不幸的是:(使用不同参数的遗传算法进行了11次测试,我无法获得正确的精度或速度。对于BP来说,4分钟的遗传算法需要2-13个小时,在大多数情况下,精度也低于0.01%,这似乎是偶然的。我试过初始种群大小从200到500,交配种群大小从0.25(25%)到0.50(50%)和突变率,我尝试了0.1、0.05、0.01和0.001。我正在使用FanInRandomizer

网络输入和输出结构类似于XOR示例。在XOR中,输入是4x2的数组,输出是4x1

我的是:“样本数量”X 256用于输入,“样本数量”X 10用于输出

谁能告诉我哪里出了问题吗

谢谢,
首先,这是一个非常古老的Encog版本。遗传算法代码在3.x中发生了很大的变化,这可能会有所帮助

至于为什么它不能收敛,这可能是一个困难的问题,不看实际数据和实验。一些想法

  • 我会确保正确创建群体。选取群体中最好的成员,看看你是否可以对其进行反向训练以使其收敛。确保激活功能符合你的预期
  • 查看GA与BP训练网络的权重范围,看看是否有什么疯狂的事情发生,将GA权重推到了不寻常的范围