I am using the https://github.com/cazala/synaptic library
I am trying to predict the following value (X value) in the following series:
0 0 0 1 0 0 0 1 0 0 0 X
Which should be 1 .
Here is the code:
const options = { peepholes: Layer.connectionType.ALL_TO_ALL, hiddenToHidden: false, outputToHidden: false, outputToGates: false, inputToOutput: true, }; // 1 input, 3 hidden layers (4 nodes per layer), 1 output const lstm = new Architect.LSTM(1, 4, 4, 4, 1, options); const trainingArray = [ { input: [0], output: [0], }, { input: [0], output: [0], }, { input: [0], output: [1], }, { input: [1], output: [0], }, { input: [0], output: [0], }, { input: [0], output: [0], }, { input: [0], output: [1], }, { input: [1], output: [0], }, ]; const trainingOptions = { rate: 0.1, iterations: 100000, error: 0.05, cost: null, crossValidate: null, }; let results = lstm.trainer.train(trainingArray, trainingOptions); console.log(results); array = [ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, ]; results = lstm.activate(array); console.log(results);
Output in the console:
{ error: 0.049765018466871494, iterations: 673, time: 392 } [ 0.05010961302724895 ]
I expected that the result of activation would be a value close to 1 than 0 (much closer). I do not know if this is the library of my lack of knowledge in LSTM. Can someone point me in the right direction?