brainjs 预测下一个值

brainjs predict the next value

我正在研究神经元网络,并且正在尝试进行预测。 为此,我有一个包含值的数组,我想知道下一个是什么。

只是为了练习,我做了一些非常简单的事情,但它不起作用(值 returned 是错误的),你能解释一下吗?我错过了?


const NN = new brain.recurrent.LSTMTimeStep({
    inputSize: 2,
    hiddenLayers: [10],
    outputSize: 2,
});

let data = [
    [1, 2],
    [2, 4],
    [3, 6],
    [4, 8],
    [5, 10],
    [6, 12],
    [7, 14],
    [8, 16],
    [9, 18],
    [10, 20],
    [11, 22],
    [12, 24],
    [13, 26],
    [14, 28]
];

const config = {
    log: true,
    logPeriod: 100,
    errorThresh: 0.01,
    iterations: 4000
}

NN.train(data, config);
let output = NN.forecast(data, 1);
console.log(output)

在此我希望结果为 [15, 30] 但它保持 return 较低的值。

非常感谢

改变隐藏层的数量并添加一些迭代似乎是解决方案,我的 AI 没有错,只是不够准确

const NN = new brain.recurrent.LSTMTimeStep({
    inputSize: 2,
    hiddenLayers: [2, 2],
    outputSize: 2,
});

let data = [
    [1, 2],
    [2, 4],
    [3, 6],
    [4, 8],
    [5, 10],
    [6, 12],
    [7, 14],
    [8, 16],
    [9, 18],
    [10, 20],
    [11, 22],
    [12, 24],
    [13, 26],
    [14, 28]
];

const config = {
    log: true,
    logPeriod: 100,
    errorThresh: 0.01,
    learningRate: 0.001,
    iterations: 40000000
}

NN.train(data, config);
let output = NN.forecast(data, 1);
console.log(output)

学习率越低,迭代次数越多,NN 就有更多时间完美拟合。