Странный вывод из LSTM NN - PullRequest
0 голосов
/ 12 мая 2019

У меня странный неожиданный вывод из LSTM NN с brain.js, который я хочу понять

привет, я новичок в NN и ML, и я попытался немного поиграть сПример строковой классификации brain.js, как вы можете видеть в коде, я добавил еще один объект к обучающим данным, а затем изменил «маленький» бит числа итераций.Когда я запустил программу для тестового значения «Код», я ожидал, что по крайней мере получу вывод одной из четырех букв того, что я изначально дал в своем наборе данных, но вместо этого я получил странный вывод «алла»!Может кто-нибудь, пожалуйста, скажите мне, почему это так: 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

...