Jeff Heaton 氏が提供した基本的な例に従って、Encog ライブラリを使用してパターン認識の問題を解決しています。私はそのパターンを持っています
1 3 5 4 3 5 4 3 1
これは、出力 1 の理想的なパターンです (つまり、100% 同じということです)。次に、別のパターンを入力して、理想的なパターンにどれだけ似ているかを確認します。
このコードは、ネットワークの作成に使用されます
BasicNetwork network = new BasicNetwork();
network.AddLayer(new BasicLayer(new ActivationSigmoid(), true, NumberOfInputNeurons));
network.AddLayer(new BasicLayer(new ActivationSigmoid(), true, 20));
network.AddLayer(new BasicLayer(new ActivationSigmoid(), true, 15));
network.AddLayer(new BasicLayer(new ActivationSigmoid(), true, 1));
network.Structure.FinalizeStructure();
network.Reset();
INeuralDataSet trainingSet = new BasicNeuralDataSet(XOR_INPUT, XOR_IDEAL);
次に、ネットワークをトレーニングします
do
{
train.Iteration();
Console.WriteLine("Epoch #" + epoch + " Error:" + train.Error);
epoch++;
} while ((epoch <= 20000) && (train.Error > 0.001));
最後に、結果を出力します。
foreach (INeuralDataPair pair in trainingSet)
{
INeuralData output = network.Compute(pair.Input);
Console.WriteLine(pair.Input[0] + "-" + pair.Input[1] + "-" + pair.Input[2] + ....
+ ": actual = " + output[0] + " ideal=" + pair.Ideal[0]) ;
}
再び私の質問に戻ります:
別のパターンを入力して、それが私のものに似ているかどうかを確認するにはどうすればよいですか?
私を解決に導く可能性のあるアイデアは大歓迎です。ありがとう