0

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

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


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] 但它保持返回较低的值。

非常感谢

4

1 回答 1

0

更改隐藏层的数量并添加一些迭代似乎是解决方案,我的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 有更多的时间来完美拟合。

于 2020-10-09T10:08:19.657 回答