В библиотеке Brain.js binaryThresh является важным
параметром при работе с нейронными сетями типа
NeuralNetwork, которые используют бинарную
активацию на выходном слое. Он определяет порог, при
котором выходное значение считается единицей или нулем, что
критично для задач классификации с бинарными результатами.
binaryThresh — это число в диапазоне от 0 до
1, задающее границу для бинаризации выходного сигнала
нейрона.
binaryThresh, результат интерпретируется как
1.binaryThresh, результат интерпретируется как
0.По умолчанию этот параметр установлен в 0.5, что соответствует стандартной практике бинаризации: значения больше половины считаются «истинными», а меньше — «ложными».
При создании сети параметр передается через объект конфигурации:
const brain = require('brain.js');
const net = new brain.NeuralNetwork({
binaryThresh: 0.6, // настройка порога
hiddenLayers: [3], // пример скрытого слоя
activation: 'sigmoid'
});
Объяснение конфигурации:
binaryThresh: 0.6 — выходной нейрон будет считать
значение >= 0.6 как 1, а < 0.6 как
0.hiddenLayers — массив с количеством нейронов в каждом
скрытом слое.activation — функция активации, по умолчанию
sigmoid, совместимая с бинаризацией.Значение binaryThresh напрямую влияет на
точность классификации:
Слишком низкий порог (например, 0.3)
1.Слишком высокий порог (например, 0.8)
1.Оптимальный порог зависит от конкретных данных и структуры сети. Часто его подбирают экспериментально через тестирование на валидационной выборке.
Для задачи определения, является ли число четным (0 —
нечетное, 1 — четное):
const net = new brain.NeuralNetwork({ binaryThresh: 0.7 });
net.train([
{ input: { num: 0 }, output: { even: 1 } },
{ input: { num: 1 }, output: { even: 0 } },
{ input: { num: 2 }, output: { even: 1 } },
{ input: { num: 3 }, output: { even: 0 } }
]);
const output = net.run({ num: 2 }); // вернет примерно 1, если результат > 0.7
console.log(output);
В этом примере порог 0.7 гарантирует, что только высокие значения выхода сети будут считаться «четным числом».
Параметр binaryThresh наиболее логично работает с
функциями активации, которые возвращают значения в диапазоне
0–1:
sigmoid — возвращает значения от 0 до 1, хорошо
сочетается с бинаризацией.softmax — чаще используется для многоклассовой
классификации и может потребовать отдельной интерпретации выходов.Функции активации, возвращающие отрицательные значения
(tanh), не подходят для прямого использования
binaryThresh.
binaryThresh ко всем
выходам.Параметр binaryThresh — это инструмент точной
настройки интерпретации выходных данных нейронной сети. Он
позволяет адаптировать поведение сети к характеру данных и конкретной
задаче бинарной классификации, повышая точность и снижая количество
ложных срабатываний.