Машинное обучение · Основы

Анатомия сигмоиды

У функции σ(x) = 1 / (1 + e−x) две горизонтальные асимптоты и одна точка перегиба. Это не два сухих факта из учебника, а всё, что нужно знать о том, почему она работает в нейросети и где ломается.

Javharbek Abdulatipov · 9 мин

Дорога между полом и потолком

Проще всего думать о сигмоиде как о дороге. Внизу пол на высоте 0, вверху потолок на высоте 1. Дорога идёт слева направо: сначала лежит почти на полу, потом плавно поднимается и ложится почти под потолок.

Главное слово здесь «почти». Дорога подходит к полу и потолку сколь угодно близко, но никогда их не касается. Линия, к которой кривая бесконечно приближается и которой никогда не достигает, называется асимптотой. У сигмоиды таких линий две, обе горизонтальные: y = 0 при x → −∞ и y = 1 при x → +∞.

σ(x)= 11 + e−x
(1)
Расширяйте диапазон. Кривая всё плотнее прижимается к асимптотам, но щель между ними остаётся при любом x.

Насколько маленькой становится эта щель, видно по числам.

xσ(x)1 − σ(x)
20.88080.12
50.99336.7 × 10−3
100.999954.5 × 10−5
200.9999999982.1 × 10−9
1001 − 3.7 × 10−443.7 × 10−44

На x = 100 до единицы не хватает числа с сорока тремя нулями после запятой. Но это всё ещё не ноль, и не станет им ни при каком x. Вот это «никогда» и есть содержание слова «асимптота».

Самое крутое место

Теперь пройдём по дороге пешком. Слева она почти плоская. Затем подъём становится всё круче и круче, достигает максимума ровно посередине, в точке x = 0 на высоте 0.5, и дальше снова выравнивается.

Место, где «всё круче» сменяется на «всё положе», называется точкой перегиба. Формально там меняется знак второй производной: слева кривая выпукла вниз, справа выпукла вверх. У сигмоиды такое место ровно одно, поэтому вся кривая состоит из одного плавного S-движения без ступенек и плато посередине.

σ(x) = 0.5000 σ′(x) = 0.2500
Чёрный отрезок — касательная в выбранной точке. Внизу — производная σ′(x) = σ(x)(1 − σ(x)); её максимум 0.25 стоит ровно под точкой перегиба.

Производная

Производная тут удивительно удобна. Она выражается через саму функцию: σ′ = σ(1 − σ). Это значит, что при обратном распространении ошибки не нужно заново считать экспоненту, достаточно значения, которое сеть уже вычислила на прямом проходе.

σ′(x)=σ(x)(1 −σ(x))
(2)

Для обучения нужен только σ(x), e−x заново считать не надо. Производная симметрична, σ′(x) = σ′(−x), а площадь под ней равна единице: это плотность логистического распределения.

Что это значит для нейросети

Внутри сети нейрон на выходе получает произвольное число: −50, 3, 1000. Для бинарной классификации нужен ответ в виде вероятности от 0 до 1. Сигмоида берёт любое число и укладывает его на дорогу между полом и потолком.

Асимптоты дают ограниченность. Выход всегда строго между 0 и 1, поэтому его можно читать как вероятность. Это же свойство и главный недостаток: на плоских участках большие входы перестают различаться. σ(10) и σ(100) отличаются в пятом знаке, производная там практически ноль. Если активации уходят в хвосты, градиент через них не проходит, и веса перестают обучаться. Это и есть затухающий градиент, причина, по которой сигмоида ушла из скрытых слоёв глубоких сетей.

Точка перегиба даёт порог. x = 0 и σ = 0.5 — середина между «нет» и «да». Здесь производная максимальна, а значит, сеть наиболее чувствительна: небольшой сдвиг входа заметно меняет выход. В логистической регрессии граница решения w·x + b = 0 отображается ровно в эту точку. Поэтому 0.5 и стал стандартным порогом.

Единственность перегиба даёт один переход. Кривая монотонна и не имеет промежуточных полок, поэтому между «нет» и «да» есть ровно одна граница, а не несколько.

Коротко

  • Две горизонтальные асимптоты, 0 и 1: выход всегда можно читать как вероятность, но в хвостах функция насыщается и градиент затухает.
  • Одна точка перегиба в (0, 0.5): максимальная чувствительность, естественный порог решения и единственная граница между классами.
  • Производная выражается через саму функцию, σ′ = σ(1 − σ), что делает обратное распространение дешёвым.
  • Для сравнения, у tanh те же свойства, но асимптоты −1 и 1, перегиб в начале координат и наклон 1 вместо 0.25, поэтому в скрытых слоях она обучается быстрее. Сигмоида осталась там, где нужна именно вероятность: на выходе бинарного классификатора.