【问题标题】:brainjs predict the next valueBrainjs 预测下一个值
【发布时间】:2020-10-09 18:08:19
【问题描述】:

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

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


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

非常感谢

【问题讨论】:

    标签: node.js artificial-intelligence brain.js


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多