Выходной слой нейронной сети определяет способ представления результатов вычислений. Он формирует финальные предсказания на основе сигналов, полученных от скрытых слоев. В Brain.js конфигурация выходного слоя напрямую связана с типом задачи: регрессия, классификация, прогнозирование последовательностей или генерация текста.
В Brain.js используется несколько основных типов выходных данных:
При создании сети в Brain.js ключевой параметр — это
activation для выходного слоя. Встроенные
функции активации включают:
sigmoid – идеально подходит для
бинарной классификации, так как выдаёт значения от 0 до 1.softmax – позволяет получить вектор
вероятностей для многоклассовой классификации.linear – используется в задачах
регрессии, передаёт значения без сжатия.Пример конфигурации сети для бинарной классификации:
const brain = require('brain.js');
const net = new brain.NeuralNetwork({
activation: 'sigmoid',
hiddenLayers: [10, 10],
});
В данном примере выходной слой автоматически принимает форму одного
нейрона с функцией активации sigmoid.
После получения результатов с выходного слоя необходимо интерпретировать их в зависимости от задачи:
const output = net.run(input);
const predictedClass = Object.keys(output).reduce((a, b) => output[a] > output[b] ? a : b);
Количество нейронов в выходном слое зависит от целевой задачи:
Функция активации должна соответствовать типу данных: использование
sigmoid для многоклассовой задачи приведёт к некорректным
интерпретациям вероятностей, так как сумма элементов вектора не будет
равна 1.
Настройка функции ошибки напрямую связана с выходным слоем:
Пример обучения с многоклассовой классификацией:
const net = new brain.NeuralNetwork({
activation: 'softmax',
hiddenLayers: [20, 15],
});
const trainingData = [
{ input: { red: 1, green: 0, blue: 0 }, output: { apple: 1, banana: 0, cherry: 0 } },
{ input: { red: 0, green: 1, blue: 0 }, output: { apple: 0, banana: 1, cherry: 0 } },
];
net.train(trainingData, { iterations: 2000, learningRate: 0.01 });
Выходной слой является ключевым компонентом, определяющим способность сети правильно интерпретировать и выдавать результаты. В Brain.js правильная настройка активации и структуры выходного слоя напрямую влияет на точность предсказаний и эффективность обучения.