LSTM NN的奇怪输出

时间:2019-05-12 03:27:18

标签: javascript lstm brain.js

我想了解的Brain.js在LSTM NN中产生了奇怪的意外输出

你好, 我是NN和ML的新手,我尝试过使用brain.js的字符串分类示例,如代码所示,我在训练数据中添加了一个对象,然后更改了“小”位迭代计数。 当我为“ Code”的测试值运行程序时,我期望至少得到我最初在数据集中给出的四个字母之一的输出,但是我得到的却不是“ alla”的奇怪输出。 ! 有人可以告诉我为什么吗:C?并且请注意,我是ML的新手,而我对所有新概念不知所措。

const brain = require('brain.js/dist/index').default;

const config = {
    iterations: 15000,
    log: true,
    logPeriod: 1,
    layers: [10]
  };

  // create data which will be used for training

  const data = [
/*
  10 training data of inputs starting by "a", "b" and "c"
  and their corresponding output
  none of them contains a sub string of "alla" in case you're wondering
*/ 
    { input: "Penguin", output: "p" },
];

  // the thing we would test
  const test = "Code";

  const network = new brain.recurrent.LSTM();
  network.train(data, config);
  const output = network.run(test);
  console.log(`It starts with: ${output}`); // It starts with: c

输出:

https://i.imgur.com/hxBHtfg.png

1 个答案:

答案 0 :(得分:0)

您实际上只有一项作为训练数据;这还不足以让网络学习。我猜这可能导致奇怪的输出。 此外,您的日志记录应该更像state 我不确定console.log("It starts with ", output); jQuery选择器将选择并返回什么。这里似乎有些神圣:)