javascript - 如何使用 Brain.js 查找模式

标签 javascript machine-learning lstm brain.js

免责声明: 我是机器学习新手。如果我问了一个 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/

相关文章:

JavaScript 数组长度返回 0

javascript - 如何在 WebGL 中旋转单个形状

python - 如何使用多个输入变量 LSTM 生成 1 个输出

Javascript:for 循环 i++ 和 (i+1) 之间的区别

javascript - js : templating engine for {% block include %}-style templating

machine-learning - 具有高基数属性的决策树

machine-learning - 如何在机器学习中管理具有许多不同值(500)的分类变量?

machine-learning - 个人项目的最佳数据分析技术/模型

python - LSTM 自编码器问题

python - 如何从 Pandas 数据帧为 LSTM 模型创建输入样本?