Функция Sigmoid является одной из классических функций активации, применяемых в нейронных сетях. Она преобразует любое вещественное значение (x) в диапазон от 0 до 1, что делает её удобной для задач бинарной классификации и вероятностного моделирования. Математически функция определяется как:
[ (x) = ]
Ключевые особенности Sigmoid:
Недостатки:
В Keras.js применение функции Sigmoid осуществляется через слой активации или непосредственно в слое Dense. Пример использования в Jav * aScript:
const layer = new KerasJS.layers.Dense({
units: 10,
activation: 'sigmoid',
inputShape: [20]
});
Этот код создаёт полносвязный слой с 10 нейронами, принимающий на вход вектор длиной 20 и использующий Sigmoid для вычисления выходов.
Функция Tanh (гиперболический тангенс) является расширением идеи Sigmoid. Она преобразует входные значения в диапазон от -1 до 1, что помогает нейронам быть центрированными вокруг нуля, ускоряя обучение. Формула:
[ (x) = ]
Особенности Tanh:
Недостатки:
Применение в Keras.js аналогично Sigmoid:
const layer = new KerasJS.layers.Dense({
units: 16,
activation: 'tanh',
inputShape: [30]
});
Здесь создаётся слой с 16 нейронами, принимающий на вход вектор длиной 30 и использующий Tanh для активации.
Когда использовать Sigmoid:
Когда использовать Tanh:
В Keras.js обе функции активации реализуются на
уровне слоев, но также возможна ручная обработка входного массива с
помощью методов map и экспоненты. Пример реализации Sigmoid
вручную:
function sigmoid(x) {
return 1 / (1 + Math.exp(-x));
}
const input = [0.5, -1.2, 3.0];
const output = input.map(sigmoid);
Для Tanh:
function tanh(x) {
return Math.tanh(x);
}
const input = [-2, 0, 2];
const output = input.map(tanh);
Такой подход позволяет экспериментировать с нестандартными слоями и производными.
Для корректного обучения нейросетей важно понимать производные этих функций:
Sigmoid: [ ’(x) = (x) (1 - (x))]
Tanh: [ ’(x) = 1 - ((x))^2]
Производные используются при обратном распространении ошибки (backpropagation) и напрямую влияют на скорость обучения и стабильность сети. В Keras.js эти вычисления автоматически выполняются внутри слоя, но понимание формул помогает при отладке и анализе модели.
TypedArray, что ускоряет вычисления при ручной реализации
активации.