Сигмоидная функция
Материал из MachineLearning.
(Новая: {{well|Статья написана с использованием LLM ''GPT-5.5 Thinking'' и проверена участником ~~~~ Промпт приводится полно...) |
|||
| (1 промежуточная версия не показана) | |||
| Строка 19: | Строка 19: | ||
В широком смысле '''сигмоидной''' называют функцию | В широком смысле '''сигмоидной''' называют функцию | ||
| - | <tex> | + | |
| - | + | <tex> \sigma: \mathbb{R}\to(0,1). </tex> | |
| - | </tex> | + | |
которая является монотонной, ограниченной и имеет S-образный график. Обычно такая функция имеет две горизонтальные асимптоты: одну при <tex>x\to-\infty</tex>, другую при <tex>x\to+\infty</tex>. В центральной области функция изменяется сравнительно быстро, а на краях её значения насыщаются и почти не меняются. | которая является монотонной, ограниченной и имеет S-образный график. Обычно такая функция имеет две горизонтальные асимптоты: одну при <tex>x\to-\infty</tex>, другую при <tex>x\to+\infty</tex>. В центральной области функция изменяется сравнительно быстро, а на краях её значения насыщаются и почти не меняются. | ||
| Строка 48: | Строка 48: | ||
Она задаёт отображение | Она задаёт отображение | ||
| - | <tex> | + | <tex> f: \mathbb{R}\to(a,b), </tex> |
| - | + | ||
| - | </tex> | + | |
Область определения функции — вся числовая прямая <tex>\mathbb{R}</tex>. Множество значений — открытый интервал <tex>(0,1)</tex>. Функция никогда не принимает значения ровно <tex>0</tex> и <tex>1</tex> при конечных <tex>x</tex>, но стремится к ним в пределе: | Область определения функции — вся числовая прямая <tex>\mathbb{R}</tex>. Множество значений — открытый интервал <tex>(0,1)</tex>. Функция никогда не принимает значения ровно <tex>0</tex> и <tex>1</tex> при конечных <tex>x</tex>, но стремится к ним в пределе: | ||
Текущая версия
| | Статья написана с использованием LLM GPT-5.5 Thinking и проверена участником Eva Vallistu 10:38, 14 июля 2026 (MSD) Промпт приводится полностью в Обсуждение:Сигмоидная функция |
|
Сигмоидная функция — монотонная ограниченная функция с характерным S-образным графиком. В машинном обучении сигмоидные функции используются как функции активации, функции связи в статистических моделях и преобразования, переводящие произвольное действительное число в ограниченный интервал.
Наиболее распространённым примером сигмоидной функции является логистическая сигмоида
Она отображает всю числовую прямую в интервал , поэтому часто применяется в задачах бинарной классификации, где выход модели может интерпретироваться как вероятность положительного класса при наличии соответствующей вероятностной модели и процедуры обучения.
Сигмоидную функцию не следует отождествлять исключительно с логистической функцией. Логистическая сигмоида — частный, но наиболее часто используемый представитель класса сигмоидных функций. К сигмоидным функциям также относят гиперболический тангенс, арктангенс с подходящим масштабированием, некоторые функции распределения и другие монотонные ограниченные функции S-образной формы.
Определение
В широком смысле сигмоидной называют функцию
которая является монотонной, ограниченной и имеет S-образный график. Обычно такая функция имеет две горизонтальные асимптоты: одну при , другую при
. В центральной области функция изменяется сравнительно быстро, а на краях её значения насыщаются и почти не меняются.
Типичные свойства сигмоидной функции:
- область определения содержит всю числовую прямую или большой интервал действительных чисел;
- множество значений ограничено;
- функция монотонно возрастает или монотонно убывает;
- производная велика в центральной области и мала в областях насыщения;
- график имеет S-образную форму;
- часто существует точка перегиба, в которой меняется характер выпуклости.
S-образная форма означает, что функция сначала растёт медленно, затем быстрее, а затем снова замедляется. Такая форма естественно возникает при моделировании процессов насыщения: роста популяции, вероятности наступления события, отклика нейрона, накопления эффекта при ограниченном максимальном уровне.
В машинном обучении под сигмоидой часто понимают именно логистическую функцию. Однако в строгом смысле логистическая функция является не всем классом сигмоидных функций, а его частным случаем.
Логистическая сигмоида
Логистическая сигмоида определяется формулой
Она задаёт отображение
Область определения функции — вся числовая прямая . Множество значений — открытый интервал
. Функция никогда не принимает значения ровно
и
при конечных
, но стремится к ним в пределе:
В точке значение функции равно
Логистическая сигмоида симметрична относительно точки в следующем смысле:
Действительно,
Первая производная логистической сигмоиды имеет особенно простой вид:
Вывод этой формулы:
Так как
получаем
Такое выражение удобно в вычислениях, поскольку производная выражается через значение самой функции.
Связь логистической сигмоиды с логит-функцией задаётся формулами
Логит переводит вероятность в произвольное действительное число. Логистическая сигмоида выполняет обратное преобразование: переводит действительное число в значение из интервала
.
Свойства
Логистическая сигмоида непрерывна и бесконечно дифференцируема на всей числовой прямой. Поскольку
и для всех выполняется
то
Следовательно, логистическая сигмоида строго возрастает на всей числовой прямой.
Максимальное значение производной достигается при
Это соответствует точке . Поэтому
При больших по модулю значениях аргумента производная стремится к нулю:
Это свойство называется насыщением. В областях насыщения изменение аргумента почти не меняет значение функции. В нейронных сетях насыщение может приводить к затуханию градиентов: при обратном распространении ошибки множители, содержащие малые производные, уменьшают величину градиента на предыдущих слоях.
Вторая производная логистической сигмоиды равна
Так как , знак второй производной определяется множителем
. При
имеем
, поэтому
, и функция выпукла. При
имеем
, поэтому
, и функция вогнута. В точке
вторая производная равна нулю, и эта точка является точкой перегиба.
Итак, основные аналитические свойства логистической сигмоиды:
- функция определена на всей числовой прямой;
- значения лежат в интервале
;
- функция строго возрастает;
- функция гладкая;
- график имеет горизонтальные асимптоты
и
;
- точка
является точкой перегиба;
- максимальная производная равна
;
- при
производная стремится к нулю.
Применение в машинном обучении
В логистической регрессии сигмоида используется для преобразования линейного предиктора в число из интервала . Для объекта с признаками
модель имеет вид
Линейный предиктор
может принимать любые действительные значения. Сигмоида переводит его в интервал . Однако не любое значение сигмоиды автоматически является корректной вероятностью само по себе: вероятностная интерпретация возникает в рамках модели, заданной предположениями, функцией правдоподобия и обучением параметров по данным.
Эквивалентная запись логистической регрессии через логит имеет вид
Поэтому логистическая сигмоида и логит являются взаимно обратными преобразованиями между шкалой вероятностей и шкалой логарифма шансов.
В обобщённых линейных моделях логит используется как функция связи для распределения Бернулли. Сигмоида в этом случае является обратной функцией связи и переводит линейный предиктор в условную вероятность.
В искусственных нейронных сетях сигмоида исторически использовалась как функция активации нейрона. Если нейрон вычисляет линейную комбинацию входов
то его выход может задаваться как
Нелинейность сигмоиды позволяет сети моделировать нелинейные зависимости. В современных глубоких сетях логистическая сигмоида редко используется как активация скрытых слоёв из-за насыщения и затухающих градиентов. Однако она по-прежнему часто применяется на выходном слое для бинарной классификации, многометочной классификации и задач, где каждый выход должен лежать в интервале .
При обучении моделей параметры обычно подбираются минимизацией функции потерь. В задачах бинарной классификации с сигмоидой на выходе часто используется отрицательное логарифмическое правдоподобие, или бинарная кросс-энтропия:
где , а
. Для оптимизации могут использоваться градиентный спуск, стохастический градиентный спуск и их модификации.
Проблема затухающих градиентов связана с тем, что при больших положительных и отрицательных значениях производная сигмоиды почти равна нулю. Если в глубокой сети много слоёв с сигмоидными активациями, произведение малых производных может приводить к тому, что ранние слои получают очень малый градиент и обучаются медленно. Это одна из причин, по которой в скрытых слоях глубоких сетей часто используют другие функции активации.
Сравнение с другими функциями активации
Логистическую сигмоиду часто сравнивают с гиперболическим тангенсом и ReLU. Эти функции имеют разные диапазоны значений, свойства насыщения и поведение градиентов.
Логистическая сигмоида:
- формула:
;
- диапазон значений:
;
- не центрирована относительно нуля;
- насыщается при
и
;
- производная ограничена сверху числом
;
- удобна для моделирования вероятности положительного класса;
- может вызывать затухание градиентов в скрытых слоях глубоких сетей.
Гиперболический тангенс:
Его диапазон значений равен . В отличие от логистической сигмоиды, гиперболический тангенс центрирован относительно нуля:
Связь между гиперболическим тангенсом и логистической сигмоидой задаётся формулой
Гиперболический тангенс также насыщается при больших по модулю значениях аргумента и поэтому тоже может приводить к затухающим градиентам. Однако нулевая центрированность часто делает его более удобным, чем логистическую сигмоиду, в скрытых слоях неглубоких сетей.
ReLU определяется формулой
Её диапазон значений — . В положительной области производная равна единице, поэтому для
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]
Код строит два отдельных графика: график функции и график её производной
. Первый график показывает S-образную форму и насыщение около уровней
и
. Второй график показывает, что производная максимальна в точке
и стремится к нулю при больших по модулю значениях аргумента.
См. также
Литература
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.

