【问题标题】:How to find pattern with brain.js如何使用 Brain.js 查找模式
【发布时间】:2020-01-06 16:05:51
【问题描述】:

免责声明: 我是机器学习的新手。如果我问了一个超级愚蠢的问题,请原谅我。

您好,我正在尝试使用 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] 和训练数据序列中其他数字的连续输出。

是否有办法对其进行训练,以便获得所需的输出并将其用于其他模式?

【问题讨论】:

  • 你应该将你的数字转换为 0 和 1 之间。其次,一个简单的神经网络就可以了。

标签: javascript machine-learning lstm brain.js


【解决方案1】:

您正在使用使用“监督学习”训练的 LSTM 时间步循环神经网络:https://en.wikipedia.org/wiki/Supervised_learning,它提供了与之前在 .run() 调用中提供的相似的输出值。

您似乎想要的是一个使用“强化学习”训练的 LSTM 时间步循环神经网络:https://en.wikipedia.org/wiki/Reinforcement_learning,它可以输出以前见过的值,也可以输出新的值,使用以前从未给出过的值.run() 调用,基于利用和探索性(随机)发现。

Brain.js 还没有强化学习 API,尽管这将是 v2 稳定后的重点。

Ty 提供明确的问题和复制步骤。我已包含您的示例,在浏览器中工作,以便其他人可以使用它:https://jsfiddle.net/robertleeplummerjr/4o2vcajt/1/

【讨论】:

  • 嗨@robert-plummer 有关于强化学习的消息吗?
猜你喜欢
  • 2011-09-27
  • 1970-01-01
  • 2011-02-10
  • 2017-04-01
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多