画像から単一の文字を認識しようとしています。画像データはクリーニングされており、明確な文字が表示されています。
そのため、trainigset を hopfield ネットワークに追加すると、2 を追加するだけで対数としてうまくいきました。
どうすればこれを防ぐことができますか?
ネットワークのトレーニング:
public void trainNetwork() {
network.reset();
System.out.println("Training hopfield network");
long startTimeLong = System.nanoTime();
for (double[] ds : trainingInput) {
network.addPattern(doubleArrayToBiPolarNeuralData(ds));
}
long endTimeLong = System.nanoTime();
double durationInSec = (double) ((endTimeLong - startTimeLong) / Math.pow(10, 9));
System.out.println("Finished training network in: " + durationInSec);
}
private BiPolarNeuralData doubleArrayToBiPolarNeuralData(double[] data) {
BiPolarNeuralData patternData = new BiPolarNeuralData(neuroncount);
if (data.length != neuroncount) {
IndexOutOfBoundsException e = new IndexOutOfBoundsException("the size of the traingsinputs is different from the amount of input neurons");
logger.error(e.getMessage(), e);
throw e;
}
patternData.setData(data);
return patternData;
}
2 キャラクターをトレーニングした結果:
Cycles until stable(max 100): 1, result=
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
OOOOOOOOOOO -> OOOOOOOOOOO
OOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOOO
OOOOOOO OOOOOOOOO -> OOOOOOO OOOOOOOOO
OOOOO OOOOOOO -> OOOOO OOOOOOO
OOOOO OOOOOOO -> OOOOO OOOOOOO
OOOOOO -> OOOOOO
OOOOOOOOOO -> OOOOOOOOOO
OOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOOO
OOOOOOOOO OOOOOO -> OOOOOOOOO OOOOOO
OOOOOOO OOOOOOO -> OOOOOOO OOOOOOO
OOOOOO OOOOOOO -> OOOOOO OOOOOOO
OOOOOOO OOOOOOOO -> OOOOOOO OOOOOOOO
OOOOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOOOO
OOOOOOOOO OOOOOOO -> OOOOOOOOO OOOOOOO
->
->
->
->
->
->
->
->
->
->
->
->
->
すべてのキャラクターをトレーニングしたときの結果:
Cycles until stable(max 100): 3, result=
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
OOOOOOOOOOO -> OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOOOO
OOOOOOOOO OOOOOOOOO -> OOOOOOOOOOOOOOOO
OOOOOOOO OOOOOOO -> OOOOOO OOOOOO
OOOOOOO OOOOOOO -> OOOOOO OOOOO
OOOOOOO -> OOOOOO OOOOO
OOOOOOO -> OOOOOO OOOOO
OOOOOO -> OOOOOO OOOOOOO
OOOOOO -> OOOOOO OOOOO
OOOOOOO -> OOOOOO OOOOOO
OOOOOOO -> OOOOOOO OOOOOO
OOOOOOO OOOOOOO -> OOOOOOO OOOOOO
OOOOOOO OOOOOOO -> OOOOOOO OOOOOO
OOOOOOOO OOOOOOOO -> OOOOOOO OOOOOOO
OOOOOOOOO OOOOOOOOO -> OOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOO -> OOOOOOOOOOOOOOOO
OOOOOOOOOOOOOO -> OOOOOOOOOOOOO
OOOOOOOOOOO -> OOOOOOOOO O
->
->
->
->
->
->
->
->
->
->
->
->
->
常にこの同じ複合ブロブに解決されます。私は何を間違っていますか?