Сигмоидная функция

Материал из MachineLearning.

Версия от 06:38, 14 июля 2026; Eva Vallistu (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-5.5 Thinking и проверена участником Eva Vallistu 10:38, 14 июля 2026 (MSD) Промпт приводится полностью в Обсуждение:Сигмоидная функция


Содержание

Сигмоидная функция — монотонная ограниченная функция с характерным S-образным графиком. В машинном обучении сигмоидные функции используются как функции активации, функции связи в статистических моделях и преобразования, переводящие произвольное действительное число в ограниченный интервал.

Наиболее распространённым примером сигмоидной функции является логистическая сигмоида


\sigma(x)=\frac{1}{1+e^{-x}}.

Она отображает всю числовую прямую в интервал (0,1), поэтому часто применяется в задачах бинарной классификации, где выход модели может интерпретироваться как вероятность положительного класса при наличии соответствующей вероятностной модели и процедуры обучения.

Сигмоидную функцию не следует отождествлять исключительно с логистической функцией. Логистическая сигмоида — частный, но наиболее часто используемый представитель класса сигмоидных функций. К сигмоидным функциям также относят гиперболический тангенс, арктангенс с подходящим масштабированием, некоторые функции распределения и другие монотонные ограниченные функции S-образной формы.

Определение

В широком смысле сигмоидной называют функцию


f\colon \mathbb{R}\to(a,b),

которая является монотонной, ограниченной и имеет S-образный график. Обычно такая функция имеет две горизонтальные асимптоты: одну при x\to-\infty, другую при x\to+\infty. В центральной области функция изменяется сравнительно быстро, а на краях её значения насыщаются и почти не меняются.

Типичные свойства сигмоидной функции:

  • область определения содержит всю числовую прямую или большой интервал действительных чисел;
  • множество значений ограничено;
  • функция монотонно возрастает или монотонно убывает;
  • производная велика в центральной области и мала в областях насыщения;
  • график имеет S-образную форму;
  • часто существует точка перегиба, в которой меняется характер выпуклости.

S-образная форма означает, что функция сначала растёт медленно, затем быстрее, а затем снова замедляется. Такая форма естественно возникает при моделировании процессов насыщения: роста популяции, вероятности наступления события, отклика нейрона, накопления эффекта при ограниченном максимальном уровне.

В машинном обучении под сигмоидой часто понимают именно логистическую функцию. Однако в строгом смысле логистическая функция является не всем классом сигмоидных функций, а его частным случаем.

Логистическая сигмоида

Логистическая сигмоида определяется формулой


\sigma(x)=\frac{1}{1+e^{-x}}.

Она задаёт отображение


\sigma\colon\mathbb{R}\to(0,1).

Область определения функции — вся числовая прямая \mathbb{R}. Множество значений — открытый интервал (0,1). Функция никогда не принимает значения ровно 0 и 1 при конечных x, но стремится к ним в пределе:


\lim_{x\to-\infty}\sigma(x)=0,
\qquad
\lim_{x\to+\infty}\sigma(x)=1.

В точке x=0 значение функции равно


\sigma(0)=\frac{1}{2}.

Логистическая сигмоида симметрична относительно точки (0,1/2) в следующем смысле:


\sigma(-x)=1-\sigma(x).

Действительно,


\sigma(-x)=\frac{1}{1+e^x}
=
\frac{e^{-x}}{1+e^{-x}}
=
1-\frac{1}{1+e^{-x}}
=
1-\sigma(x).

Первая производная логистической сигмоиды имеет особенно простой вид:


\sigma'(x)=\sigma(x)\bigl(1-\sigma(x)\bigr).

Вывод этой формулы:


\sigma(x)=(1+e^{-x})^{-1},


\sigma'(x)
=
\frac{e^{-x}}{(1+e^{-x})^2}.

Так как


\sigma(x)=\frac{1}{1+e^{-x}},
\qquad
1-\sigma(x)=\frac{e^{-x}}{1+e^{-x}},

получаем


\sigma'(x)
=
\sigma(x)\bigl(1-\sigma(x)\bigr).

Такое выражение удобно в вычислениях, поскольку производная выражается через значение самой функции.

Связь логистической сигмоиды с логит-функцией задаётся формулами


\operatorname{logit}(p)=\ln\frac{p}{1-p},


\sigma(\operatorname{logit}(p))=p,
\qquad
\operatorname{logit}(\sigma(x))=x.

Логит переводит вероятность p\in(0,1) в произвольное действительное число. Логистическая сигмоида выполняет обратное преобразование: переводит действительное число в значение из интервала (0,1).

Свойства

Логистическая сигмоида непрерывна и бесконечно дифференцируема на всей числовой прямой. Поскольку


\sigma'(x)=\sigma(x)(1-\sigma(x)),

и для всех x\in\mathbb{R} выполняется


0<\sigma(x)<1,

то


\sigma'(x)>0.

Следовательно, логистическая сигмоида строго возрастает на всей числовой прямой.

Максимальное значение производной достигается при


\sigma(x)=\frac{1}{2}.

Это соответствует точке x=0. Поэтому


\sigma'(0)=\sigma(0)(1-\sigma(0))
=
\frac{1}{2}\left(1-\frac{1}{2}\right)
=
\frac{1}{4}.

При больших по модулю значениях аргумента производная стремится к нулю:


\lim_{x\to-\infty}\sigma'(x)=0,
\qquad
\lim_{x\to+\infty}\sigma'(x)=0.

Это свойство называется насыщением. В областях насыщения изменение аргумента почти не меняет значение функции. В нейронных сетях насыщение может приводить к затуханию градиентов: при обратном распространении ошибки множители, содержащие малые производные, уменьшают величину градиента на предыдущих слоях.

Вторая производная логистической сигмоиды равна


\sigma''(x)
=
\sigma'(x)(1-2\sigma(x)).

Так как \sigma'(x)>0, знак второй производной определяется множителем 1-2\sigma(x). При x<0 имеем \sigma(x)<1/2, поэтому \sigma''(x)>0, и функция выпукла. При x>0 имеем \sigma(x)>1/2, поэтому \sigma''(x)<0, и функция вогнута. В точке x=0 вторая производная равна нулю, и эта точка является точкой перегиба.

Итак, основные аналитические свойства логистической сигмоиды:

  • функция определена на всей числовой прямой;
  • значения лежат в интервале (0,1);
  • функция строго возрастает;
  • функция гладкая;
  • график имеет горизонтальные асимптоты y=0 и y=1;
  • точка (0,1/2) является точкой перегиба;
  • максимальная производная равна 1/4;
  • при |x|\to\infty производная стремится к нулю.

Применение в машинном обучении

В логистической регрессии сигмоида используется для преобразования линейного предиктора в число из интервала (0,1). Для объекта с признаками


x=(x_1,\ldots,x_m)

модель имеет вид


\mathbb{P}(Y=1\mid x)
=
\sigma\left(\beta_0+\sum_{j=1}^{m}\beta_jx_j\right).

Линейный предиктор


\eta(x)=\beta_0+\sum_{j=1}^{m}\beta_jx_j

может принимать любые действительные значения. Сигмоида переводит его в интервал (0,1). Однако не любое значение сигмоиды автоматически является корректной вероятностью само по себе: вероятностная интерпретация возникает в рамках модели, заданной предположениями, функцией правдоподобия и обучением параметров по данным.

Эквивалентная запись логистической регрессии через логит имеет вид


\operatorname{logit}\bigl(\mathbb{P}(Y=1\mid x)\bigr)
=
\beta_0+\sum_{j=1}^{m}\beta_jx_j.

Поэтому логистическая сигмоида и логит являются взаимно обратными преобразованиями между шкалой вероятностей и шкалой логарифма шансов.

В обобщённых линейных моделях логит используется как функция связи для распределения Бернулли. Сигмоида в этом случае является обратной функцией связи и переводит линейный предиктор в условную вероятность.

В искусственных нейронных сетях сигмоида исторически использовалась как функция активации нейрона. Если нейрон вычисляет линейную комбинацию входов


z=w^\top x+b,

то его выход может задаваться как


a=\sigma(z).

Нелинейность сигмоиды позволяет сети моделировать нелинейные зависимости. В современных глубоких сетях логистическая сигмоида редко используется как активация скрытых слоёв из-за насыщения и затухающих градиентов. Однако она по-прежнему часто применяется на выходном слое для бинарной классификации, многометочной классификации и задач, где каждый выход должен лежать в интервале (0,1).

При обучении моделей параметры обычно подбираются минимизацией функции потерь. В задачах бинарной классификации с сигмоидой на выходе часто используется отрицательное логарифмическое правдоподобие, или бинарная кросс-энтропия:


L(y,\hat p)
=
-\left(y\ln \hat p+(1-y)\ln(1-\hat p)\right),

где y\in{0,1}, а \hat p=\sigma(z). Для оптимизации могут использоваться градиентный спуск, стохастический градиентный спуск и их модификации.

Проблема затухающих градиентов связана с тем, что при больших положительных и отрицательных значениях x производная сигмоиды почти равна нулю. Если в глубокой сети много слоёв с сигмоидными активациями, произведение малых производных может приводить к тому, что ранние слои получают очень малый градиент и обучаются медленно. Это одна из причин, по которой в скрытых слоях глубоких сетей часто используют другие функции активации.

Сравнение с другими функциями активации

Логистическую сигмоиду часто сравнивают с гиперболическим тангенсом и ReLU. Эти функции имеют разные диапазоны значений, свойства насыщения и поведение градиентов.

Логистическая сигмоида:

  • формула: \sigma(x)=1/(1+e^{-x});
  • диапазон значений: (0,1);
  • не центрирована относительно нуля;
  • насыщается при x\to-\infty и x\to+\infty;
  • производная ограничена сверху числом 1/4;
  • удобна для моделирования вероятности положительного класса;
  • может вызывать затухание градиентов в скрытых слоях глубоких сетей.

Гиперболический тангенс:


\tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}.

Его диапазон значений равен (-1,1). В отличие от логистической сигмоиды, гиперболический тангенс центрирован относительно нуля:


\tanh(0)=0.

Связь между гиперболическим тангенсом и логистической сигмоидой задаётся формулой


\tanh(x)=2\sigma(2x)-1.

Гиперболический тангенс также насыщается при больших по модулю значениях аргумента и поэтому тоже может приводить к затухающим градиентам. Однако нулевая центрированность часто делает его более удобным, чем логистическую сигмоиду, в скрытых слоях неглубоких сетей.

ReLU определяется формулой


\operatorname{ReLU}(x)=\max(0,x).

Её диапазон значений — [0,+\infty). В положительной области производная равна единице, поэтому для x>0 ReLU не насыщается. Это свойство облегчает обучение глубоких сетей по сравнению с сигмоидой и гиперболическим тангенсом. В отрицательной области производная ReLU равна нулю, что может приводить к «выключению» отдельных нейронов.

Сравнение не означает, что одна функция активации всегда лучше остальных. Логистическая сигмоида естественна на выходе бинарного вероятностного классификатора. Гиперболический тангенс полезен, когда желательны значения, центрированные около нуля. ReLU и её варианты часто предпочтительны в скрытых слоях глубоких нейронных сетей из-за более благоприятного поведения градиентов в положительной области.

Реализация

Ниже приведён пример реализации логистической сигмоиды и её производной на Python с использованием NumPy. Реализация сигмоиды сделана численно устойчивой: для отрицательных и неотрицательных значений аргумента используются разные, но алгебраически эквивалентные формулы.

import numpy as np
import matplotlib.pyplot as plt
 
def sigmoid(x):
x = np.asarray(x, dtype=float)
result = np.empty_like(x)
 
```
nonnegative = x >= 0
negative = ~nonnegative
 
result[nonnegative] = 1.0 / (1.0 + np.exp(-x[nonnegative]))
 
exp_x = np.exp(x[negative])
result[negative] = exp_x / (1.0 + exp_x)
 
return result
```
 
def sigmoid_derivative(x):
s = sigmoid(x)
return s * (1.0 - s)
 
x_values = np.array([-6.0, -2.0, 0.0, 2.0, 6.0])
 
values = sigmoid(x_values)
derivatives = sigmoid_derivative(x_values)
 
print("x:")
print(x_values)
 
print("\nsigma(x):")
print(np.round(values, 6))
 
print("\nsigma'(x):")
print(np.round(derivatives, 6))
 
x_grid = np.linspace(-10.0, 10.0, 1000)
 
plt.figure()
plt.plot(x_grid, sigmoid(x_grid))
plt.xlabel("x")
plt.ylabel("sigma(x)")
plt.title("Логистическая сигмоида")
plt.grid(True)
plt.show()
 
plt.figure()
plt.plot(x_grid, sigmoid_derivative(x_grid))
plt.xlabel("x")
plt.ylabel("sigma'(x)")
plt.title("Производная логистической сигмоиды")
plt.grid(True)
plt.show()

Пример вывода численных значений:

x:
[-6. -2.  0.  2.  6.]

sigma(x):
[0.002473 0.119203 0.5      0.880797 0.997527]

sigma'(x):
[0.002467 0.104994 0.25     0.104994 0.002467]

Код строит два отдельных графика: график функции \sigma(x) и график её производной \sigma'(x). Первый график показывает S-образную форму и насыщение около уровней 0 и 1. Второй график показывает, что производная максимальна в точке x=0 и стремится к нулю при больших по модулю значениях аргумента.

См. также

Литература

Verhulst P. F. Recherches mathématiques sur la loi d'accroissement de la population. — 1845. — Т. 18. — С. 1--42.

McCulloch W. S.; Pitts W. A logical calculus of the ideas immanent in nervous activity. — 1943. — Т. 5. — С. 115--133.

Rumelhart D. E.; Hinton G. E.; Williams R. J. Learning representations by back-propagating errors. — 1986. — Т. 323. — С. 533--536.

Glorot X.; Bengio Y. Understanding the difficulty of training deep feedforward neural networks. — 2010. — Т. 9. — С. 249--256.

Bishop C. M. Pattern Recognition and Machine Learning. — Springer, 2006.

Hastie T.; Tibshirani R.; Friedman J. The Elements of Statistical Learning. — Springer, 2009.

Goodfellow I.; Bengio Y.; Courville A. Deep Learning. — MIT Press, 2016.

Личные инструменты