免责声明: 我是机器学习新手。如果我问了一个 super 愚蠢的问题,请原谅我。
您好,我正在尝试使用 Brain.js 查找一组数字中的模式。
我已经扩展了 Brain.js github 页面中的示例。
const net = new brain.recurrent.LSTMTimeStep({
inputSize: 3,
hiddenLayers: [10],
outputSize: 3
});
net.train([
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5],
[6, 6, 6],
[7, 7, 7],
[8, 8, 8]
]);
const output = net.run([[7, 7, 7], [8, 8, 8]]);
我试图获得 [9, 9, 9] 的输出,但我主要得到 [8, 8, 8]。
但是如果我尝试运行 const output = net.run([[5, 5, 5], [6, 6, 6]]);
我很容易得到 [7, 7, 7]&与训练数据序列中的其他数字连续输出。
是否有办法对其进行训练,以便我可以获得所需的输出并将其用于其他模式?
最佳答案
您正在使用使用“监督学习”训练的 LSTM 时间步长循环神经网络:https://en.wikipedia.org/wiki/Supervised_learning ,它提供了与之前为 .run()
调用提供的类似输出值。
您似乎想要的是使用“强化学习”训练的 LSTM 时间步长循环神经网络:https://en.wikipedia.org/wiki/Reinforcement_learning ,它可以输出以前见过的值,也可以输出新的值,使用之前从未给 .run()
调用提供的值,基于利用和探索性(随机)发现。
Brain.js 尚无强化学习 API,尽管这将是 v2 稳定后的焦点。
您提供了明确的问题和重现步骤。我已经包含了您的示例,在浏览器中工作,以便其他人可以使用它:https://jsfiddle.net/robertleeplummerjr/4o2vcajt/1/
关于javascript - 如何使用 Brain.js 查找模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57776930/