Что такое функция Softsign?
Softsign — это функция активации, применяемая в нейронных сетях и заданная формулой \(\phi(x) = x / (1 + |x|)\). Как и гиперболический тангенс (tanh), она гладкая, имеет S-образную форму и ограничена открытым интервалом \((-1, 1)\). Главное отличие — в том, как функция выходит на асимптоты: Softsign приближается к \(\pm 1\) полиномиально (по закону \(1/|x|\)), тогда как tanh делает это экспоненциально. Такое более медленное «насыщение» в некоторых архитектурах помогает ослабить проблему затухающих градиентов.
Как пользоваться калькулятором
Введите три значения: Начальное значение x (x в первой строке), Шаг приращения (величина, прибавляемая в каждой следующей строке) и Число повторений (сколько строк сформировать). Калькулятор построит таблицу со значениями x, Softsign \(\phi(x)\) и первой производной \(\phi'(x)\) для каждой точки — по ней удобно строить графики или смотреть конкретные значения.
Разбор формулы
Для каждой строки обозначим \(a = 1 + |x|\). Тогда $$\phi(x) = \frac{x}{a}, \qquad \phi'(x) = \frac{1}{a^{2}}$$ Поскольку \(|x|\) никогда не бывает отрицательным, знаменатель \(a\) всегда не меньше 1, поэтому деления на ноль не возникает, и функция остаётся гладкой во всех точках. Функция Softsign нечётная (\(\phi(-x) = -\phi(x)\)), а её производная — чётная (\(\phi'(-x) = \phi'(x)\)). В нуле \(\phi(0) = 0\) и \(\phi'(0) = 1\).
Пример расчёта
При \(x = -5\): \(a = 1 + 5 = 6\), значит $$\phi(-5) = -\frac{5}{6} = -0{,}8333333, \qquad \phi'(-5) = \frac{1}{36} = 0{,}0277778$$ При \(x = 1\): \(a = 2\), поэтому \(\phi(1) = 0{,}5\) и \(\phi'(1) = 0{,}25\). При \(x = 0\): \(a = 1\), поэтому \(\phi(0) = 0\) и \(\phi'(0) = 1\). С настройками по умолчанию (старт -5, шаг 0,1, 101 строка) таблица проходит x от -5 до +5.
Частые вопросы
Почему производная никогда не уходит в минус? Потому что \(\phi'(x) = 1/(1+|x|)^{2}\) — это величина, обратная квадрату, и она всегда строго положительна. Это означает, что Softsign монотонно возрастает.
Чем Softsign отличается от tanh? Обе функции насыщаются в ограниченном диапазоне, но Softsign делает это плавнее (рациональное затухание) по сравнению с экспоненциальным затуханием у tanh, благодаря чему градиенты «живут» на более широком диапазоне входных значений.
Может ли шаг быть отрицательным? Да. Отрицательный шаг заставляет таблицу убывать, а нулевой шаг повторяет одно и то же значение x в каждой строке.