Neuron — это базовый строительный блок искусственной нейронной сети в библиотеке Synaptic. Каждый объект Neuron представляет собой отдельный искусственный нейрон, способный принимать сигналы, обрабатывать их и передавать результат другим нейронам. Понимание его структуры и механизмов работы критично для создания эффективных сетей любой сложности.
Neuron включает несколько ключевых компонентов:
incoming) и исходящих (projected)
синаптических связей. Каждая связь содержит информацию о весе
(weight), указывающем степень влияния сигнала на
результат.activation отражает текущее состояние нейрона — результат
функции активации от суммы взвешенных входов.bias).Neuron обладает набором методов для управления передачей сигналов и обучения:
activate(input) Вычисляет активацию нейрона на основе входных данных. При вызове без аргументов нейрон использует внутренние входящие синапсы. Возвращаемое значение — число в диапазоне функции активации.
propagate(rate, target) Реализует обратное
распространение ошибки. Параметр rate определяет скорость
обучения, а target задаёт целевое значение для нейронов
выходного слоя. Внутри метода корректируются веса синапсов на основе
разницы между фактическим и целевым выходом.
project(neuron, weight) Создаёт синаптическую
связь между текущим нейроном и целевым. Если weight не
указан, инициализируется случайное значение. Проекция добавляется в
массив projected, а целевой нейрон фиксирует её как
incoming.
disconnect(neuron) Удаляет все связи с указанным
нейроном, очищая массивы projected и incoming.
Используется для динамического изменения структуры сети.
Neuron поддерживает несколько функций активации, влияющих на способ обработки входов:
Функцию активации можно назначать при создании нейрона или изменять динамически, что позволяет экспериментировать с поведением сети без полной перестройки.
Neuron не существует изолированно — его сила раскрывается в связях с другими нейронами. Синаптическая проекция определяет, какие нейроны будут получать сигнал, а веса синапсов регулируют силу влияния. При прямом проходе сети (feedforward) каждый нейрон получает сигналы от входящих синапсов, вычисляет активацию и передаёт результат дальше.
Во время обучения обратное распространение ошибки (backpropagation) корректирует веса так, чтобы уменьшить отклонение фактического выхода сети от целевого. Класс Neuron обеспечивает все внутренние вычисления: суммирование сигналов, применение функции активации и адаптацию весов.
const synaptic = require('synaptic');
const Neuron = synaptic.Neuron;
let neuronA = new Neuron();
let neuronB = new Neuron();
// Создание синаптической связи
neuronA.project(neuronB, 0.5);
// Активация нейрона
let output = neuronA.activate([1]);
console.log(output);
// Обратное распространение ошибки
neuronB.propagate(0.1, 1);
В этом примере нейрон neuronA посылает сигнал в
neuronB с весом 0.5. Метод activate вычисляет
текущее состояние neuronA, а propagate
корректирует веса на основе заданной цели.
Neuron позволяет строить любые архитектуры сети — от простых
однослойных перцептронов до сложных многослойных сетей с рекуррентными
связями. Гибкость методов project, disconnect,
activate и propagate обеспечивает:
Класс Neuron в Synaptic является фундаментом, на котором строится весь функционал сети. Понимание его методов и структуры позволяет создавать мощные и настраиваемые нейронные модели, адаптируемые под любые задачи машинного обучения.