Библиотека Brain.js предоставляет высокоуровневый интерфейс для
работы с нейронными сетями на JavaScript. Одной из ключевых операций
после обучения сети является получение предсказаний на
новых данных. Для этого используется метод run.
runМетод run применяется к обученной сети и принимает на
вход вектор признаков, соответствующий формату данных,
использованных при обучении. Он возвращает результат вычислений сети,
который может быть представлен в разных формах в зависимости от типа
сети:
output в виде массива.Пример базового использования:
const brain = require('brain.js');
const net = new brain.NeuralNetwork();
net.train([
{ input: { r: 0.03, g: 0.7, b: 0.5 }, output: { light: 1 } },
{ input: { r: 0.16, g: 0.09, b: 0.2 }, output: { dark: 1 } }
]);
const result = net.run({ r: 0.05, g: 0.6, b: 0.5 });
console.log(result);
В этом примере result будет объектом вида
{ light: 0.85, dark: 0.15 }, где числа — это
вероятность соответствующей категории.
runВажно понимать, что формат входных данных должен совпадать с форматом, используемым при обучении:
{ feature1: value1, feature2: value2 } —
стандартный способ для полносвязных сетей.[0.03, 0.7, 0.5] —
используется, когда input при обучении был представлен
массивом."пример текста" или массивом элементов последовательности,
например ["a", "b", "c"].В случае категориальных задач часто требуется получить категорию с максимальной вероятностью. Это делается через нахождение ключа с максимальным значением в объекте результата:
const prediction = net.run({ r: 0.05, g: 0.6, b: 0.5 });
const label = Object.keys(prediction).reduce((a, b) => prediction[a] > prediction[b] ? a : b);
console.log(label); // 'light'
run с рекуррентными сетямиДля RNN метод run может работать с последовательностями
разной длины. Например, для прогнозирования текста:
const net = new brain.recurrent.LSTM();
net.train([
{ input: "hello", output: "world" },
{ input: "good", output: "morning" }
]);
const output = net.run("hello");
console.log(output); // вероятно 'world'
Здесь важно, что RNN сохраняет внутреннее состояние, что позволяет предсказывать последовательности, а не только отдельные элементы.
runМетод run может принимать дополнительные
опции, в зависимости от типа сети:
lookup: используется в RNN для указания словаря
символов или токенов.log: включает логирование промежуточных результатов
сети.input и output всегда должны строго
соответствовать обучающим данным.Метод run выполняет мгновенное
предсказание, так как не требует повторного обучения. Однако
точность предсказаний зависит от:
[0, 1].output.Метод run является основным инструментом для
получения выводов нейронной сети, и его правильное
использование обеспечивает стабильные и предсказуемые результаты.